Introduction
The purpose of this note is to present the options available at this date, June 21, 2004, for configuration of the Intel Pro 2200 BG wireless network adapter under Fedora Core 2 (FC2). The experiment reported on below was done on an IBM Thinkpad T42. The previously posted article, Dual Booting, Part 1 covered hard disk partitioning and installation of FC2, while the article Dual Booting, Part 2 covered post-installation configuration.
On May 4, 2004 Intel launched an open source project to create a Linux driver for the 2200BG. On May 28, 2004 version 0.1 was released. This driver can be compiled and loaded but will not be ready for general use for several months. An alternative that works today is to use a Linux wrapper with a the Windows NDIS driver. Linuxant provides a commerical wrapper called DriverLoader. In this note we report on the open source wrapper called ndiswrapper.
The good news is that you can get Intel 2200 BG wireless working today. The bad news is that you must install a special kernel which will breaks the ntfs kernel module that was compiled and installed in Dual Booting, Part 2.
In Dual Booting, Part 1, we installed
kernel-2.6.5-1.358.i686 kernel-source-2.6.5-1.358.i386 kernel-ntfs-2.6.5-1.358.i686 vpnclient-linux-4.0.4.A-k9
The 2.6 kernels used in the initial release of FC2 and in subsequent updates have the 4kstack option hardwired, but ndiswrapper requires an 8kstack option. Linuxant is currently providing FC2 kernels patched for the 8kstack option along with the patched source code.
The SourceForge site
http://linux-ntfs.sourceforge.net/rpm/fedora2.html
provides precompiled kernel-ntfs modules for the initial release FC2 kernel and its updates, however instructions for compiling kernel-ntfs modules using other FC2 kernels are not yet available on this site. Additional searching turned up the kernel module I needed.
My first step was to uninstall the kernel module kernel-ntfs and the vpnclient.
# umount /dev/hda1 # rpm -e kernel-ntfs-2.6.5-1.358.i686 # cd /root/vpnclient # ./vpn_uninstall # make clean
Download kernel, kernel-sourcecode, kernel-ntfs, ndiswrapper, and XP wireless driver
The 2.6 kernels used in the initial release of FC2 and in subsequent updates have the 4kstack option hardwired, but DriverLoader and ndiswrapper require an 8kstack option. Linuxant is currently providing FC2 kernels patched for the 8kstack option along with the patched source code. Here are the download steps.
Download
kernel-2.6.6-1.427.8kstack.i686.rpm.zip kernel-sourcecode-2.6.6-1.427.8kstack.i686.noarch.rpm.zip from http://www.linuxant.com/driverloader/wlan/full/downloads-fc2-kernel-i686.php
Unzip these archives in /root.
Download
kernel-ntfs-2.6.6-1.427.8kstacks.i686.rpm from http://www.liebaert.org/kernel-ntfs-2.6.6-1.427.8kstacks.i686.rpm
and save in /root.
Download
ndiswrapper-0.7.tar.gz from http://sourceforge.net/projects/ndiswrapper/
and unarchive in /root.
Downloaded
Intel Pro/Wireless Lan 2200 BG driver1 (WLD_int_80129000.exe)
from
http://ndiswrapper.sourceforge.net/supported_chipsets.html
and save in /mnt/windowsd (the D drive in Windows XP). Boot Windows XP and execute this self-extracting archive to produce the folder D:\WLAN_8.0.12.9000.
Install kernel, kernel-sourcecode, kernel-ntfs, vpnclient, ndiswrapper, and XP wireless driver
Install the 2.6.6-1.427.8kstack.i686 kernel and sourcecode
# rpm -ivh kernel-2.6.6-1.427.8kstack.i686.rpm # rpm -ivh kernel-sourcecode-2.6.6-1.427.8kstack.i686.noarch.rpm
and then reboot into this kernel.
Install the 2.6.6-1.427.8kstack.i686 kernel-ntfs module
# rpm -ivh kernel-ntfs-2.6.6-1.427.8kstacks.i686.rpm
Install the vpnclient using the commands
# cd /root/vpnclient # ./vpn_install
then restart the vpnclient_init service and test the vpnclient.
Install the ndiswrapper and Windows XP driver using the following commands.
# cd /root/ndiswrapper-0.7 # make install # ndiswrapper -i /mnt/windowsd/WLAN_8.0.12.9000 # ndiswrapper -l
This last command should produce the output
Installed ndis drivers: w22n51 present
Add two lines to the file
/etc/modprobe.conf options ndiswrapper if_name=eth%d alias eth1 ndiswrapper
Load the ndiswrapper kernel module using the command
# modprobe ndiswrapper
If the module loads successfully, the dmesg command will produce the output
eth1: ndiswrapper ethernet device 00:0e:35:14:60:d0 using driver w22n51.sys
otherwise, your system may freeze and have to be reset. Of course, the MAC address of your wireless card should appear instead of 00:0e:35:14:60:d0.
Configure the wireless interface. Create the file
/etc/sysconfig/network-scripts/ifcfg-eth1 IPV6INIT=no ONBOOT=no USERCTL=yes PEERDNS=yes GATEWAY= TYPE=Wireless DEVICE=eth1 HWADDR=00:0e:35:14:60:d0 BOOTPROTO=dhcp NETMASK= DHCP_HOSTNAME= IPADDR= DOMAIN= ESSID=cuairnet CHANNEL=1 MODE=Managed RATE=54Mb/s
Create the file
/etc/sysconfig/network-scripts/keys-eth1 KEY=XXXXXXXXXXXXXXXXXXXXXXXXXX
Substitute your MAC address and WEP key. Note that my wireless network uses a WEP key with 26 hex characters.
Activate the wireless inferface using the command
ifup eth1
and the wireless interface should acquire an IP address from your dhcp server.
Check the configuration with iwconfig.
# iwconfig eth1 IEEE 802.11b ESSID:"cuairnet" Nickname:"localhost.localdomain" Mode:Managed Frequency:2.437GHz Access Point: 00:01:24:F0:40:5A Bit Rate=11Mb/s RTS thr=1600 B Fragment thr=2304 B Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX Security mode:restricted Power Management:off Link Quality:0/100 Signal level:-46 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Reboot using the 2.6.6-1.427.8kstack kernel and see if you can activate the wireless interface using the above ifup command or using Main Menu -> System Settings -> Network -> Select eth1 -> Activate.
Remarks
I also tried the above experiment with ndiswrapper-0.8 and the CVS version of June 21, 2004. The 0.8 version compiled but froze the system with a kernel panic. The CVS version failed to compile.