Centrino is the big thing in laptops at the moment. Longer battery times despite more powerful processors and inbuilt 802.11b wireless. Unfortunately, Intel have yet to provide Linux support for the wireless component of Centrino and are a little cagey as to when it will be available.
Thankfully, the open-source community is a crafty community. NdisWrapper provides a method of loading Windows drivers to enable the wireless card.
At the time of writing, there are ebuilds in portage for NdisWrapper (latest version is 0.6-rc1). Unfortunately, they seem to be quite buggy and I’ve yet to get them to work. Instead, what I found to work best was to get the latest version from the NdisWrapper site and compile it from that source. At this time, the latest version is 0.7. Then follow the steps below to release yourself from your cat-5 tether!
Note 1: as a prerequisite, you need to emerge wireless-tools.
The Driver
- Download the latest source tarball to your system from the Ndiswrapper Sourceforge Project and unpack the archive.
- For the Intel PRO/Wireless 2100 (standard Centrino wireless card), download this driver. Otherwise, consult the NdisWrapper homepage.
- Open up a terminal and
suto root thencdto the directory you extracted the source to. make install- Unpack the Windows driver and check for a .inf file. In the above package, it should be “w70n51.ini”.
ndiswrapper -i /path/to/win/driver.inf- Once that’s done, type
ndiswrapper -l. The name of the inf file should be listed. If not, you may have mistyped the path, so try again. modprobe ndiswrapperto load the driver. Providing there are no errors, typingdmesgshould return “wlan0: ndiswrapper ethernet device…”
Configuring Your Card
The next bit will either be straight-forward or trial and error. It just depends on your setup. I had a bit of bother getting the right combination of authentication settings before I got my card to work.
iwconfig should list your card and its current settings, which will be all empty. To change this, you need to do the following:
iwconfig wlan0 mode Managedif you use and access point. Otherwise, set mode to “adhoc”.iwconfig wlan0 key restricted <wifi key>will set your authentication key (hex format). Pass the-soption after key to type the key in ascii format. Depending on your setup, you may have to subsitute “restricted” for “open”.iwconfig wlan0 essid your_essidsets your network ID.ifconfig wlan0 upshould now bring your wifi card online. If not, fiddle around with the settings above. Also take a look at the other options you can set through iwconfig.- DHCP users should type in
dhcpcd wlan0to assign an I.P. to your card. - Alternatively, to assign a fixed I.P. you need to copy
/etc/init.d/net.eth0to/etc/init.d/net.wlan0and edit accordingly. Then type in/etc/init.d/net.wlan0 start.
If you were to ping Google or similar, you should see your connection working.
Final Steps
The tricky bit is now out of the way. All that should be left to do, is to get the card to come back up at boot time:
- Add
ndiswrapperto/etc/modules.autoload.d/kernel-<kernel version> - If using DHCP, add the five steps in “Configuring Your Card” (above) to
/etc/init.d/local.start. - Otherwise, you’ll probably want to add the net.wlan0 file to startup with
rc-update add net.wlan0 default.
That should be it! I’ve been happily connecting with the card in my Samsung x10 since I reinstalled Gentoo about a month ago.
One point – DHCP users might want to try the net.wlan0 method of configuring/bringing the card up/down instead of using local.start. It seems to be the “correct” way to do it and a lot “cleaner”.However, I had no success getting this method to work with Ndiswrapper 0.7 (0.4 worked, IIRC). That’s not to say it won’t work for you, it just didn’t work for me… Give it a try by all means, then let me know how it went by leaving a comment.