Linux 2.4.24 on an Asus M2400N laptop

My Asus M2400N has been running 2.4.22 since I bought it. It came preinstalled with Debian stable and Linux 2.4.22, patched for Asus ACPI, cpufreq and swsusp, and I left it there because it was too much work upgrading.
Recently I have noticed that display updates were noticably slower than before, and after a bit of research I found that XFree86 wanted a newer version of the i830 drm module than was included in Linux 2.4.22. After a while the pain was too much and I set out to upgrade my kernel.
First observation: a standard Debian kernel doesn’t boot on an Asus M2N unless ACPI is disabled, which isn’t very practical, so there was no other option than building my own kernel.
I first tried a 2.6.2 as described at the time on TuxMobil, but the resulting kernel never got further than the first ACPI line.
Later I tried a 2.6.7 kernel downloaded as debs from tuxmobil, again with little success.
In the end I settled for 2.4.24. Always at TuxMobil I found a config-file and a patch, so I downloaded the kernel sources, copied the config file to .config, patched everything and compiled a kernel image deb. Luckily Xtops.DE had given me a nice script to do the compilation, so I didn’t have to read up on make-kpkg and associated magic.
The kernel booted and everything was nice. Except it still didn’t have the correct version of i830.o. It wasn’t configured. I added CONFIG_AGP_I810=y and CONFIG_DRM_I830=y which solved the problem.
Instead of using the Alsa driver for the sound card, I configured CONFIG_SOUND_ICH=m which works perfectly with the integrated soundcard. The module to load is i810_audio.
Here is the final kernel config file which include a few other less relevant changes, mostly about which filesystems to use.
Most of the drivers are compiled directly into the kernel, including drivers for USB, PCMCIA, SpeedStep, ACPI, the RealTek RTL-8101 nic, agpgart and DRM.
I load a few as modules: NFS, sound, Wifi cards and parport.
Here’s the entire boot log.


Leave a Reply

Your email address will not be published. Required fields are marked *