# Framebuffer Console at 1920x1200

## mstrobel

I picked up a Samsung 243T today, and I'm having a hell of a time trying to configure the vesafb console driver to run at the monitor's native resolution, 1920x1200.  Nomatter what I try, the results are the same--either I get a 1280x1024 framebuffer, or I just get a plain VGA console.  Incidentally, 1280x1024-32 is the highest mode listed in /proc/fb0/modes.

For reference, my kernel version is 2.6.9-rc2-love4, and my video card is an nVidia GeForce 6800 GT.  I use the nvidia-kernel drivers with X.org, so using the rivafb framebuffer driver is not an option (the two drivers conflict).  I've tried the obvious additions to grub.conf:

```
title Gentoo Linux 2004.2

        root (hd0,0)

        kernel /boot/kernel-2.6.9-rc2-love4 root=/dev/sda3 video=ywrap,mtrr,vesafb:1920x1200-32@60
```

...and several other variations of this.  I read through some of the kernel documentation located in /usr/src/linux/Documentation/fb (e.g. framebuffer.txt, vesafb.txt, modedb.txt), and I tried manually calculating the mode timings:

```
mode "1920x1200"

    geometry 1920 1200 1920 1200 32

    timings 5069 352 144 49 1 208 3

    hsync high

    vsync high

endmode
```

However, when I attempt to test this mode using fbset, I get the following error:

```
root@warpcore mstrobel # fbset -fb /dev/fb0 1920x1200

ioctl FBIOPUT_VSCREENINFO: Invalid argument
```

I also tried replacing my own calculations with the timings produced by running gtf, but I received an identical error message.  Lastly, I tried adding that mode definition to modedb.c, though I'm not sure that I did it correctly--I easily could have overlooked something.

Anyway. I would really appreciate some help here.  I've searched quite thoroughly through Google, the Gentoo Forums, and the nVidia Forums, to no end.  If someone with a more thorough understanding of the vesafb driver could give me a hand with this, I'm willing to try anything, including modifying the drivers (I have some experience in C).

Thanks,

Mike

----------

## eelke

AFAIK the vesafb works allways with mode numbers. Unfortunatly the mode numbers for higher vesa resolutions are not fixed. But there are probably some DOS programs that can query your vesa bios for the supported modes. I do not know any but I sugest you do some searching on Google.

The highest mode which is fixed is 1600x1200@16bpp which has the mode number 0x11D. On the kernel commandline 0x200 will have to be added giving you 0x31D.

----------

## mstrobel

I've tried a lot of mode numbers, but I don't know if I've tried that one yet.  I'll give it a shot and see what happens.  Even if I could get it running at 1600x1200, that'd still be an improvement.

EDIT: I experimented again with a few different VESA mode numbers and the vga= parameter, but I could not produce a 1600x1200 framebuffer.  I tried it with both the classic vesafb driver as well as the newer vesafb-tng driver (which I typically use).  I'm currently reading through the official VBE 3.0 specifications, and I'll also look around for a program to probe my video card/monitor for the correct mode numbers.  Thanks for the tip  :Smile: .

----------

## mstrobel

OK, after experimenting with a couple different utilities to probe my video card, it looks like it only has support for a few VESA modes, the highest being 1280x1024-32.  From what I read in vesafb.txt, it sounds like I can hard-code the correct timings into the kernel itself in this situation, but my attempts to do so thus far have failed.  I suspect this may be for the same reason that all of my attempts to use fbset have failed as well.  Any more suggestions?

Thanks,

Mike

----------

## eelke

The resolution is allways determined by the mode number passed to the VESA BIOS. If it has no mode numbers for higher resolutions you will be out of luck. The VBE 3 specs contain a method to specify timings but only for resolutions which have a mode number! So I do not think it will be possible to get higher resolutions by providing the vesafb driver with hardcoded timings. It will only allow you to get better refresh rates instead of the default 60 Hz.

----------

## piffle

Is it really 31D?  I use 

```
video=vesa:ywrap,mtrr vga=0x346
```

to get 1600x1200 on my desktop.  I know  that "probing" at boot never shows this mode though, yet it works fine.

----------

## eelke

 *Quote:*   

> Is it really 31D?

 

No it aint. I got that from a list of mode numbers I had lying around but it isn't listed in the official VBE 3 specs so the list I had was incorrect. Actually the VBE 3 specs do not contain any 1600x1200 mode.

----------

## alexlm78

I have a question why 1960x1200?

try with another 1280x1024 is so well.

----------

## Zviratko

I think I just got it to work on my laptop  :Smile:  I used the 2.6.9-nitro2 patchset (see its thread in this forum) and chose vesafb-tng for framebuffer - it asked for a default mode... i entered 1920x1200@60  :Smile:  and it seems to work... I can't really confirm it switched to this mode, but I don't see no "blur" on my LCD... fbset returns nothing, dmesg doesn't report the mode either...  :Smile:  give it a try  :Smile: [/i]

----------

## seltrus

I have also had good success with vesafb-tng.  It wasn't through nitro sources, but I had patched it in manually when building a bleeding-edge box over the summer.  I had 1600x1200 working fine and vesafb-tng can do higher refresh rates which was great for my CRT so my eyes wouldn't fall out.  For more info: http://dev.gentoo.org/~spock/projects/vesafb-tng/

Good luck

----------

## Archangel1

 *alexlm78 wrote:*   

> I have a question why 1960x1200?
> 
> try with another 1280x1024 is so well.

 

Probably because that's the native resolution of his laptop's LCD. That's a fairly common one fir high-end Dell machines and presumably some others as well.

It'll be a widescreen panel so a 4x3 resolution will look stretched, and that dumb 5x4 1280 one would be even worse.

----------

## racoontje

Remind me again. Why aren't we using vesafb-tng?

----------

## Zviratko

So.. My resolution is 1600x1200 and not 1920x1200... but it's only blurred in hor. direction so barely noticeable...

----------

