# uvesafb availability of vesa wide modes

## proteusx

I am trying to get a framebuffer to work with the native resolution of

 1680x1050 of my wide screen monitor. 

 My graphics card is an NVidia GeForce 8500GT. 

 uvesafb is installed together with v86d 

 The kernel line: 

```
video=uvesafb:1680x1050-8 
```

gives a resolution 640x480.

```
video=uvesafb:1680x1200-8
```

 works correctly but on this monitor the text appears disorted and it is difficult to read.

I understand that unless the desired resolution does not appear in

 /sys/devices/platform/uvesafb.0/vbe_modes I can't have it.

True enough:

```

cat /sys/devices/platform/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

```

Clearly The resolution I require is not there   :Sad: 

However, probing the card with hwinfo gives: 

```
hwinfo --vbe

02: None 00.0: 11001 VESA Framebuffer

  [Created at bios.447]

  Unique ID: rdCR.G89VdJ4sMmF

  Hardware Class: framebuffer

  Model: "NVIDIA G86 Board - p403h20 "

  Vendor: "NVIDIA Corporation"

  Device: "G86 Board - p403h20 "

  SubVendor: "NVIDIA"

  SubDevice: 

  Revision: "Chip Rev"

  Memory Size: 14 MB

  Memory Range: 0xe5000000-0xe5dfffff (rw)

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

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

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

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

  Mode 0x0307: 1280x1024 (+1280), 8 bits

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

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

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

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

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

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

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

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

  Mode 0x031a: 1280x1024 (+2560), 16 bits

  Mode 0x031b: 1280x1024 (+5120), 24 bits

  Mode 0x0330: 320x200 (+320), 8 bits

  Mode 0x0331: 320x400 (+320), 8 bits

  Mode 0x0332: 320x400 (+640), 16 bits

  Mode 0x0333: 320x400 (+1280), 24 bits

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

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

  Mode 0x0336: 320x240 (+1280), 24 bits

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

  Mode 0x033e: 640x400 (+2560), 24 bits

  Mode 0x0345: 1600x1200 (+1600), 8 bits

  Mode 0x0346: 1600x1200 (+3200), 16 bits

  Mode 0x0347: 1400x1050 (+1400), 8 bits

  Mode 0x0348: 1400x1050 (+2800), 16 bits

  Mode 0x0349: 1400x1050 (+5600), 24 bits

  Mode 0x034a: 1600x1200 (+6400), 24 bits

  Mode 0x0352: 2048x1536 (+8192), 24 bits

  Mode 0x0360: 1280x800 (+1280), 8 bits

  Mode 0x0361: 1280x800 (+5120), 24 bits

  Mode 0x0362: 768x480 (+768), 8 bits

  Mode 0x0364: 1440x900 (+1440), 8 bits

  Mode 0x0365: 1440x900 (+5760), 24 bits

  Mode 0x0368: 1680x1050 (+1680), 8 bits  <---------#######

  Mode 0x0369: 1680x1050 (+6720), 24 bits <---------#######

  Mode 0x037c: 1920x1200 (+1920), 8 bits

  Mode 0x037d: 1920x1200 (+7680), 24 bits

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

```

The resolusion I need is there! (modes 0x368 and 0x369)

	Can anyone explain this descrepancy?

	Is it a problem with the utility vbtest (from lrmi) used by v86d that cannot

	"see" the 1680x1050 modes?

	Or is it some other problem?

	Thank you for your help

----------

## linuxtuxhellsinki

I think this doesn't help, but it seems like it could be limitation of BIOS....  :Question: 

```
# less /usr/src/linux-2.6.23-gentoo-r3/Documentation/fb/uvesafb.txt

... snip ....

2. Caveats and limitations

--------------------------

uvesafb is a _generic_ driver which supports a wide variety of video

cards, but which is ultimately limited by the Video BIOS interface.

The most important limitations are:

- Lack of any type of acceleration.

- A strict and limited set of supported video modes.  Often the native

  or most optimal resolution/refresh rate for your setup will not work

  with uvesafb, simply because the Video BIOS doesn't support the

  video mode you want to use.  This can be especially painful with

  widescreen panels, where native video modes don't have the 4:3 aspect

  ratio, which is what most BIOS-es are limited to.

..... snap .....
```

----------

## proteusx

Thank you, but I have already read this.  

My question is:  

If the uvesafb (and v86d) code does not support wide VESA modes because of a graphics card bios limitation ,  why hwinfo --vbe (which queries the bios for the available vesa modes) says that wide modes are available?

Which of the two is right and what is the reason for this discrepancy? Unfortunately I do not know enough to delve into the code and find out, so I thought to ask the forum.

Could it be a bug in the v86d and it misses some of the native modes?

----------

