Translation(s): none


Intel PRO/Wireless 3945 and WiFi Link 4965 devices (iwlwifi)

This page describes how to enable support for WiFi devices based on Intel 3945 and 4965 chipsets on Debian systems.

iwl3945 and iwl4965 (iwlagn as of Squeeze) are modules produced by the iwlwifi driver, supporting Intel 3945ABG and 4965AGN wireless LAN devices. This is an open-source driver supported by Intel, replacing the out-of-tree ipw3945 driver which required a userspace daemon.1 Supported devices are listed at the end of this page.

Non-free firmware is required, which can be provided by the firmware-iwlwifi package. Firmware must be installed prior to device operation.

{i} For support of the Intel Wireless WiFi Link 5000, 6000 and 1000 series of devices, see iwlagn.

Installation

Squeeze

  1. Add a "non-free" component to /etc/apt/sources.list, for example:

    # Debian Squeeze/6.0
    deb http://ftp.us.debian.org/debian squeeze main contrib non-free
  2. Update the list of available packages. Install the firmware-iwlwifi and wireless-tools packages:

    # aptitude update
    # aptitude install firmware-iwlwifi wireless-tools
  3. The necessary kernel module should be automatically loaded. If necessary, it can be manually loaded via either:

    # modprobe iwl3945

    or

    # modprobe iwlagn
  4. Verify your device has an available interface:

    # iwconfig
  5. Raise the interface to activate the radio, for example:

    # ifconfig wlan0 up
  6. Configure your wireless interface as appropriate.

Lenny

  1. Add a "non-free" component to /etc/apt/sources.list, for example:

    # Debian Lenny/5.0
    deb http://ftp.us.debian.org/debian lenny main contrib non-free
  2. Update the list of available packages. Install the firmware-iwlwifi and wireless-tools packages:

    # aptitude update
    # aptitude install firmware-iwlwifi wireless-tools
  3. The necessary kernel module should be automatically loaded. If necessary, it can be manually loaded via either:

    # modprobe iwl3945

    or

    # modprobe iwl4965
  4. Verify your device has an available interface:

    # iwconfig

    If listed, wmaster0 is an internal interface representing the physical device. It should not be used for configuration.

  5. Raise the interface to activate the radio, for example:

    # ifconfig wlan0 up
  6. Configure your wireless interface as appropriate.

Switching from ipw3945 to iwl3945

This section only applies to users upgrading from Debian Etch.

Troubleshooting

Most laptops have a radio kill switch or function key combination to physically disable the radio (e.g. when inside an airplane). Make sure to enable the radio.

NetworkManager may not handle the wireless device. /var/log/syslog may show output similar to:

Resolution

In the /etc/udev/rules.d/70-persistent-net.rules file, remove the line similar to:

... then remove the module and re-insert it:

You should now have a line similar to the following in /etc/udev/rules.d/70-persistent-net.rules:

Does not associate to access point

If a SSID is defined but the device does not associate to the access point, even when no encryption is required, the interface may first need to be raised before defining the SSID:

If the device still does not associate, even with a SSID and encryption key(s) set, try:

You might want to try different values for wpa-scan-ssid and wpa-ap-scan if defined in /etc/network/interfaces. The former accepts either 0 or 1, the latter 0, 1 or 2. Setting wpa-scan-ssid to 0 and wpa-ap-scan to 1 is a good first bet, but make sure to try other configurations if it doesn't work.

You may also find that setting a high retry value helps with WEP-enabled access points that appear to work, or that work with other wireless LAN devices but send repeated disassociations. Try something like the following and insert an arbitrary retry value:

It may take a few tries with dhclient to get an IP address.

Cannot see any network

If NetworkManager can use the device but not detect any wireless network, firmware may not be installed:

Install device firmware as described in Installation to resolve.

Association successful, cannot send or receive

Your firewall might be blocking traffic. This will mostly happen if you switch from ipw3945 to iwlwifi, as the interface name changes from eth2 to wlan0. Check your firewall configuration. For example, if you are using shorewall, check the files in /etc/shorewall/ and change the interface name to wlan0.

Supported Devices

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

iwl3945

The following list is based on the alias fields of modinfo iwl3945 and in Debian 2.6.32 (2.6.32-30) kernel images.

iwlagn

The following list is based on the alias fields of modinfo iwlagn in Debian 2.6.32 (2.6.32-30) kernel images, with non-4965 devices removed.

See Also


CategoryHardware

  1. ipw3945-vs-iwl3945: The Intel code in ipw3945 implements a number of non-free algorithms which are not realized in iwl3945, including automatic calibration of the radio power based on temperature variations, and dynamic tuning of the radio sensitivity based on received signal strength. These may extend the operating range of the adapter, improve throughput in various environmental conditions, and reduce power consumption, but they are kept secret by Intel. (1)