Activating Centrino on Linux
Willy Sudiarto Raharjo
17 February 2006
Published on PCPlus 235
7 comments

Introduction

Right now, many people tends to buy a new laptop or notebooks rather than buying a new desktop PC. One of the main reason is that laptops can get connected to the Internet via WiFI (Wireless Fidelity) connection, so no more messed up cables needed. The other factor that supports this fact is that Intel Corporation continues to support and extends the Centrino technology and its brother Sonoma, while waiting for the next WiMax technology appears for public consumption. Many laptops are now bundled with Centrino technology and hotspots are getting common for many big city. Many university has given this hotspot facility on their environment, so that students who has a laptop can access the Internet easily.

Intel itself realize that right now, many people also use GNU/Linux as their primary operating systems, so they also support their own technology to be run in GNU/Linux platform. That's where IPW2100, IPW2200, dan IEEE80211 project came in to hold up this campaign. It was three projects that was fully supported by Intel to make GNU/Linux users can have access to the Internet via Centrino technology. It provides kernel modules to detect and activate the Centrino WLAN module, since it wasn't included in the generic kernel (kernel from Linus Torvalds).

I have been using my laptop to access the Internet while i'm in my campuss, since it's fast and when i need to download a big application, it's not limited to my Flash Disk which is only 128 MB. I need more storage, so that's where my laptop's hard drive come in to rescue me. At first, i couldn't detect and activate my wireless device also, but with some help from my friends, Joshua M. Sinambela, people at the jogja-wireless mailing list and also the main maintainer for IPW2200 project, James P. Ketrenos from Intel Corp, i was able to do it and now, it's time for me to share it to everyone who reads this article.

Preparations

The first preparation and the main requirement for this article is a laptop that uses Centrino and GNU/Linux installed as the operating system. Next, please make sure that you are using kernel 2.6.x instead of 2.4.x kernel, since the module was intended for kernel 2.6.x. There is a backport patch for 2.4.x, but it's deprecated i think and most distro have used kernel 2.6.x as their default kernel (except for Slackware which still comes with kernel 2.4.29 by default, but 2.6.10 is available on testing directory). I used Slackware 10.1 with kernel 2.6.12.3 as an example for this article, but it can be used for other distro as well.

Next, you must install a wireless-tools package. It names doesn't always be the same for every distro, so please consult with your distro's documentation or mirror list to find out the exact package name for your distro. This package contains some commands to configure your wireless device and also to search for a hotspot statistics. The two most important commands are iwconfig and iwlist. You will need a kernel-source package also to integrate the module into your running kernel and hotplug package to load your module at bootup. The last package is optional, but you have to load the modules manually if you don't have it. The hotplug script must be newer than 2003_10_07 (if you do not have /etc/hotplug/firmware.agent then you need to upgrade).

Note : Please use the same GCC (GNU C Compiler) that is being used to compile your kernel. If you use a different GCC version, then you will had an invalid module format error message when you tried to load the modules.

Start Downloading

Before you are ready to start configuring your new laptop, please check what chipset did your Centrino used, Is it 2100 or 2200? Each version has it's own website, so don't make any mistakes on this steps. I assume that you are using the latest technology, so it will be 2200. Go to IPW2200's website and download 2 package (driver module and the firmware). Make sure you download the latest version of the driver module and the firmware. I'm using IPW2200-1.0.6 and firmware-fw-2.0.3. Please read below's warning:

  1. Kernel 2.6.9 and 2.6.10 has a problem with the timeout, so please apply the patch provided in the website.
  2. Kernel 2.6.12 has a problem with IPW2200 below 1.0.5, so please upgrade to 1.0.6.

In order to install IPW2200 1.0.5 and above, you must also download IEEE80211 subsystem from it's website. It's not required if you want to use the old version, like 1.0.4, but it's better to use the latest version, since it has many bug fixes on every release. When you are ready, please read the next section.

Installing and Configuring

First, extract the IEEE80211, IPW2200, and the firmware package by using :
tar -xzvf ieee80211-1.0.3.tgz
tar -xzvf ipw2200-1.0.6.tgz
tar -xzvf ipw2200-fw-1.0.3.tgz
Next, slide into ieee80211-1.0.3 sub directory and type:
make
make install
make sure that there are no problems until it finishes installing the IEEE80211 subsystem. When you are done with the IEEE80211 subsystem, change to your IPW2200 sub directory and do the same thing (make and make install).

Next step is to place all files in the ipw2200-fw-2.0.3 sub directory to the path that is listed by the FIRMWARE_DIR line in the /etc/hotplug/firmware.agent. Check the path, since sometimes it's different for each distro. In Slackware, you must use the updated hotplug and udev package that solved the path problems, so you won't have any trouble at loading the firmware. When you are done, try to load the modules manually by changing to ipw2200-1.0.6 sub directory and typing:
. load
You will get a message similar to :
Unloaded: no modules unloaded
Loaded: ieee80211_crypt ieee80211_crypt_wep ieee80211_crypt_tkip ieee80211_crypt_ccmp ieee80211 ipw2200

To make sure that your WLAN Module has been loaded, type:
cat /var/log/messages | grep ipw2200
You will get a message similar to :
Jul 21 12:58:53 laptop kernel: ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.6
Jul 21 12:58:53 laptop kernel: ipw2200: Copyright(c) 2003-2004 Intel Corporation
Jul 21 12:58:53 laptop kernel: ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

Some laptop have a button to activate the WLAN facility. One of them is my laptop, which is Acer TravelMate 4150 NLCi. When you don't push the button or activate the WLAN module, you will get the following message when you type iwconfig:

eth0      radio off  ESSID:off/any  Nickname:"laptop"
          Mode:Ad-Hoc  Channel:0  Cell: 00:00:00:00:00:00
          Bit Rate=0kb/s   Tx-Power:off
          Retry limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:119   Missed beacon:0

When you push the button and the LED is on, the message will change into:

eth0      unassociated  ESSID:off/any  Nickname:"laptop"
          Mode:Ad-Hoc  Channel:0  Cell: 00:00:00:00:00:00
          Bit Rate=0kb/s   Tx-Power:off
          Retry limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:119   Missed beacon:0

It means that your wireless device has not been configured yet. To list and search for any hotspot in your range, type:
iwlist eth0 scan
and you will see some information similar with:

eth0      Scan completed :
          Cell 01 - Address: 02:02:74:4F:CA:6D
                    ESSID:"ukdw"
                    Protocol:IEEE 802.11b
                    Mode:Ad-Hoc
                    Channel:1
                    Encryption key:on
                    Bit Rate:11Mb/s
                    Extra: Rates (Mb/s): 1 2 5.5 11
                    Quality:39/100  Signal level:-77 dBm  Noise level:-256 dBm
                    Extra: Last beacon: 306ms ago

To configure, use iwconfig commands. See the manual page for more detail about the parameter and other options. I use this commands to configure my wireless device to connect to my campus hotspot:

iwconfig eth0 essid ukdw mode Ad-Hoc key restricted XXXXXXXX

When your wireless device are configured, but you didn't get any signal, the message will changed into :

eth0      unassociated  ESSID:"ukdw"  Nickname:"laptop"
          Mode:Ad-Hoc  Channel:0  Cell: 00:00:00:00:00:00
          Bit Rate=0kb/s   Tx-Power=20 dBm
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:XXXX-XXXX-XX   Security mode:restricted
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:119   Missed beacon:0

Finally, when you are fully configured and get any signal, it will display :

eth0      IEEE 802.11b  ESSID:"ukdw"  Nickname:"laptop"
          Mode:Ad-Hoc  Channel:1  Cell: 02:02:55:92:CA:6D
          Bit Rate=11Mb/s   Tx-Power=20 dBm
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:XXXX-XXXX-XX   Security mode:restricted
          Power Management:off
          Link Quality:98/100  Signal level:-74 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:119   Missed beacon:0

When you see that message, the last thing to do is restart your DHCP Client daemon, so it will retrieve a new IP address from DHCP server. After that, you are ready to surf to the Internet using your laptop.

RF Switch

As i said earlier, most laptop has a hardware button to enable/disable the WLAN module, but some doesn't. For you who has this kind of laptop, you should try to use the software-based RF Switch to enable/disable the WLAN module. Visit RF Switch website for more information about this.

Conclusion

Surfing with laptop are fun, especially when you are browsing with GNU/Linux. It's so fun to configure the Centrino devices. Please take attention when you upgrade your kernel version. Make sure you install the kernel-source and install the modules again for the new kernel, since each kernel uses different directory for the modules. Don't forget to remove the old modules if you are trying to upgrade the IPW2200 module, by using remove-old script provided in the package.

Last Update : 15 July 2006 :: 08:49:02

Comments

1 It's not in the correct topics, but it's OK
Well, try to use hdparm to identify whether it's possible to enable your DMA in your HD. Try to use this url : http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html

Posted by Willy Sudiarto Raharjo on 20 Mar 2006 @ 15:39:19

2 I've also installed slackware 10.1, kernel 2.6.15.3 on my Acer TM 4150LCI. One problem, my hard drive dma is turned off. how can i solve this problem ?

Posted by Mohd Razmi on 19 Mar 2006 @ 08:44:33

3 Please read on PCPlus 235
i can sent you the articles, but it's on sxw format but i can send you the pdf format. Please send me a blank email so i can send it to you.

Thanks

Posted by Willy Sudiarto Raharjo on 26 Sep 2005 @ 11:05:38

4 ada versi bahasa indonesia-nya nggak, susah nih untuk memahaminya bagi newbie seperti aku.

Posted by tux on 24 Sep 2005 @ 13:47:09

5 For Wireless devices, it's best to use the 2.6.x kernel. Even better if you use the latest kernel available, which is 2.6.12.5 for now (if you want to use Slackware's binary package). If your chipset is INPROCOM, you should use Ndiswrapper rather than IPW2200. You should copy the .inf file from your vendor's CD and install ndiswrapper package and configure it using ndiswrapper.

Posted by Willy Sudiarto Raharjo on 3 Sep 2005 @ 22:38:52

6 I have problem when i want to activate my Wifi connection on my notebook. I use Acer Travelmate 2355 on Slackware 10.1(kernel 2.4.29).The chipset of wifi is INPROCOM 2220.I can't find driver for my chipset.The INPROCOM IPN 2220, has no linuxdriver..

Posted by S Andi Nugroho on 1 Sep 2005 @ 02:06:01

7 This is the updated article from my article that was published in PCPlus. It is using the latest kernel in Slackware's repository (2.6.12.3). You should pay attention if you are using this version of IPW2200, since you will have to install IEEE80211 subsystem first before you can install the IPW2200 modules.

Posted by Willy Sudiarto Raharjo on 16 Aug 2005 @ 22:26:22

Post Your Comments

Your Name: *Comment:
Kode Rahasia

*Write code above:
Note: * denotes required field