Fedora Core 2 and Intel Pro 2200BG Wireless

Bill Moss
Updated June 21, 2004

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.