Translation(s): none

(!) Discussion


Intel PRO/Wireless 3945ABG devices (ipw3945)

This page describes how to enable support for WiFi devices based on the Intel 3945ABG chipset on Debian systems.

Update

Note: Since 2.6.24, the new module iwl3945 supersedes ipw3945. This module was merged from the iwlwifi project and does not require a binary regulatory daemon.

Motivation

I'm writing this because existing how-to documents don't seem to work for me, and I want to keep a record of what problems I hit and how I fix them for other Debian users.

In my case, I started with a laptop that had a Broadcom chip, and I installed Debian before I got an Intel-based replacement. I am using kernel 2.6.18-4-686 and have the linux-headers and linux-source packages that correspond to that version.

Device Identification

The page HowToIdentifyADevice/PCI explains how to identify a PCI device. For example:

update-pciids
lspci

Your Intel 3945-based device should be listed:

0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

See also Supported Devices.

Overview

To use your Intel 3945-based device, you are required to install:

You may also be required to update your CPU's microcode (via microcode.ctl), as explained in Intel CPU microcode update.

Installation

Pre-built driver

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list. For example:

    # Debian Etch/4.0
    deb http://ftp.us.debian.org/debian etch main contrib non-free
  2. Update the list of available packages. Install the firmware-ipw3945, ipw3945d, relevant ipw3945 module and wireless-tools packages:

    aptitude update
    aptitude install firmware-ipw3945 ipw3945d ipw3945-modules-$(uname -r) wireless-tools
  3. Load the ipw3945 module:

    modprobe ipw3945
    This module will be automatically loaded when your system is restarted.
  4. Verify your device has an available interface:

    iwconfig
  5. Raise the interface, for example:

    ifconfig eth1 up
  6. Configure your wireless interface as appropriate.

Building via module-assistant

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list. For example:

    # Debian Etch/4.0
    deb http://ftp.us.debian.org/debian etch main contrib non-free
  2. Update the list of available packages. Install the firmware-ipw3945, ipw3945d, module-assistant and wireless-tools packages:

    aptitude update
    aptitude install firmware-ipw3945 ipw3945d module-assistant wireless-tools
  3. Build and install an ipw3945-modules-* package within your system:

    m-a prepare
    m-a a-i ipw3945
  4. Load the ipw3945 module:

    modprobe ipw3945
    This module will be automatically loaded when your system is restarted.
  5. Verify your device has an available interface:

    iwconfig
  6. Raise the interface, for example:

    ifconfig eth1 up
  7. Configure your wireless interface as appropriate.

Troubleshooting

I once got this error on my Intel CPU laptop:

user@comp:$ sudo ipw3945d
ipw3945d - regulatory daemon
copyright (C) 2005-2006 Intel Corporation. All rights reserved.
version: 1.7.22
2007-04-24 13:39:39: ERROR: Could not find Intel PRO/Wireless 3945ABG Network Connection

It went away after I installed the microcode.ctl package. The wireless light on my laptop blinks just fine.

Another thing to check: If your laptop has a hardware wireless switch, make sure it's turned on! It may be a keyboard key (like Fn+F3). Simple physical-layer problems are mistaken for higher level problems far more often than you think.

Intel CPU microcode update

I had problems until I installed the microcode update, since I'm using an Intel 32-bit CPU. This package improves functionality of Intel 32-bit CPUs with older BIOS versions. You may be able to forego this package if you can update your BIOS instead.

aptitude install microcode.ctl

This post pointed me to microcode_ctl, which has been replaced by microcode.ctl. http://forums.suselinuxsupport.de/index.php?showtopic=35464&pid=161410&st=0&#entry161410

You will need to reboot for the microcode update to take effect. The package works by having the kernel load the update very early in the boot process. It's a soft update, so the kernel needs to load the update on every boot.

If you find that this update makes your wifi work, then check your mainboard vendor for a BIOS update. In my case, Dell had a BIOS update waiting on their site. After upgrading my BIOS, I uninstalled the microcode update and my wifi still works!

Don't let this issue drive you away from Intel CPUs. They are awesome! (Not an official Debian statement!)

Restarting the regulatory daemon

Reproduced from the IRC/DpkgBot factoid database1:

Supported Devices

The page HowToIdentifyADevice/PCI explains how to identify a PCI device.

The following list is based on the alias fields of  modinfo ipw3945 on Etch.

Other goodies that make life easier

wpa_cli in terminal, network-manager in gnome, and kwlan in kde. I have had no success with network-manager-kde, but you may have a different experience. I use and love kwlan. These are all in the Debian APT repositories.

Disclaimer

This page is unfinished and will be updated continuously until I have a method that works reliably for me. If it works for you, please let me know. If I missed some detail, feel free to edit this page (It's a wiki, after all).

Links/References


CategoryHardware

ipw3945 (last edited 2009-03-17 08:06:07 by GeoffSimmons)