I just got a new x40, it's a great machine, tiny, and powerful. First thing I
did obviously, was to install Linux. Lucky enough, it turned out to be quite
easy.
- Step 1: Remove the windows sticker
- Step 2: Boot into windows and create recovery disks
- Step 3: Linux install
- Step 4: Post install configuration: Centrino 2200BG wireless adapter
- Step 5: Post install configuration: power management
- Step 6: Post install tweaking: the thinkpad keys
- Step 7: Last thought: no ethernet on boot
- Step 8: Add-in: external display
- Links
The machine
Well, it's an x40, and you may better go straight to IBM for detailed info. My model number is 2372G4U, with a Pentium Mobile 738LV (up to 1.4Ghz), 512MB RAM, a 40GB hard drive, 12.1" XGA TFT LCD, a modem, gigabit internet, and the Centrino 2200BG wireless adapter.
I immediately upgraded the RAM to 1GB. This was straightforward: just stick the memory in, and it works.
It was now time to install Linux. I went for linux Mandrake 10.1, the distribution I use for my everyday job. For this, I used an external USB CDROM drive.
Summary | ||
| Component | Status | Comment |
| Pentium Mobile 738LV | Works | |
| Sound | Works | |
| 12.1" XGA TFT LCD | Works | 1024x768, 16 millions color |
| Modem | Not tested | |
| Gigabit internet | Works | Tested on a 10/100 network |
| Centrino 2200BG wireless | Works | See section 4 |
| Power management | Partially works | See section 5 |
| Thinkpad keys | Works | See section 6 |
| External display | Works at 1024x768 pixels | See section 8 |
Step 1: Remove the windows sticker
Remove the windows XP sticker, and place it carefully on your toilet flush. Be careful, this operation is extremely risky and may compromise your whole computer.
Step 2: Boot into windows and create recovery disks
I decided to be careful: I booted into windows, and created recovery Cd's with the Access IBM program. There are two functions: one creates a boot disk, and the other the 5 recovery Cd's. This may not be necessary, but I guess I'll be happy to have them if my hard disk dies in the next 5 years. Before starting the linux install, I defragmented the disk in windows, but this may not be necessary. Finally, restart your computer and boot on your mandrake Cd's.
By the way, windows converted my whole disk to NTFS upon first boot. I do not really care since Mandrake knows how to resize with those partitions.
Step 3: Linux install
The Mandrake install went fine. I manually chose the size of my partitions to
- 10 gigs for windows, in
/mnt/windows - 8 gigs for the root partition, in
/ - 1 gig for the swap
- 10 gigs for my personal files, in
/home/ - 6 gigs for the programs I'll install by hand, in
/usr/local/
and I left the recovery sector provided by IBM. I could have removed it, since I had the recovery Cd's but I decided not to.
There was no other trouble with the install. After the install two (expected) problems arose: the wireless card, and power management.
Step 4: Post install configuration: Centrino 2200BG wireless adapter
The driver provided in mandrake 10.1 did not work properly. I
went straight to the homepage of the driver,
http://ipw2200.sourceforge.net/
and got the latest version of the driver and firmware (ipw2200-1.0.2).
I installed the wireless driver following the instructions in the
INSTALL file, I did not have to recompile my kernel.
Following the recommendations on this
page,
I turned off the system management of the wireless interface, by commenting out
the call to ifup-wireless at around line 178 of
/etc/sysconfig/network-scripts/ifup:
# is the device wireless? If so, configure wireless device specifics
IS_WIRELESS=
if is_wireless_device ${DEVICE}; then
# Disable wireless configuration to allow ipw2200 WEP with iwconfig
# . ./ifup-wireless
IS_WIRELESS=1
fi
To managed my wireless card, I could have used the command line interfaces,
but I do not like to dig into the terminal window too often, so I
installed the excellent wlan-ui
to easily find and connect to access points. To get wlan-ui
to work, I had to install two additional perl modules,
Getopt-ArgvFile and Gtk2-GladeXML
that I got from CPAN.
Configuration of wlan-ui was easy, just follow the
instructions in the documentation. My configuration file
/etc/wlan-uirc is
# Example system configuration file
# Edit and save as /etc/wlan-uirc
# Wireless driver module to load
$MODULE = 'ipw2200';
# Wireless network device - e.g. 'wlan0'.
# If not defined we use /proc/net/wireless to find the device
$DEVICE = eth1;
# Commands for manipulating wlan module etc
# We will find unspecified commands from the path
$CMDS = {'lsmod', '/sbin/lsmod',
'modprobe', '/sbin/modprobe',
'load', undef, # modprobe used by default
'unload', /usr/local/soft/ipw2200-1.0.2/unload, # modprobe -r used by default
'iwconfig', '/sbin/iwconfig',
'iwlist', '/sbin/iwlist',
'ifconfig', '/sbin/ifconfig',
'ps', undef,
'dhcpcd', '/sbin/dhclient'};
Finally, I configured sudo in order to be able to
use the interface as a user, as described in the
wlan-ui documentation.
It worked! I was on the net.
Step 5: Post install configuration: power management
I didn't played too hard with the power management, but I did get my CPU to go from 500Mhz to 1.4Ghz depending on load. I know nothing about this stuff, so I just followed instructions on this page. This is a copy and paste version of the siteMy only comment is: do not forget to start the powernowd deamon! It's
in the control center, under services. After that, everything works
great and my CPU speed is adjusting nicely. If you click on the battery
monitor under KDE, it tells you at what speed the CPU is actually running.
Step 6: Post install tweaking: the thinkpad keys
The x40 comes with a couple of extra keys, for sound, brightness, and an
"Access IBM" key. The tpb - ThinkPad button package will
get them to work nicely with linux, and it is included somewhere in Mandrake.
It uses the xosd (X on screen display) to display on-screen the status of audio
volume and screen brightness when you press the ThinkPad buttons.
But the really nice feature is the ability to bind the blue "Access IBM"
button to start a command of your choice.
Install the tbp and xosd packages.
Then, make the /dev/nvram device as follows:
mknod /dev/nvram c 10 144
Add the nvram module to /etc/modprobe.preload and
load it manually the first time with modprobe nvram.
Now, you can add an entry at the very end of /etc/rc.d/rc.local
to start the program at boot: tpb -d. This will get the default
on screen display working.
The configuration file for this package is /etc/tpbrc
and I just changed one line
THINKPAD /usr/bin/sudo /usr/local/bin/wlan-ui.pl
Now, when I press the "Access IBM" key, I get the wlan-ui interface to change my wireless network. Cool!
Step 7: Last thought: no ethernet on boot
Most of the time, I use my laptop with wireless internet. Therefore, I disabled
the eth0 and eth1 at boot: my computer does not
try to get online straight away. There are two reasons for that: it can
slow the boot process if you are not plugged in, and I like to choose
my wireless access point. This can be done in the Mandrake Control Center,
under network and internet options.
Add-in: external display
After I wrote this page, I realized there was a problem when trying to export the display on an external monitor or projector. If you simply use the Fn-F7 key, there is a band on top of the screen and everything is shifted down. I could not find a way to work around this.
The solution I found is based on i855crt, a userspace driver for linux that can enable the crt out (port for external monitor) on i855GM based laptop. I downloaded and compiled the latest package, and used the following commands:
./i855crt swcursor overlaycrt on 1024x768@85
to start the external display with a resolution of 1024x768 pixels and
./i855crt off
to stop it.
To allow the use of this script by a user, I configured sudo to allow users to use the i855crt command as root and installed the following scripts on my desktop:
Desktop/displayON.sh:#!/bin/sh
cd /usr/local/soft/i855crt-0.4/
sudo ./i855crt swcursor overlaycrt on 1024x768@85
exit- and
Desktop/displayOFF.sh:#!/bin/sh
cd /usr/local/soft/i855crt-0.4/
sudo ./i855crt off
exit
The last problem is to use a external display with a better resolution than 1024x768. I haven't solved it yet.
Links
- IBM
- Mandriva Linux
- Mandriva Club
- Intel® PRO/Wireless 2200BG Driver for Linux
- wlan-ui- tiny linux wireless GUI
- Comprehensive Perl Archive Network
- Linux on Laptops
- Mandrake 10.1 on an IBM X40
- Mandrake Linux 10.1 on an IBM Thinkpad x31
04/2005 |
Changed links to Mandriva addresses, 04/2005 |
Added add-in on external display at 1024x768 pixels, 05/2005 |
Werner Heuser, 26 October 2006
This guide is listed at the TuxMobil: Linux Laptop and Notebook Installation Guide Survey ( http://tuxmobil.org/ibm.html ).
Marius, 28 November 2006
dear,
i have read the above instructions but i still couldnt yet config my ipw2200 on my notebk, could you pls offer some help?
i got a ipw2200 driver 1.2.0 from ipw2200.sf.net and i am using Mandriva 2007.0 coz i am new to Linux
i think i have successfully installed the driver as well as the firmware 3.0 as described in ipw2200.sf.net, but while i see the dmesg, it said that it cannot load the firmware. i just couldnt figure out whts happening.......
however, i am trying out on your method that use wlan-ui to manage the wireless, but i just didnt know how to make it installed...though i have DL those three files required.....
PLSPLSPLS offer me some help..... :)
THX in advance
Butchu, 28 November 2006
If you use the full version of Mandriva 2007, it recognizes the ipw2200 card with no special installation.
Go into the control center (Menu System -> Configuration -> Configure your computer). In the control center, go into "Network and Internet", choose "Set up a new network interface", "Wireless", and keep going with this tool.
You should get you ipw2200 up and running. That's how I did it.
Speed-Step - Speed-step allows the system to dynamically change the frequency of the Pentium-M cpu in the X31 (from 1.4ghz down to 600mhz) to save power when the system is essentially idle. (How many Mhz do you really need to type an email?) Mandrake is nice and already provides the correct (speedstep-centrino) kernel module and a CPU frequency monitoring and control daemon (powernowd) which we just have to configure and enable. Add a line "
speedstep-centrino" to your/etc/modprobe.preloadfile so it will be loaded automatically on reboot, and then load it manually the first time by typing "modprobe speedstep-centrino".A
urpmi powernowdshould find and install thepowernowdrpm. If not, search for powernowd on google and install the RPM manually. Edit the/etc/sysconfig/powernowdand add "-vv -p 50" to the OPTIONS line. This will show a bit more information in the/var/log/messagesfile upon startup, as well as make the frequency changes happen faster than the default (1000ms or every second) to keep your system responsive. If you use -vvv instead of-vvyou will get a new line in/var/log/messagesevery time the frequency changes, which is good for debugging, but bad for daily operation.Note that the Pentium-M in the X31 can only go down to 600mhz, so 42% is the slowest the CPU will ever get down to.