Go to TogaWare.com Home Page.
GNU/Linux Desktop Survival Guide
by Graham Williams
Google

Wireless


The required wireless module for the kernel is available as a Debian package from kernel version 2.6.18. You will want to install ipw3945-modules-2.6.18-3-686, firmware-ipw3945, and ipw3945d.

If you are using a kernel version without such a module pre-compiled for you, it is easy to build one for your kernel:

  $ wajig install ipw3945-source
  $ sudo module-assistant prepare ipw3945
  $ sudo module-assistant auto-install ipw3945
  $ sudo modprobe ipw3945

For my 2.6.21 kernel, for example, this builds and install the package ipw3945-modules-2.6.21-1-686.

For older kernels, to get the wireless card working a bit of manual labour is needed to obtain and install the ipw3945 driver from http://ipw3945.sourceforge.net/. The web site indicates that version 1.1.11 or newer of ieee80211 is needed -- older Debian versions had an older version so we illustrate the install of the module from scratch. This is for historic purposes, and should no longer be necessary.

From http://ieee80211.sourceforge.net/ download ieee80211-1.1.13.tgz. From http://ipw3945.sourceforge.net/ download ipw3945-1.0.0.tgz, ipw3945d-1.7.18.tgz, and ipw3945-ucode-1.13.tgz. Install it:

  $ tar zxvf ieee80211-1.1.13.tgz
  $ tar zxvf ipw3945-1.0.0.tgz
  $ tar zxvf ipw3945d-1.7.18.tgz
  $ tar zxvf ipw3945-ucode-1.13.tgz
  $ cd ieee80211-1.1.13
  $ sudo make
   (answer yes to all questions)
  $ sudo make install
  $ cd ../ipw3945-1.0.0
  $ sudo make
  $ sudo make install
  $ cd ../ipw3945-ucode-1.13
  $ sudo cp ipw3945.ucode /lib/firmware
  $ cd ../ipw3945d-1.7.18
  $ sudo cp x86/ipw3945d /sbin
  $ cd ../ipw3945-1.0.0
  $ sudo ./load

This resulted in:

ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, 1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ipw3945: Intel(R) PRO/Wireless 3945 Network Connection driver for Linux, 1.0.0
ipw3945: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:0b:00.0[A] -> GSI 16 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:0b:00.0 to 64
ipw3945: Detected Intel PRO/Wireless 3945ABG Network Connection
ipw3945: Detected geography ABG (13 802.11bg channels, 4 802.11a channels)
ipw3945: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.

The last two lines were a worry, but Jacques Vuillemin suggested that Fn-F2 is the magic to turn off the Kill Switch. If this doesn't work then modify the BIOS (F2 on boot) to disable the wireless hotley. The wireless load command worked for me after Fn-F2.

In /etc/network/interfaces add:

iface eth2 inet dhcp
  wpa-conf managed
  wpa-ssid belkin54g
  wpa-key-mgmt WPA-PSK
  wpa-psk 123456789abcdef787f44b6611bf17ba......

setting the ssid to match that of your wireless, and the psk key is generated using wpa_passphrase amd supplying your ssid and your passphrase..

Then:

  $ sudo sh ipw3945-1.0.0/load
  $ sudo ifup eth2

I reconfigured the Debian package laptop-net to indicate the MII is supported, so that the system can automatically detect that there is no Ethernet cable connected and so won't try to start up networking on boot (and hence time out with DHCP after multiple attempts).

Some other useful wireless commands:

  $ iwlist eth2 scan               # List any found wireless access points

The network-manager-gnome package provides a simple applet that monitors available wireless networks and allows you to select one to connect to. This is now (since kernel version 2.6.17) the recommended path, but make sure there are no netwrok interfaces configured in /etc/network/interfaces since if there are, the network manager will not manage those networks.

Copyright © 1995-2014 Togaware Pty Ltd
Support further development through the purchase of the PDF version of the book.
Brought to you by Togaware.