These are my notes on getting Debian running on the IBM x40, but in the end I took the easy solution: I installed Ubuntu.
I got most of the the features of my laptop to work with Debian, sortof - it was never as polished as I would wan't it and every now and then something would break. Debian is great and flexible but it has a low point of entry when it comes to Laptop features.
To be specific, my biggest annoyance was software suspend - I never got this to work quite as well as I would like to, which in turn gave me all sorts fun with kernel versions.
I was unable to get suspend/resume to work with the stock Debian kernels. The features included in the kernel simply didn't do anything, and the software suspend 2 patch blew up on my laptop as well. Without a patched, polished kernel from Debian I went with the vanilla kernels which is troublesome to say the least - bearing in mind that not a lot of time goes into making the 2.6 series stable.
I was lucky to get 2.6.11.4 flying for some time, but not perfectly:
In the following are my notes on installing a Debian Linux on an IBM x40, for the most part it is distribution independent. I used the new Debian Sarge installer (RC2) which takes care of resizing the NTFS Windows partition.
What I tried: Buttons, Bluetooth, Wireless LAN, Ethernet, Audio, X11, Audio What I din't try: IrDa, Modem, SD card reader, FireWire, Framebuffer
I would like to write that installing Debian on the X40 was a breeze and that everyting is working just dandy. Unfortunately I can't. It has taken me some headakes and I'm still not sattisfied.
While this is not suppose to be a review, I'm going to use the chance to say a few words about what I think about the X40. I'll start with what I like about the X40. I got three batteries the small built-in, the big built-in and the external life extenender. With these three I get extremely good lifetime. The screen is very clear and the formfactor/weight is very good.
Now for the bad.
First there is the noise. When comparing to other more powerfull laptops it not that bad, but there is deffinately room for improvement espcially comparing to my old HP Omnibook 500. The laptop has a hard time keeping cool without the fan turning on - it regulates the speed, but it is running and it is annoying.
Next is the harddrive. It seems that the ultra-small harddrive of the x40 is unable to archive the level of noise most 2.5'' drives it is clearly audible and has a distinct squeequing noise every now and then. Again I bought a Hitashi drive for the HP, which clearly outperformed the one comming with the X40.
Finally there is the keyboard it has an annoying clicking noise that only reminds me of those old fashion IBM-keyboards that are loved by some.
The layout of the keyboard is plain wrong. The only reason for the layout of keyboard, that I can only think of, is to satisfy loyal IBM costumers. Coming from a plain-PC keyboard, and the one on my old HP OmniBook 500 it can only be described as wrong. Crtl and Fn are swapped, F1 is where Esc should be and esc/del/pageUP/pageDn are oddly placed.swap this i a pain. I use a 10-digit system and my pinky is the finger that use to press ctrl. In order for this to happen I have to twist my hand just enough that the rest of my hand looses its position on the keyboard. I practise this means that I hit Ctrl-s when I want Ctrl-d all the time. Sigh.
One suggestion is to use xmodmap to change CAPS-Lock to Ctrl, but I more fetch my soldering iron an fix the darn thingresume=/dev/xxxFurthermore the screen is messed up unless the following boot parameter is passed to the kernel,
acpi_sleep=s3_bios
tar zxfv ibm-acpi-0.11.tar.gz cd ibm-acpi-0.11 make su make install echo "ibm_acpi experimental=1" >> /etc/modules cp -R config/etc/acpi/* /etc/acpi/ rm /etc/acpi/events/ac # laptop-mode has a better oneThe "/etc/acpi/action/radio" is setup for the ipw2100 driver, open the file and change it to ipw2200. Ret laptop-mode, fjern den event og brug debian laptop-mode battery.sh
apt-get install tpb
apt-get install hotplug tar zxfv ipw2200-1.0.1.tgz cd ipw2200-1.0.1 make make install cd
SubSection "Display" Depth 24 Modes "Native panel mode" EndSubSection
chvt 1; chvt 7
./i855crt on 1024x768@85 ./i855crt off
Most of the IBM extra features are controlled by ACPI which makes them quite easy to control. Some scripts come with the laptopmode and ibm_acpi packages, but most of them don't do what I don't exactly what I want. In the following are my modifications and additions to these examples.
ibm_acpi comes with the following examples: battery.sh, blank.sh, dock.sh, eject.sh, radio.sh, rescan.sh, undock.sh, video.sh
laptop-mode-tools comes with: lm_ac_adapter.sh, lm_battery.sh, lm_lid.sh
The battery seems to generate a few events while discharging. If you look at the battery info file /proc/acpi/battery/BAT0/info there are a few limits set up. For me they are 3086 mWh and 619 mWh.
In any case, what I wan't is for the laptop to enter hibernation rather than die when close to the limit. The script that comes with the laptop mode package doesn't do that - it simply disables laptop mode when close to the limit which makes a little, but not at lot of sense.
Key | Supposed action |
---|---|
Blank key (Fn-F3) | Blank the screen |
Sleep key (Fn-F4) | |
Radio key (Fn-F5) | |
External-video key (Fn-F7) | |
Dock key (Fn-F9) | |
Hibernate key (Fn-F12) |
Action | Event |
---|---|
Blank key (Fn-F3) | ibm/hotkey HKEY 00000080 00001003 |
Sleep key (Fn-F4) | ibm/hotkey HKEY 00000080 00001004 |
Radio key (Fn-F5) | ibm/hotkey HKEY 00000080 00001005 |
External-video key (Fn-F7) | ibm/hotkey HKEY 00000080 00001007 |
Dock key (Fn-F9) | ibm/hotkey HKEY 00000080 00001008 |
Hibernate key (Fn-F12) | ibm/hotkey HKEY 00000080 0000100c |
Action | Event |
Resume from suspend to disk | |
Lid open/close | The x40 seems to generate an event for open/close and one that counts the numver of open or close operations!?
ibm/hotkey HKEY 00000080 00005001 button/lid LID 00000080 00000006 |
Lid open | ibm/hotkey HKEY 00000080 00005002 button/lid LID 00000080 00000007 |
AC adaptor removed | ac_adapter AC 00000080 00000000 battery BAT0 00000080 00000001 |
AC adaptor attached battery BAT0 00000080 00000001 |