# 1280x800 resolution with intelfb?

## Ahri

I have intelfb compiled in and it's working to the extent that I can add vga=791 and get 1024x768. I can't seem to get my full resolution though.

If I dump the vga= part and just leave the kernel boot params as

```
kernel /boot/bzImage_suspend2 real_root=/dev/sda2 splash=silent root=/dev/ram0 init=/linuxrc ramdisk=8192 udev resume2=swap:/dev/sda3 video=intelfb:mode=1280x800-32@60,accel,hwcursor
```

 then I don't get a hi res console.

If I add vga=864 (which should correspond to 0x360 and therefore 1280x800 - I think) then I just get an 'unsupported' message and have to select a different mode.

My laptop has an Intel 945GM card in it, which is apparently supported by the intelfb driver, so I'm stumped. What do I need to do to get a 1280x800 console?

For reference here's what lspci says about my card;

```
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
```

Incidentally X11's working fine at 1280x800 with the i810 driver.

----------

## olger901

I've been searching for this answer too for quite a while and found nothing, so I guess it's not possible for now. 

From what I know is the video BIOS needs to support the resolution in order for it to work on the console, and the BIOS found on Intel chips does not support this resolution natively (This is where you use 915resolution for during boot-up. To patch the video BIOS in your memory.) I guess it's just not possible to run in 1280x800 mode in the console and if we would like to make it possible, someone who need to write a similar 915resolution program that initializes during kernel boot and would.

----------

## Ahri

Hmm, I think I understand what you mean, and I've seen mention of this 915resolution package, however what I don't understand is that I don't have it installed - yet I still have 1280x800 res in X. Does this mean that my card's bios supports this resolution natively? That's the impression I get - but I don't know anything about this subject.

----------

## bLUEbYTE84

Use fbset.

```
* sys-apps/fbset 

     Available versions:  2.1

     Installed:           none

     Homepage:            http://users.telenet.be/geertu/Linux/fbdev/

     Description:         A utility to set the framebuffer videomode

```

----------

## Ahri

I've been messing with fbset, I get 

```
mode "1024x768-60"

    # D: 62.360 MHz, H: 47.530 kHz, V: 60.013 Hz

    geometry 1024 768 1024 768 32

    timings 16036 128 32 16 4 128 4

    accel true

    rgba 8/16,8/8,8/0,8/24

endmode

Frame buffer device information:

    Name        : Intel(R) 945GM

    Address     : 0xe0000000

    Size        : 8122368

    Type        : PACKED PIXELS

    Visual      : TRUECOLOR

    XPanStep    : 8

    YPanStep    : 1

    YWrapStep   : 0

    LineLength  : 4096

    MMIO Address: 0xffd80000

    MMIO Size   : 524288

    Accelerator : Unknown (42)
```

 from `fbset -i' but trying to change the resolution with `fbset -xres 12800 -yres 800' doesn't work because /etc/fb.modes doesn't exist. I've looked for information to create this file and add my own 1280x800 resolution but I can't find much of use.

How do I make this file? Are the timings going to be the same for 1280x800 as for 1024x768?

Anyway I had a go myself and made the file as follows:

```
mode "1024x768-60"

    # D: 62.360 MHz, H: 47.530 kHz, V: 60.013 Hz

    geometry 1024 768 1024 768 32

    timings 16036 128 32 16 4 128 4

    accel true

#    rgba 8/16,8/8,8/0,8/24

endmode

mode "1280x800-60"

    # D: 62.360 MHz, H: 47.530 kHz, V: 60.013 Hz

    geometry 1280 800 1280 800 32

    timings 16036 128 32 16 4 128 4

    accel true

#    rgba 8/16,8/8,8/0,8/24

endmode
```

I commented out those rgba lines because fbset complained about syntax errors.

I tried again to set the resolution;

```
$ fbset -xres 1280 -yres 800

ioctl FBIOPUT_VSCREENINFO: Invalid argument
```

The same happens with 

```
$ fbset 1280x800-60

ioctl FBIOPUT_VSCREENINFO: Invalid argument
```

So again, I'm stumped. Any pointers at all?  :Smile: 

----------

## bLUEbYTE84

Try this one to generate fbset format modelines

http://www.sh.nu/nvidia/gtf.php

----------

## Ahri

string.h needs including in that code:

```
$ gcc gtf.c -o gtf -lm -Wall

gtf.c: In function 'parse_command_line':

gtf.c:665: warning: implicit declaration of function 'strcmp'
```

So I added

```
#include <string.h>
```

 and that seemed to do the job.

I ran `gtf 1280 800 60 -f' and got:

```
mode "1280x800 60.00Hz 32bit (GTF)"

    # PCLK: 83.46 MHz, H: 49.68 kHz, V: 60.00 Hz

    geometry 1280 800 1280 800 32

    timings 11981 200 64 24 1 136 3

    hsync low

    vsync high

endmode
```

But using that mode still doesn't work:

```
$ sudo fbset "1280x800 60.00Hz 32bit (GTF)"

ioctl FBIOPUT_VSCREENINFO: Invalid argument
```

----------

## bLUEbYTE84

I found this for you:

http://lists.freedesktop.org/archives/xorg/2005-August/009197.html

----------

## Ahri

Thanks, but I'm not sure this is directly relevant to me; there is a 915resolution package to add some resolutions but I have not needed to do this to get 1280x800 in xorg (which is what people appear to install that package for) - I'm just using the i810 driver. So surely this means that my card's bios already supports this resolution? My xorg.conf is really simple and I had absolutely no difficulty in running it at the correct res;

```
Section "Device"

   Identifier  "Intel 945GM"

   Driver      "i810"

   Option "DPI" "96 x 96"

    Option "DRI"

   VendorName  "Intel Corporation"

   BoardName   "Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"

   BusID       "PCI:0:2:0"

EndSection

Section "Screen"

   Identifier "Screen0"

   Device     "Intel 945GM"

   Monitor    "Integrated LCD"

   SubSection "Display"

      Viewport   0 0

      Depth     24

      Modes     "1280x800"

   EndSubSection

EndSection
```

----------

## Ahri

This is so irritating. Why does the xorg i810 driver work fine at 1280x800 yet the intelfb driver which explicitly claims support for the 945GM doesn't seem to do the job? Why can I switch from VT7 to 1 and lose so many pixels?

It's worth noting that I can't even use fbset to go to the 1024x768-60 mode described above (which is in my /etc/fb.modes file) - I get the exact same error. I don't even really know what that error means.

```
$ fbset -xres 1024 -yres 768

ioctl FBIOPUT_VSCREENINFO: Invalid argument

$ sudo fbset -xres 1024 -yres 768

ioctl FBIOPUT_VSCREENINFO: Invalid argument
```

.....wtf? It's on fking 1024x768 _already_

----------

## bLUEbYTE84

Hmmm, is there DDC stuff listed under this fb driver in menuconfig?

----------

## Ahri

Yes, I have it enabled:

```
    <*> Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL) 

      [ ]   Intel driver Debug Messages

      [*]   DDC/I2C for Intel framebuffer support
```

I have no idea what it's for though; should I remove support?

----------

## bLUEbYTE84

Yes, try if removing it helps.

DDC=Your vid. card queries your monitor and it provides resolution/rate limits to your card.

It might be the case that this is somewhat enforcing the resolutions, thus preventing you to set another resolution.

----------

## Ahri

I dropped the DDC/I2C setting and it doesn't seem to have made any difference, I still get the weird error using fbset  :Sad: 

```
$ zcat /proc/config.gz | grep INTEL_I2C

# CONFIG_FB_INTEL_I2C is not set
```

----------

## DocFX

Hi,

I'm running into the same problem as Ahri did, is there a solution yet?

cheers,

  DocFX

----------

