# console framebuffer only works after starting xfce4

## mjbjr

(the interesting clue is at the end)

My monitor supports 1920x1200 and xfce4 works at that setting.

Currently works fine:

at boot

kernel automatically loads 'nvidia' module  (nvidia-drivers-346.47)

booting info scrolls by in big text

boot to runlevel 3 (full screen console on tty1), login prompt has big ugly text

login as root

switch to tty2

login as 'mjbjr'

run command 'startxfce4', xfce4 starts at 1920x1200, all works fine.

I've had high res framebuffer (small text tons of lines) consoles in the past,

but just getting around to it on this system.  In the past, with fb the boot info scrolling

by would be large text and then about halfway through the boot process

it would switch to small text and long lines.

looking at notes from the past I

add 'fbcon' module to list of modules of be loaded at boot (it does get loaded)

add these two additional lines to '/etc/default/grub'

GRUB_CMDLINE_LINUX_DEFAULT="video=uvesafb:1920x1200-32,mtrr:3,ywrap"

GRUB_GFXMODE=1920x1200x32

remake grub

grub2-mkconfig -o /boot/grub/grub.cfg

reboot

boot info scrolls by still with large text

when tty1 console shows up its prompt is incredibly small and squished to the top of the screen

and is unreadable.  I can see the prompt flashing, Hitting return gives new prompt

horizontally after the original on the same "line".

blindly, I switch to tty2

login as myself

do 'startxfce4' and it starts and works fine at 1920x1200.

*** INTERESTING PART ***

I log out of 'xfce4', and it kicks me back to tty2 which is now in high res small text long lines

mode!!

I switch to tty1 and it too is now in high res mode!!

Any ideas?

Thanks

I've gone back to the big text mode, hopefully only temporarily.

----------

## eccerr0r

I've found that ati-drivers works like crap when you have the kernel OSS driver installed either built-in or as a module, once it gets loaded then fglrx (the closed source driver) will stomp all over the consoles.  Removing the OSS driver completely or prohibiting it from loading fixed the problem. 

This unfortunately means no fbcon, so only 80x25.

Not sure if nvidia-drivers has a similar issue.

----------

## Aquous

Sounds like X is loading nouveau, which is bad if you want to run nvidia. If you want nvidia, remove all trace of nouveau, remove uvesafb, and switch to simplefb (CONFIG_FB_SIMPLE=Y IIRC). It was created for your use case.

----------

## mjbjr

 *Aquous wrote:*   

> Sounds like X is loading nouveau, which is bad if you want to run nvidia. If you want nvidia, remove all trace of nouveau, remove uvesafb, and switch to simplefb (CONFIG_FB_SIMPLE=Y IIRC). It was created for your use case.

 

afaict, currently, I don't have nouveau...

localhost ~ # grep -i Nouveau /usr/src/linux/.config

# CONFIG_DRM_NOUVEAU is not set

localhost ~ # emerge -p xf86-video-nouveau

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U  ] x11-libs/libdrm-2.4.59 [2.4.58] ABI_X86="32*" VIDEO_CARDS="nouveau* (-tegra)" 

[ebuild  N     ] x11-drivers/xf86-video-nouveau-1.0.11  USE="-glamor" 

that libdrm VIDEO_CARDS setting is interesting as a check of make.conf shows it set to 'nvidia'.

I'm not sure about thatABI_X86="32* setting either as this is a amd64 system.

I'll have to check on those settings further.

I plan on switching to simplefb.

I am about to install a new kernel and I'm trying to get the framebuffer settings straight before I do that.

Thanks for the help.

----------

## i4dnf

Does your card actually report support for 1920x1200 in VideoBIOS mode?

```
cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
```

(Note that the cards report a limited set of modes as supported while using the VideoBIOS interface.)

Try passing one of the modes returned by the command above to uvesafb. 

You might want to set the GRUB_GFXMODE to the same too.

----------

## mjbjr

 *i4dnf wrote:*   

> Does your card actually report support for 1920x1200 in VideoBIOS mode?
> 
> ```
> cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
> ```
> ...

 

In the original post you can see that I passed to uvesafb and GRBU_GFXMODE.

And the mode that I'm trying to pass is supported (and eventually works):

localhost ~ # cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes

640x400-8, 0x0100

640x480-8, 0x0101

800x600-8, 0x0103

1024x768-8, 0x0105

1280x1024-8, 0x0107

320x200-16, 0x010e

320x200-32, 0x010f

640x480-16, 0x0111

640x480-32, 0x0112

800x600-16, 0x0114

800x600-32, 0x0115

1024x768-16, 0x0117

1024x768-32, 0x0118

1280x1024-16, 0x011a

1280x1024-32, 0x011b

320x200-8, 0x0130

320x400-8, 0x0131

320x400-16, 0x0132

320x400-32, 0x0133

320x240-8, 0x0134

320x240-16, 0x0135

320x240-32, 0x0136

640x400-16, 0x013d

640x400-32, 0x013e

1600x1200-8, 0x0145

1600x1200-16, 0x0146

1600x1200-32, 0x014a

1920x1200-8, 0x014b

1920x1200-16, 0x014c

1920x1200-32, 0x014d     <<<<<<<

1280x800-8, 0x0160

1280x800-32, 0x0161

Thanks for that cat video modes line.

----------

