# framebuffer using uvesafb

## ckx3009

i'm sorry to ask for help about this argument:i know that thousands times users asked for about it but there are months that i'm unable to obtain a running framebuffer with a resolution higher than 640x480.

i have an ATI mobility radeon X1600. the monitor is a laptop widescreen 1280X800.

i tryed vesafb, uvesafb and radeonfb. now i have removed vesafb and have compiled in the kernel both uvesafb and radeonfb.

the last guide i followed is that: i suppose it is the most recent.

my grub.conf is that:

```

timeout 10

default0

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux

root (hd0,0)

kernel /boot/vmlinuz root=/dev/sda3

video=radeonfb:ywrap,mtrr:3,1024x768-16@60 splash=verbose,theme:livecd-2007.0 CONSOLE=/dev/tty1

#video=radeonfb:1280x800,ywrap,mtrr splash=silent,kdgraphics,theme:livecd-2007.0 quiet CONSOLE=/dev/tty1

#video=uvesafb:1280x800,ywrap,mtrr splash=verbose,kdgraphics,theme:livecd-2007.0 quiet CONSOLE=/dev/tty1

initrd /boot/fbsplash-livecd-2007.0
```

i also tryed to use the 2 lines commented (and much much more) but nothing changed. i also have a grubsplash that is running well.

i suppose the fb device is active:

```
# ls -l /dev/fb*

lrwxrwxrwx 1 root root      3 2008-07-13 15:17 /dev/fb -> fb0

crw-rw---- 1 root video 29, 0 2008-07-13 15:17 /dev/fb0
```

dmesg, on boot says that

```
uvesafb: (C) 1988-2005, ATI Technologies Inc. M56P01.00, M56P01.00, 01.00, OEM: ATI ATOMBIOS(C) 1988-2005, ATI Technologies Inc. M56P01.00, VBE v3.0        

uvesafb: protected mode interface info at c000:aafe                                                                                                         

uvesafb: pmi: set display start = c00cab8c, set palette = c00cac4e                                                                                          

uvesafb: VBIOS/hardware supports DDC2 transfers                                                                                                             

uvesafb: monitor limits: vf = 60 Hz, hf = 49 kHz, clk = 71 MHz                                                                                              

uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915                                                                                  

uvesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 6144k, total 16384k
```

i have installed also splashutils-1.5.3.4 and my kernel (2.6.24-gentoo-r8 ) is compiled, without genkernel, using the options shown by the guide.

i can't have a theme or an high resolution. the awesome is that the livecd 2008 shows well his fb theme, with a resolution higher than mine normal one. the same is for sabayon's livecd.

thank you for help and sorry for my bad English.Last edited by ckx3009 on Mon Jul 14, 2008 9:59 pm; edited 1 time in total

----------

## comprookie2000

See if this helps;

http://dev.gentoo.org/~spock/projects/uvesafb/

----------

## termite

First of all, replace 

```
mtrr
```

 with 

```
mtrr:3
```

 then (in your uvesafb line) 

```
1280x800
```

 with 

```
1280x800-32
```

 (or 24)

----------

## ckx3009

 *comprookie2000 wrote:*   

> See if this helps;
> 
> http://dev.gentoo.org/~spock/projects/uvesafb/

 

already followed without any result.

 *termite wrote:*   

> First of all, replace 
> 
> ```
> mtrr
> ```
> ...

 

i tried a line like the one not commented using uvesafb instead of radeonfb

```
video=uvesafb:ywrap,mtrr:3,1024x768-16@60 splash=verbose,theme:livecd-2007.0 CONSOLE=/dev/tty1
```

like that. but nothing changed...

i tried also using 32 bit, and also using 1280x800 (but someone told me that widescreen res are not supported)

----------

## leludo

Hi!

On my radeon HD 3850, I was able to get it running in 1024x768 (but not more...) using theses kernel parameters :

```
video=vesafb:mtrr:3,ywrap vga=791 splash=silent,fadein,theme:livecd-2007.0 CONSOLE=/dev/tty1 quiet
```

you can first try without video=vesafb:mtrr:3,ywrap  it should work, maybe a bit slower.

The only way i found to set the resolution was using vga=xxx

Have a look here for other values : http://gentoo-wiki.com/HOWTO_Framebuffer_Support#vesafb

Tell me if this works for you. I would also be interested in the modes you manage to get your frame buffer running.

Good luck!

----------

## ckx3009

leludo,

something happened with a "little" change in my previous configuration:

the line "video=...." placed on the same line of the kernel

in this way i tried 3 different configs (2 with your suggestions):

the first, before init's startup, continue spamming lines like that: PCI: Cannot allocate resource region 7 of bridge 0000:00

it is the grub.conf

```
title=Gentoo Linux

root (hd0,0)

kernel /boot/vmlinuz root=/dev/sda3 video=uvesafb:1024x768 splash=verbose,theme:livecd-2007.0 quiet CONSOLE=/dev/tty1

initrd /boot/fbsplash-livecd-2007.0
```

the resolution has not changed and the console was visible.

the second, can't startup...black screen, nothing visible:

```
title=Gentoo FB1

root (hd0,0)

kernel /boot/vmlinuz root=/dev/sda3 video=vesafb:mtrr:3,ywrap vga=791 splash=silent,fadein,theme:livecd-2007.0 CONSOLE=/dev/tty1 quiet
```

the third, also had a completely black screen...but started up. nothing was visible until i logged in and started kdm (i ever start it manually)

```
title=Gentoo FB2

root (hd0,0)

kernel /boot/vmlinuz root=/dev/sda3 video=vesafb vga=791 splash=silent,fadein,theme:livecd-2007.0 CONSOLE=/dev/tty1 quiet
```

# dmesg (something i think to be interesting)

```
Linux agpgart interface v0.102

uvesafb: (C) 1988-2005, ATI Technologies Inc. M56P01.00, M56P01.00, 01.00, OEM: ATI ATOMBIOS(C) 1988-2005, ATI Technologies Inc. M56P01.00, VBE v3.0

uvesafb: protected mode interface info at c000:aafe

uvesafb: pmi: set display start = c00cab8c, set palette = c00cac4e

uvesafb: VBIOS/hardware supports DDC2 transfers

uvesafb: monitor limits: vf = 60 Hz, hf = 49 kHz, clk = 71 MHz

uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915

uvesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 6144k, total 16384k

fb0: VESA VGA frame buffer device

vesafb: cannot reserve video memory at 0xd0000000

vesafb: framebuffer at 0xd0000000, mapped to 0xf8f00000, using 3072k, total 16384k

vesafb: mode is 1024x768x16, linelength=2048, pages=9

vesafb: protected mode interface info at c000:aafe

vesafb: pmi: set display start = c00cab8c, set palette = c00cac4e

vesafb: scrolling: redraw

vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0

fb1: VESA VGA frame buffer device
```

nothing more...

tomorrow i will leave my city for holidays. for some days i cant access to the internet so i cant read (hoped) replies to that. 

but for only few days... so reply that i need some help :p

----------

## geonix

 *ckx3009 wrote:*   

> leludo,
> 
> the third, also had a completely black screen...but started up. nothing was visible until i logged in and started kdm (i ever start it manually)
> 
> ```
> ...

 

This sounds interesting. It seems that resolution might switched for you , but the theme does not visible for some reason... Could you test 2 behaviours:

1. If the resolution 1024x768 is working for you . Please try for that string w/o any themes:

```

kernel /boot/vmlinuz root=/dev/sda3 video=vesafb vga=791 CONSOLE=/dev/tty1

```

If this will work we almostly done. you should see resolution that resolution has changed to 1024x768 and booting string are running over the screen...

2. If the first point works ok , could you try to add the theme and initrd section for it, Because of theme could not be loaded it's initrd does not points to it:

```

kernel /boot/vmlinuz root=/dev/sda3 video=uvesafb:1024x768 splash=verbose,theme:livecd-2007.0 quiet CONSOLE=/dev/tty1

initrd /boot/fbsplash-livecd-2007.0

```

----------

## leludo

Hi,

Here is what dmesg gives me :

```

# dmesg | grep fb

vesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 3072k, total 16384k

vesafb: mode is 1024x768x16, linelength=2048, pages=9

vesafb: protected mode interface info at c000:a0a0

vesafb: pmi: set display start = c00ca142, set palette = c00ca200

vesafb: scrolling: redraw

vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0

fbcondecor: console 0 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 0

fb0: VESA VGA frame buffer device

fbcondecor: console 1 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 1

fbcondecor: console 2 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 2

fbcondecor: console 3 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 3

fbcondecor: console 4 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 4

fbcondecor: console 5 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 5

fbcondecor: console 6 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 6

fbcondecor: console 7 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 7

fbcondecor: console 8 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 8

fbcondecor: console 9 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 9

fbcondecor: console 10 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 10

fbcondecor: console 6 using theme 'livecd-2007.0'

fbcondecor: switched decor state to 'on' on console 6

```

We got nearly the same output for vesafb, except mine points to fb0. You should try to build your kernel without uvesafb, then you should have only one frame buffer device fb0 using vesafb. 

Don't forget to remove /usr/share/v86d/initramfs in your kernel config :

```

General Setup ->

 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

 (/usr/share/v86d/initramfs) Initramfs source file(s)

```

As mentionned by geonix, trying without splash theme may help too. If I were you I would only use the vga parameter (remove quiet, splash, CONSOLE and video parameters). If you manage to boot but can't see any output, try other values for the vga parameter. When you find a working resolution, try to activate splash theme. Then you could try other frame buffer drivers.

I may be a good idea too to have a look at the kernel parameters used by the gentoo livecd and to what dmesg reports when booting with livecd...

----------

## leludo

I've just try to see if I could use a higher resoution and I managed to got a working fb at 1280x1024-32 !!   :Very Happy: 

I tried a few months ago and nothing higher than 1024x768 worked... maybe fb support has been improved with more recent kernel.

You should upgrade your kernel to latest 2.6.25 stable (I am using unstable 2.6.25-tuxonice-r6).

I'll explain how I managed to get a fb running at 1280x1024-32 because something was weird...

First I tried with vga=829 (as told in the howto framebuffer on gentoo wiki).

When I rebooted, the kernel displayed a message saying the value was incorrect, and to press enter to see valid values.

Then I enter the reported value for 1280x1024-32 : 366 (this is an hexadecimal value), and it worked.

What is weird here is that 0x366 = 870 in decimal (and not 829 as shown on the howto). 

So I tried setting vga=870 and it worked!

The howto says vga=870 is for 1152×720-15 but dmesg shows :

```

vesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 10240k, total 16384k

vesafb: mode is 1280x1024x32, linelength=5120, pages=2

vesafb: protected mode interface info at c000:a0a0

vesafb: pmi: set display start = c00ca142, set palette = c00ca200

vesafb: scrolling: ywrap using protected mode interface, yres_virtual=2048

vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0

```

 :Idea:  What I suggest you is 

Upgrade your kernel

Try vga=ask

See what hexadecimal value works

Convert it to decimal and use it for the vga parameter

If you also need a different value than the one in the howto, then we should report it on the howto page.

Hope this helps.

Thanks for making me try other resolutions again! I thought I will always be stuck at 1024x768!

----------

## ckx3009

using the new stable kernel and using the config line 

```

kernel /boot/vmlinuz root=/dev/sda3 video=vesafb vga=791 CONSOLE=/dev/tty1 
```

 told me by geonix i'm still not able to use framebuffer.

i have the same black screen i told previously, but, while waiting for boot, then i'm able to send commands (without seeing anything).

so framebuffer wont still run.

i also removed from kernel config the line regarding initramfs and the uvesafb driver...still nothing.

any new suggestion?

a way to make it from zero? perhaps i fail in some configs...

----------

## Monkeh

Install hwinfo and run hwinfo --framebuffer. If 1280x800 is not listed in the output, you will not get it with uvesafb. If it it, then simply video=uvesafb:1280x800 should work.

----------

## <3

make sure FRAMEBUFFER_CONSOLE is compiled into the kernel, for some reason they don't mention that in the docs.

----------

## swimmer

@<3: are you sure that FRAMEBUFFER_CONSOLE is needed for higher fb-resolutions? I thought it's only needed for fbcondecor ...

----------

## swimmer

@ckx3009: check that you have the latest version of klibc - I had problems with older version which let me stuck on 800x600 ...

HTH

swimmer

----------

## ckx3009

@Monkeh:

1280x800 is not listed, so the max resolution is 1024x768 (i think)

```
# hwinfo --framebuffer

02: None 00.0: 11001 VESA Framebuffer

  [Created at bios.447]

  Unique ID: rdCR.wO0Txucb+36

  Hardware Class: framebuffer

  Model: "ATI ATOMBIOS M56P"

  Vendor: "(C) 1988-2005, ATI Technologies Inc. "

  Device: "M56P"

  SubVendor: "ATI ATOMBIOS"

  SubDevice:

  Revision: "01.00"

  Memory Size: 16 MB

  Memory Range: 0xd0000000-0xd0ffffff (rw)

  Mode 0x0300: 640x400 (+640), 8 bits

  Mode 0x0301: 640x480 (+640), 8 bits

  Mode 0x0303: 800x600 (+832), 8 bits

  Mode 0x0305: 1024x768 (+1024), 8 bits

  Mode 0x0310: 640x480 (+1280), 16 bits

  Mode 0x0311: 640x480 (+1280), 16 bits

  Mode 0x0312: 640x480 (+2560), 32 bits

  Mode 0x0313: 800x600 (+1600), 16 bits

  Mode 0x0314: 800x600 (+1600), 16 bits

  Mode 0x0315: 800x600 (+3200), 32 bits

  Mode 0x0316: 1024x768 (+2048), 16 bits

  Mode 0x0317: 1024x768 (+2048), 16 bits

  Mode 0x0318: 1024x768 (+4096), 32 bits

  Mode 0x030d: 320x200 (+640), 16 bits

  Mode 0x030e: 320x200 (+640), 16 bits

  Mode 0x030f: 320x200 (+1280), 32 bits

  Mode 0x0320: 320x200 (+1280), 32 bits

  Mode 0x0393: 320x240 (+320), 8 bits

  Mode 0x0394: 320x240 (+640), 16 bits

  Mode 0x0395: 320x240 (+640), 16 bits

  Mode 0x0396: 320x240 (+1280), 32 bits

  Mode 0x03b3: 512x384 (+512), 8 bits

  Mode 0x03b4: 512x384 (+1024), 16 bits

  Mode 0x03b5: 512x384 (+1024), 16 bits

  Mode 0x03b6: 512x384 (+2048), 32 bits

  Mode 0x03c3: 640x350 (+640), 8 bits

  Mode 0x03c4: 640x350 (+1280), 16 bits

  Mode 0x03c5: 640x350 (+1280), 16 bits

  Mode 0x03c6: 640x350 (+2560), 32 bits

  Mode 0x0383: 640x400 (+640), 8 bits

  Mode 0x0384: 640x400 (+1280), 16 bits

  Mode 0x0385: 640x400 (+1280), 16 bits

  Mode 0x0386: 640x400 (+2560), 32 bits

  Mode 0x0333: 720x400 (+768), 8 bits

  Mode 0x0334: 720x400 (+1472), 16 bits

  Mode 0x0335: 720x400 (+1472), 16 bits

  Mode 0x0336: 720x400 (+2944), 32 bits

  Mode 0x0321: 640x480 (+2560), 32 bits

  Mode 0x0322: 800x600 (+3200), 32 bits

  Mode 0x0323: 1024x768 (+4096), 32 bits

  Mode 0x0383: 640x400 (+640), 8 bits

  Mode 0x0384: 640x400 (+1280), 16 bits

  Mode 0x0385: 640x400 (+1280), 16 bits

  Mode 0x0386: 640x400 (+2560), 32 bits

  Config Status: cfg=new, avail=yes, need=no, active=unknown
```

@swimmer:

FRAMEBUFFER_CONSOLE is not set, i'm going to try with it compiled into the kernel.

if it is any other suggestion....

----------

## Monkeh

 *ckx3009 wrote:*   

> @Monkeh:
> 
> 1280x800 is not listed, so the max resolution is 1024x768 (i think)

 

Correct. You won't get better than 1024x768 with uvesafb.

----------

