The goal of the xserver downgrading is to run intel IEGD drivers on recent GNU/Linux distribution (debian squeese in my case). This seams to be the only maintained driver for the US15W GMA500 (poulsbo) chipset.
The first step was to get the packages from The Debian X Strike Force git repositories.
The xorg-server.git repository is the one building the xserver itself. So I basically branched from the tag xorg-server-2_1.6.5-1. And cherry picked some later changes to have it compile with current (1.7) xorg-server builddep.
Once done, I recompiled some drivers (most inputs and video-vesa) using the newly build xserver-xorg-dev package. (to use ABI 4.0 for input and 5.0 for video).
Finally I build the Xorg meta package to get the xserver-xorg dependencies correct so that aptitude stop complaining (installing with
dpkg -i can really mess up aptitude) however I had to hold the xserver-xorg-core and xserver-xorg-dev packages to avoid automatic upgrade by aptitude.
I’ve named my branches
xorg7.5+xs1.6 on git, and used the same prefix in the debian packages version.
About the IEGD drivers, following their guide for copying files is basically OK. However to build the kernel module I followed instructions on nanoANT: Compiling kernel IEGD 10.x module for any Linux distribution. Except that I hardcoded most path in the makefile and used the
linux-source-2.6.32 package and not and
apt-get source linux-image-... as suggested.
One point to note is that I had to write an xorg.conf, basically the keyboard and touchpad was not detected without it (I think xorg switched from hal to udev for driver detection or something like that. As I’m recompiling an older version, It’s probably not in sync with the configuration of hal and udev) so here it is:
Section "ServerFlags" Option "Xinerama" "False" Option "AllowMouseOpenFail" "1" Option "BlankTime" "0" #... Option "AIGLX" "False" Option "GlxVisuals" "all" EndSection Section "InputDevice" Identifier "clavier" Driver "evdev" Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd" Option "xkb_rules" "evdev" Option "xkb_model" "pc105" Option "xkb_layout" "fr" Option "xkb_variant" "latin9" EndSection Section "InputDevice" Identifier "SynPS/2 Synaptics TouchPad Driver "synaptics" Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse" EndSection Section "Device" Identifier "Intel US15W GMA500 Device 0" Driver "iegd" EndSection Section "Screen" Identifier "LCD Panel Screen 0" Device "Intel US15W GMA500 Device 0" EndSection Section "Device" Identifier "Builtin Default vesa Device 0" Driver "vesa" EndSection Section "Screen" Identifier "Builtin Default vesa Screen 0" Device "Builtin Default vesa Device 0" EndSection Section "ServerLayout" Identifier "Builtin Default Layout" Screen "LCD Panel Screen 0" Screen "Builtin Default vesa Screen 0" InputDevice "clavier" InputDevice "SynPS/2 Synaptics TouchPad EndSection
In order to improve the input detection, I want to try building an xserver based on 1.6 but merging all the changes on input ABI so that I can directly use the xorg 7.5 packages for input drivers. I still have to try it, but basically I think IEGD only need the video ABI to be version 5.0 as xserver 1.6 was, the rest could be as in 1.7 (or later!).