# i810 + framebuffer woes

## slackline

Hi,

Many kernels ago I used to have framebuffer and bootsplash working fine on a Dell Latitude X300 with Intel i810 graphics card, I think, that was the driver I used to use, but just in case...

```

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02) (prog-if 00 [VGA controller])

        Subsystem: Dell Latitude X300

        Flags: bus master, fast devsel, latency 0, IRQ 10

        Memory at e8000000 (32-bit, prefetchable) [size=128M]

        Memory at e0000000 (32-bit, non-prefetchable) [size=512K]

        I/O ports at 1800 [size=8]

        Expansion ROM at <unassigned> [disabled]

        Capabilities: [d0] Power Management version 1

00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)

        Subsystem: Dell Latitude X300

        Flags: fast devsel

        Memory at f0000000 (32-bit, prefetchable) [size=128M]

        Memory at e0080000 (32-bit, non-prefetchable) [size=512K]

        Capabilities: [d0] Power Management version 1

```

Updating the kernel at some point broke this (can't remember when).  At the time I wasn't too bothered about it, but having just got TuxOnIce/Hibernation working I'd like to have some fancy framebuffer UI when this is happening so I'm having a second look.

As things have progressed/changed since I first had this working I started from scratch following the Gentoo Wiki : Framebuffer guide.  I have the following option set in kernel in addition to those recommended in the wiki...

```

Device Drivers ->

    Graphics support ->

        <*> Support for frame buffer devices  --->

          <*>  Intel 810/815 support (EXPERIMENTAL)

```

(I also have the X.org driver x11-drivers/xf86-video-intel but thats irrelevant as its for Xorg and not the framebuffer).

My kernel options for booting currently look like...

```

append="video=uvesafb:mtrr:3,ywrap,1024x768-24@60 splash=verbose,theme:gentoo quiet CONSOLE=tty1 resume=swap:/dev/hda2"

```

...and I have the most recent version su

I've tried using uvesafb, but on booting get the following message suggesting that things aren't quite right in the kernel...

```

uvesafb: Getting VBE info block failed (eax=0x4f00, err=1)

uvesafb: vbs_init() failed with -22

```

I've had a good search and some seem to have resolved this by compiling uvesafb as a module, but I really prefer compiling everything into the kernel (and can't actually remember if compiling as a module worked, I'm pretty sure I tried it a while ago and had no joy, but will try again later).

Does anyone else have this particular graphics card working with framebuffer?

Cheers

slack

----------

## johnny99

Did you add the 'fbcondecor' use flag to your splashutils and rebuild your initrd?  

If not you will also want to  'rc-update add fbcondecor default'

I have an older card, but use the same driver.

This is my setup:

eix splashutils

```
[I] media-gfx/splashutils

     Available versions:  1.5.4.2!t ~1.5.4.3!t {fbcondecor gpm hardened mng png truetype}

     Installed versions:  1.5.4.2!t(01:55:06 PM 01/26/2009)(fbcondecor gpm mng png truetype -hardened)

     Homepage:            http://fbsplash.berlios.de

     Description:         Framebuffer splash utilities.
```

lspci -v 

```
00:02.0 VGA compatible controller: Intel Corporation 82815 CGC [Chipset Graphics Controller] (rev 04) (prog-if 00 [VGA controller])

        Subsystem: Ricoh Co Ltd Device 2004

        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 9

        Memory at 90000000 (32-bit, prefetchable) [size=64M]

        Memory at 40000000 (32-bit, non-prefetchable) [size=512K]

        Capabilities: [dc] Power Management version 2

        Kernel driver in use: i810fb
```

/etc/make.conf

```
VIDEO_CARDS="i810 vesa fbdev"
```

kernel options (2.6.27-gentoo-r8:

```
    Graphics support ->

        <*> Support for frame buffer devices  --->

          [*]   VESA VGA graphics support

          <*>   Intel 810/815 support (EXPERIMENTAL)

      [*]     use VESA Generalized Timing Formula

      [*]       Enable DDC Support
```

Grub

```
title kernel-genkernel-x86-2.6.27-gentoo-r8

root (hd0,0)

kernel /kernel-genkernel-x86-2.6.27-gentoo-r8 real_root=/dev/hda3 ro quiet devfs=mount console=tty1 block2mtd.block2mtd=/dev/hdc3 video=i810fb:vram:4,xres:1024,yres:768,bpp:24,hsync1:30,hsync2:81,vsync1:56,vsync2:76,accel splash=silent,kdgraphics,theme:simsplash

initrd /initramfs-genkernel-x86-2.6.27-gentoo-r8
```

----------

## slackline

Cheers for the suggestion johnny99.

Had USE="fbsplash" set for splashutils and fbcondecor added to the boot runlevel

```

# eix splashutils

[I] media-gfx/splashutils

     Available versions:  1.5.4.2!t (~)1.5.4.3!t {fbcondecor gpm hardened mng png truetype}

     Installed versions:  1.5.4.3!t(18:50:45 03/22/09)(fbcondecor gpm mng png truetype -hardened)

     Homepage:            http://fbsplash.berlios.de

     Description:         Framebuffer splash utilities.

# rc-update show | grep fb

           fbcondecor | default                                       

```

I have however made some headway with uvesafb.  I had another go at try it as a module and it loads fine now (pretty sure I remember it didn't and left it), although its not perfect because I can't get the initrd image to be loaded on boot (as its a module I assume you specify options in /etc/conf.d/modules, see below). dmesg shows some errors and fbcondecor only tries to use 640x480 resolution and there is no such config. I suspect the two are related and uvesafb doesn't support the res I'm specifying.

```

# dmesg | grep uvesa

uvesafb: Intel Corporation, Intel(r)852MG/852MGE/855MG/855MGE Graphics Controller, Hardware Version 0.0, OEM: Intel(r)852MG/852MGE/855MG/855MGE Graphics Chip Accelerated VGA BIOS, VBE v3.0

uvesafb: Getting mode info block for mode 0x136 failed (eax=0x14f, err=0)

uvesafb: Getting mode info block for mode 0x147 failed (eax=0x14f, err=0)

uvesafb: Getting mode info block for mode 0x156 failed (eax=0x14f, err=0)

uvesafb: VBIOS/hardware doesn't support DDC transfers

uvesafb: no monitor limits have been set, default refresh rate will be used

uvesafb: scrolling: redraw

uvesafb: framebuffer at 0xe8000000, mapped to 0xe8000000, using 6144k, total 8000k

```

The 'info block for mode ***** failed suggests thats why I can't use the 1024x768 initrd I created as fbcondecor shows...

```

* Setting framebuffer console images...

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.

Can't open cfg file //etc/splash/gentoo/640x480.cfg.

No silent picture specified in the theme.

No verbose picture specified in the theme.

FBIOCONDECOR_SETSTATE failed, error code 22.                                                 [ ok ]

```

I've installed sys-apps/fbset and this mostly confirms the suspicion....

```

# fbset -i                                                                       

mode "640x480-60"

    # D: 23.845 MHz, H: 29.844 kHz, V: 60.048 Hz

    geometry 640 480 640 480 16

    timings 41937 80 16 13 1 63 3

    vsync high

    rgba 5/11,6/5,5/0,0/0

endmode

Frame buffer device information:

    Name        : VESA VGA

    Address     : 0xe8000000

    Size        : 6291456

    Type        : PACKED PIXELS

    Visual      : TRUECOLOR

    XPanStep    : 0

    YPanStep    : 0

    YWrapStep   : 0

    LineLength  : 1280

    Accelerator : No

```

I've tried setting the following options in /etc/conf.d/modules....

```

modules="ndiswrapper"

modules="uvesafb"

module_uvesafb="mode_option=1024x768@60  mtrr=2 scroll=ywrap"

```

Although on booting when the /etc/init.d/modules script is started it only reports that one module was loaded (uvesafb) as presumably ndiswrapper (and the other modules I use i915 and drm) are both automatically loaded already.

So I'm now trying to get uvesafb to run at a higher resolution so that the initrd image is recognised and I have a nice grahpical UI (I can then use it for hibernation too, hopefully!).

Feels close, but not quite there, all suggestions welcome,

slack

----------

## slackline

 *johnny99 wrote:*   

> 
> 
> /etc/make.conf
> 
> ```
> ...

 

Just a quick heads up as I was checking your above flags against what I use, but none of the ebuilds currently in portage for x11-base/xorg-server use the VIDEO_CARDS="i810", its been superseeded by the VIDEO_CARDS="intel" flag.

Am trying out the additional 'vesa' and 'fbdev' flags, but I have a strong suspicion that this only pertains to Xorg, as nothing in the kernel uses any USE/VIDEO_CARD flags.

Cheers,

slack

----------

