Difference between revisions of "ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter"

From ThinkWiki
Jump to: navigation, search
(Hardware switch)
(changed categorization)
 
(85 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__NOTOC__
 
 
{| width="100%"
 
{| width="100%"
 
|style="vertical-align:top" |
 
|style="vertical-align:top" |
 
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right">
 
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right">
=== ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter ===
+
This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM/Lenovo partnumber 42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]
This is a WiFi Adapter that is installed in a Mini-PCI Express slot
 
  
=== Features ===
+
= Features =
* Chipset: Atheros AR5008 or Atheros AR5418
+
* Chipset: Atheros AR5418/AR5008
 
* Integrated Mac Processor and Radio Chip: Atheros, unknown model
 
* Integrated Mac Processor and Radio Chip: Atheros, unknown model
 
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)
 
* IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)
Line 16: Line 14:
 
|}
 
|}
  
=== Different chipsets ===
+
= Identification =
There are at least two chipsets which are both referred to by Lenovo as "ThinkPad 11a/b/g/n". To find out which one you have you may have to update your pci id list. You can then use this list to identify the hardware on your pci bus.
+
To determine the chipset your card uses, issue the following commands:
<pre>
+
 
#update-pciids
+
# update-pciids
#lspci
+
# lspci | egrep -i 'network|atheros|wireless'
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
+
03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
+
 
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
+
If you get something different than above despite having the most current PCI IDs, please report it here!
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
+
=ath9k=
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
+
There is now active development of a free driver [[ath9k]] that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and therefore automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support "aggregation" which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to [[How to install the development version of atk9k|jump through a few hoops]].
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
 
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
 
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
 
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
 
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
 
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
 
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
 
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
 
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
 
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
 
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
 
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
 
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
 
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
 
03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)
 
15:00.0 CardBus bridge: Texas Instruments PCI1510 PC card Cardbus Controller
 
</pre>
 
In this case, the wireless card is in the second to last line of the output from lspci.
 
  
=== IBM Partnumbers ===
+
=madwifi=
42T0825 [http://www-307.ibm.com/pc/support/site.wss/MIGR-64222.html]
+
Madwifi is a native linux driver that used to use a binary-only HAL and so must be compiled separately from the kernel. The HAL has recently been opened up, however with the development of ath9k mentioned above, the future of this project in particular with regard to this chipset is uncertain. It does not support the draft 11n protocol, but will work in "legacy" 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be  [http://www.madwifi.org/wiki/Releases/0.9.4#Announcement postponed] as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.
  
=== Linux WiFi driver ===
+
There is a [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | howto]], which describes the procedure for getting the snapshot to work.
There's now (04.04.07) added [http://madwifi.org/wiki/news/20070328/experimental-support-for-ar5008-802-11n experimental support] for the AR5008 chipset to a new branch in MadWifi.  I have compiled this driver successfully, but it's still at an experimental stage, so no promises are given. [[How_to_checkout_and_install_madwifi_experimental_driver_for_ar5008 | Howto]]
 
  
 
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].
 
There is an old ticket for this card at [http://madwifi.org/ticket/1001 madwifi, #1001].
  
 
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].
 
There is an new ticket for this card at [http://madwifi.org/ticket/1243 madwifi-branch, #1243].
 +
<nowiki>Insert non-formatted text here</nowiki>
  
To install this driver, just checkout the branch madwifi-hal-0.9.30.13.
+
= Using the Windows Driver in Linux =
  
mkdir /tmp/madwifi
+
If you have a weak stomach for pre-release software, you can always use "ndiswrapper" (>= 1.29) to wrap the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]].
cd /tmp/madwifi
 
svn checkout http://svn.madwifi.org/branches/madwifi-hal-0.9.30.13/
 
cd madwifi-hal-0.9.30.13/
 
make
 
make install
 
*choose [r]
 
reboot
 
  
News fron the madwifi-branch:
+
=Problems/Bugs?=
 +
==[http://en.wikipedia.org/wiki/Non-maskable_interrupt Non-Maskable Interrupt] with madwifi==
 +
{{NOTE|This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.}}
  
*  milestone changed from version 0.9.x - progressive release candidate phase to version 0.9.4.
+
A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.
FYI: the madwifi-hal-0.9.30.13 branch has been merged to trunk
 
(and the branch has been removed). If you don't want to wait until the next release (v0.9.4),
 
you could go with a snapshot or checkout from trunk - just make sure that your code is >= r2360.
 
  
 +
<pre>
 +
Uhhuh. NMI received for unknown reason b0 on CPU 0.
 +
You have some hardware problem, likely on the PCI bus.
 +
Dazed and confused, but trying to continue
 +
</pre>
  
Until the madwifi driver stabilizes you might want to get the [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver] from Lenovo's support site and use a recent version of [http://sourceforge.net/project/showfiles.php?group_id=93482&package_id=99148 ndiswrapper (>= 1.29)]. I've compiled a [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | Howto]] for this card.
+
<pre>
 +
wifi0: rx FIFO overrun; resetting
 +
wifi0: rx FIFO overrun; resetting
 +
wifi0: rx FIFO overrun; resetting
 +
</pre>
  
=== AR5418 is still to new? ===
+
See the following threads and bug reports:
If anyone is able to get the AR5418 to work with madwifi, please add your procedure for getting it to work - in the meantime, [[How_to_install_ndiswrapper_for_the_ThinkPad_11a/b/g/n_Wireless_LAN_Mini_Express_Adapter | ndiswrapper works]] with the windows driver.
+
[http://ubuntuforums.org/showthread.php?p=3152517]
 +
[http://ubuntuforums.org/showthread.php?t=500729]
 +
[https://answers.launchpad.net/ubuntu/+question/5537]
 +
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/116752]
 +
[http://sourceforge.net/mailarchive/forum.php?thread_name=20070809145900.GD16023%40hank.org&forum_name=madwifi-users]
  
'''Update 10.06.2007 from Stevie:'''
+
{{HINT|There's a [http://madwifi.org/ticket/1017 ticket on madwifi] with some discussion and suggestions for the rx FIFO overrun problem.}}
  
I have the AR5418 chipset and with the snapshot release r2431 this chipset works (with wpa-psk). Just try it...
+
A '''possible''' preventitive measure is issuing the command
 
+
{{cmdroot|iwpriv <device> bgscan 0}}
=== Hardware switch ===
+
each time you load the driver. To make this change "permanent", you could add this command to your distribution's ifup networking scripts as described below.
 +
===Debian===
 +
Open up {{path|/etc/network/interfaces}} in a text editor and find the entry for your wireless device. Which should look something like
 +
<pre>
 +
iface wlan0 inet manual
 +
    wpa-driver madwifi
 +
    wpa-roam  /etc/network/wpa_supplicant.conf
 +
</pre>
 +
and add the line
 +
<pre>
 +
    post-up iwpriv wlan0 bgscan 0
 +
</pre>
 +
to the end of it where of course you substitute your interface name (e.g., "ath0") for "wlan0".
  
Some ThinkPads have a hardware switch that must be in the '''on''' position for the radio to work, regardless of driver state:
+
= Hardware switch =
  
[[Image:Wireless-switch.png|(ThinkPad R60 radio switch in the ON position)]]
+
{{Note_wlan_hardware_switch}}
  
In addition to hard-switching the wireless card, the switch also generates an [Acpid|acpi event] on transition from hi->lo and vice versa. It is however the same event regardless of the direction.
+
In addition to hard-switching the wireless card, the switch also generates an [[Acpid|acpi event]] on transition from hi->lo and vice versa. It is however the same event in both directions.
  
=== ThinkPads this card may be found in ===
+
= ThinkPads this card may be found in =
 
* {{R60}}, {{R60e}}
 
* {{R60}}, {{R60e}}
 
* {{T60}}, {{T60p}}
 
* {{T60}}, {{T60p}}
* {{X60}}, {{X60s}}, {{X60t}} Tablet
+
* {{X60}}, {{X60s}}, {{X60_Tablet}}
 
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}
 
* {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}
  
Line 103: Line 100:
 
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]
 
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449 Windows driver at Lenovo]
  
[[Category:Components]]
+
[[Category:WLAN Adapters]]

Latest revision as of 13:26, 16 November 2020

This is a WiFi Adapter that is installed in a Mini-PCI Express slot IBM/Lenovo partnumber 42T0825 [1]

Features

  • Chipset: Atheros AR5418/AR5008
  • Integrated Mac Processor and Radio Chip: Atheros, unknown model
  • IEEE Standards: 802.11a, 802.11b, 802.11g, 802.11n (draft)
  • PCI ID: 168c:0024

 

Identification

To determine the chipset your card uses, issue the following commands:

# update-pciids
# lspci | egrep -i 'network|atheros|wireless'
03:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)

If you get something different than above despite having the most current PCI IDs, please report it here!

ath9k

There is now active development of a free driver ath9k that aims to fully support the draft 11n protocol. It is available in the mainline linux kernel starting with 2.6.27 and therefore automatically included in any distribution running this kernel (eg. Ubuntu Intrepid Ibex). The version in this latest kernel however does not support "aggregation" which basically means you will only see a slight increase in speed from the 11g protocol (mesured as 25 Mb/s vs 20Mb/s). If your distribution does not yet include this kernel (aheghm Debian), you'll have to jump through a few hoops.

madwifi

Madwifi is a native linux driver that used to use a binary-only HAL and so must be compiled separately from the kernel. The HAL has recently been opened up, however with the development of ath9k mentioned above, the future of this project in particular with regard to this chipset is uncertain. It does not support the draft 11n protocol, but will work in "legacy" 11g mode. Support for this chipset was initially planned for release 0.9.4, but this inclusion had to be postponed as a critical update with a bug fix for compilation with the 2.6.24 kernel was necessary before the pre-release trunk was sufficiently stable. Thus, it is still necessary to download the prerelease snapshot from trunk using subversion.

There is a howto, which describes the procedure for getting the snapshot to work.

There is an old ticket for this card at madwifi, #1001.

There is an new ticket for this card at madwifi-branch, #1243. Insert non-formatted text here

Using the Windows Driver in Linux

If you have a weak stomach for pre-release software, you can always use "ndiswrapper" (>= 1.29) to wrap the Windows driver supplied by Lenovo. This isn't as bad as you think. It does work like a charm, but you may have problems if you're using a 64 bit kernel since it's not clear that a 64 bit windows XP driver exists (ndiswrapper currently doesn't support Vista drivers). Here's the Howto.

Problems/Bugs?

Non-Maskable Interrupt with madwifi

NOTE!
This problem appears to be more or less fixed with recent subversion snapshots. If you are still experiencing this, try upgrading to the latest version.

A number of folks have reported getting errors while using the experimental madwifi driver with the AR5418. After hours of flawless operation, the Kernel sometimes throws an NMI after which, the wifi dies. Aside from rebooting, suspending (to ram or disk) and resuming seems to be the only method to recover.

Uhhuh. NMI received for unknown reason b0 on CPU 0.
You have some hardware problem, likely on the PCI bus.
Dazed and confused, but trying to continue
wifi0: rx FIFO overrun; resetting
wifi0: rx FIFO overrun; resetting
wifi0: rx FIFO overrun; resetting

See the following threads and bug reports: [2] [3] [4] [5] [6]

Hint:
There's a ticket on madwifi with some discussion and suggestions for the rx FIFO overrun problem.

A possible preventitive measure is issuing the command # iwpriv <device> bgscan 0 each time you load the driver. To make this change "permanent", you could add this command to your distribution's ifup networking scripts as described below.

Debian

Open up /etc/network/interfaces in a text editor and find the entry for your wireless device. Which should look something like

iface wlan0 inet manual
    wpa-driver madwifi
    wpa-roam   /etc/network/wpa_supplicant.conf

and add the line

    post-up iwpriv wlan0 bgscan 0

to the end of it where of course you substitute your interface name (e.g., "ath0") for "wlan0".

Hardware switch

NOTE!
ThinkPad R60 radio switch in the ON position
Some ThinkPads have a hardware switch that must be in the on position for the radio to work, regardless of driver state.

In addition to hard-switching the wireless card, the switch also generates an acpi event on transition from hi->lo and vice versa. It is however the same event in both directions.

ThinkPads this card may be found in

Related Links