I’ve been using a custom kernel for a long time, mostly because I needed several patches for the Asus M2400N and it was a lot easier to grab a ready made kernel from Tuxmobil.org.
Hence, I’ve been running 2.6.9 for a long time, and had a few problems. For example, I haven’t been able to upgrade udev for quite some time, since it now requires 2.6.12 or later.
Anyway, I decided to try and take the short road, and just install a stock debian kernel and see what happens. In the end it turned out quite succesful, though not 100%. There are a few problems to look into.
First I just did an
apt-get install linux-image-2.6.15-1-686
It wanted to upgrade udev too, which caused some problems, but in the end I managed to install the kernel. I had to purge udev completely first, though.
My old kernel had several patches applied: Software Suspend 2, ACPI4Asus and the IPW2200 wireless driver.
The new kernel booted without a hitch.
The ipw2200 driver didn’t load because of a firmware mismatch. I hooked up a cable and downloaded the new firmware, and rebooted, which solved that problem.
The laptop has a lot of extra buttons, which generate ACPI events. Only the power button worked under 2.6.15, but I found an asus_acpi module which did the trick. It used to be a patch, but obviously its a lot better having it as a module.
The SpeedStep functions of the Centrino CPU didn’t work, but once again there was a module: centrino_speedstep. That and cpufreq_ondemand solved the problem and cpu frequency scaling worked again.
The only remaining issue is hibernation. A bit of googling and looking in /boot/config-2.6.15-1-686 showed that the stock Debian kernel has Software Suspend (v1, not v2) compiled in. It is somewhat simpler than SWSUSP2 but worth a try to save some time.
A first test with suspend to memory failed miserably to resume.
Switching to suspend to disk, I had to change the kernel option “resume2” to “resume” and reboot. I also had to correct /etc/hibernate/hibernate.conf to use SWSUSP instead of SWSUSP2.
Now I can hibernate (to disk) and resume, both from a console and from within X Windows. The interface isn’t as nice as Software Suspend 2, but I can live with that. In any case, hibernation is a nice-to-have for me, not a must-have.
I do have one problem. My USB mouse was dead after a resume. Unloading and loading of modules didn’t help much, neither did unplugging and re-attaching the mouse, and a comparison of the modules loaded just after a clean reboot and after a resume didn’t show any differences. Thats one thing I have to research a bit more.
The conclusion must be that this laptop can now be used with a stock Debian kernel and the appropriate modules. Thats certain a nice step forward as it will make future upgrades a lot easier.