Intel 3945ABG In Fedora 7

Disclaimer: While the information on this and related pages on this website has been experimentally verified, the author does not claim responsibility for any damage caused to your system by following the steps given here.


The Intel 3945ABG wireless adapter comes with the HP Pavilion dv6137tx (dv6000t) and several other laptops. Fedora 7 doesn't come with a correct driver for this card, although some folks have reported that the iwlwifi driver works without flaws for them. This page briefly describes how to install the wireless adapter (ipw3945) in Fedora 7. In some cases, due to missing libraries or files, this process may not work. Please try it again after you have downloaded the necessary updates. In case you are aware of any other method(s) to install the Intel 3945ABG on Fedora (or for that matter any Linux distro) please do write to me with a detailed description.


Requirements:

1. kernel-devel (kernel development files for building modules against the running kernel)
2. gcc (C++ compiler)
3. ipw3945-1.2.1.tgz (driver / kernel module)
4. ipw3945-ucode-1.14.2.tgz (microcode / firmware)
5. ipw3945d-1.7.22.tgz (regulatory daemon)
6. ipw3945 (startup init script)

Step 0: Do a yum update if you haven't done so already

yum update

Note: This may not be required if you already have kernel updates, and may take a long time depending on the speed of your connection. But it is recommended the first time you install Fedora 7.

Step 1: Create a directory named ipw3945 in your home directory and change to it. Download the files listed below in this directory

mkdir ipw3945
cd ipw3945

http://prdownloads.sourceforge.net/ipw3945/ipw3945-1.2.1.tgz?download
http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.14.2.tgz
http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz
http://fedoraos.org/ipw3945/ipw3945

Step 2: Blacklist existing iwl3945 and mac80211 drivers (if any):

gedit /etc/modprobe.d/blacklist &

Add the following lines at the end of this file:

# iwl3945
blacklist iwl3945
blacklist mac80211

Save the files and exit gedit.

Step 3: Reboot the system using

reboot

or

shutdown -r now

Step 4: After the reboot, install the kernel-devel:

yum install kernel-devel gcc

Step 5: Unpack the downloaded tarballs:

tar xvfz ipw3945-1.2.1.tgz
tar xvfz ipw3945-ucode-1.14.2.tgz
tar xvfz ipw3945d-1.7.22.tgz

Step 6: Copy relevant files:

cp ipw3945-ucode-1.14.2/ipw3945.ucode /lib/firmware && cp ipw3945d-1.7.22/x86_64/ipw3945d /sbin

In the above line, you should change x86_64 to x86 in case you are not using a 64-bit kernel image.

Step 7: Compile and copy the kernel module to the correct location:

cd ipw3945-1.2.1 && make

On my machine this gives the following output:

 Using ieee80211 subsystem version API v2 from:

        Base: /lib/modules/2.6.21-1.3228.fc7/build/
        Path: /lib/modules/2.6.21-1.3228.fc7/build/include/

 EXTRA_CFLAGS = -DIPW3945_COMPAT=2 -g -Wa,-adhlms=check_inc.lst

mkdir -p /root/Desktop/ipw3945/ipw3945-1.2.1/tmp/.tmp_versions
make -C /lib/modules/2.6.21-1.3228.fc7/build M=/root/Desktop/ipw3945/ipw3945-1.2.1 MODVERDIR=/root/Desktop/ipw3945/ipw3945-1.2.1/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/kernels/2.6.21-1.3228.fc7-x86_64'
  CC [M]  /root/Desktop/ipw3945/ipw3945-1.2.1/ipw3945.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/Desktop/ipw3945/ipw3945-1.2.1/ipw3945.mod.o
  LD [M]  /root/Desktop/ipw3945/ipw3945-1.2.1/ipw3945.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.21-1.3228.fc7-x86_64'

At this stage if you get an error, then the ieee80211 subsystem is either not installed, in which case you have to do

yum install ieee80211* -y

to install it or else, the build link is broken, which can be fixed by:

rm /lib/modules/'uname -r'/build
ln -s /usr/src/kernels/'uname -r' /lib/modules/'uname -r'/build

Next, do the following

su --login # not necessary if you are already root
cp /home/$user/Desktop/ipw3945/ipw3945-1.2.1/ipw3945.ko /lib/modules/'uname -r'/kernel/drivers/net/wireless/
chmod 744 /lib/modules/'uname -r'/kernel/drivers/net/wireless/ipw3945.ko

Step 8: Reboot the system:

reboot

Step 9: Goto System->Administration->Network->New->Wireless connection->Intel Corporation PRO/Wireless 3945ABG Network Connection (eth1). For mode and SSID, choose Auto and choose dhcp. This should get your wireless lan card working.

If you have a problem, you can confirm whether the ipw3945 modules have actually been loaded:

ls -alh /lib/modules/`uname -r`/kernel/drivers/net/wireless/ipw*
-rwxr--r-- 1 root root 115K 2007-06-13 01:22 /lib/modules/2.6.21-1.3228.fc7/kernel/drivers/net/wireless/ipw2100.ko
-rwxr--r-- 1 root root 228K 2007-06-13 01:22 /lib/modules/2.6.21-1.3228.fc7/kernel/drivers/net/wireless/ipw2200.ko
-rwxr--r-- 1 root root 1.4M 2007-07-15 13:57 /lib/modules/2.6.21-1.3228.fc7/kernel/drivers/net/wireless/ipw3945.ko

The last line is important. It tells you that the driver is loaded. (The output generated may differ somewhat, depending on what is installed.)


See also:

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License