Debian GNU/Linux 3.0 was installed from a Debian CD-ROM (15 Apr 2003). This desktop machine is considered a production machine and so needs to stay with the stable release. However this machine requires XFree 4.3. The XFree86 documentation said the video chipset (Intel i845) was only supported in version 4.3.0, which is only available in Debian packaged for the unstable distribution.
The vesa driver in XFree86-4.1.0 is an option but has serious problems. Even with the Debian testing release there were problems with the vesa driver.
The solution was better kernel support of the devices. But before considering this option think about buying an extra video card.
A first attempt was to install XFree86 4.3.0 from the tar files provided by xfree86.org. This works but it lives outside the Debian package system and might break your package management system at some stage down the track, although this is usually easily managed.
Intel does provide some information from http://support.intel.com/support/graphics Intel indicates that xfree86-4.2.0 is required, which means using Debian's testing distribution at the moment. See the Debian Reference for how to upgrade your distribution from stable to testing.
Some BIOS changes:
Video DAC Snoop = ON Legacy Video Memory = 8Mb AGP window max = 256Mb (the maximum available)
Get the appropriate drivers from Intel at http://support.intel.com/support/graphics. The tarball is i830-2003030120-i386-linux.tar.gz
Before compiling the drivers
Get the kernel-headers. This is needed so the Intel driver code can fit correctly into your running kernel. The testing distribution of Debian uses kernel 2.4.20. For kernel 2.4.20, debian changed the layout of the headers package -- it is no longer kernel-headers-2.4.20-686, but kernel-build-2.4.20/<arch> and you get all the relevant architectures.
# cd /usr/src # ln -s kernel-build-2.4.20/686 linux
Build the drivers
Now unpack the Intel driver tarball, anywhere you like. The tarball unpacks to a directory called dripkg.
# cd dripkg # sh ./install.sh
The install script prompts you for the information it needs, and keeps a log of what it does. You need to run it as root.
The compilation can fail if the /usr/src/linux link is not pointing to the right place (see above), or the kernel version is too old (less than 2.4.11).
As part of the install script, the newly built files are installed at the locations shown below. Any preexisting files are moved to a file of the same name with a ``.dri-old'' suffix.
dripkg/i830/i810_drv.o /usr/X11R6/lib/modules/drivers/i810_drv.o dripkg/i830/i830_dri.so /usr/X11R6/lib/modules/dri/i830_dri.so dripkg/drm/i830.o /lib/modules/2.4.20-686/kernel/drivers/char/drm/i830.o dripkg/agpgart/agpgart.o /lib/modules/2.4.20-686/kernel/drivers/char/agp/agpgart.o dripkg/core/libdri.a /usr/X11R6/lib/modules/extensions/libdri.a dripkg/core/libdrm.a /usr/X11R6/lib/modules/linux/libdrm.a dripkg/core/libpcidata.a /usr/X11R6/lib/modules/libpcidata.a dripkg/core/libscanpci.a /usr/X11R6/lib/modules/libscanpci.a
(Note that the set of files and the locations will likely be different on your system.)
The fact these modules replace ones provided by the packaging system may break the packaging system to some extent, but to a far smaller extent than installing XFree86-4.3 from a tarball or from source.
Configure your X server
This is quite simple once you have the correct hardware support. All you really need is the line Driver ``i810'' in the Device section. In the Screen section, start with a default graphics depth of 16. This is what Intel recommend. It may help to specify a VideoRam size, but it's not required. Resolutions 1024x768 and 1280x1024 work at 16 and 24 bits and seems to do the 3D graphics things (running glxinfo and glxgears to verify this).
VESA driver
Messing around with VESA modes in XFree86 4.2.1 did not help with this chipset. The drivers only work for a little while. The failure was that once you switch VTs or restart the X server, the screen goes black. Sometimes the card seems to go into the correct video mode (verify this using the menu buttons on the monitor) but when the screen is a uniform black you can't do much useful work. There was one other mode of failure, where the screen had strange colours. This may have been an incorrect pixmap depth problem, or possibly a bad video modeline (though I find it hard to accept the latter, I let vbe/ddc do its thing.)
The upgrade described in this note makes no real difference to these problems with the vesa driver. Presumably this is because the upgrade doesn't affect the relevant bits of the system.