AW-NB100H – AR5B225 Atheros half size mini pci-e using compat wireless
This is a quick hack, not a real problem solver for this Azurewave AW-NB100H which also identified as AR5B225 and comes as a combo WLAN and Bluetooth 3.0 half size mini pci-e card. There are no linux driver references for this card i could find at this very moment, even on Qualcomm Atheros and Azurewave site, only this one and only Wikidevi page. It mention about already supported by ath9k using compat wireless or passys using ndiswrapper, but in fact there is no working driver even using the latest compat wireless build 22 April 2012.
Using ubuntu oneiric with kernel-3.0.0-17 and klixs-2012 with kernel-3.2.13-jf6-bfs all cannot detect this WLAN, the bluetooth itself is ready to go.
Here is what lspci gives :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@user-B74 user]# lspci 00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 00:14.0 USB Controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04) 00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04) 00:1a.0 USB Controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4) 00:1c.1 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 2 (rev c4) 00:1c.2 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 3 (rev c4) 00:1d.0 USB Controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation Panther Point 6 port SATA AHCI Controller (rev 04) 00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04) 03:00.0 Network controller: Atheros Communications Inc. Device 0037 (rev 01) 04:00.0 Ethernet controller: Atheros Communications Device 1091 (rev 10) [root@user-B74 user]# |
Searching and searching the net for the exactly atheros chipset type used on this card and finally found it as AR9485, but unfortunately the pci id wasn’t yet implemented :
1 2 |
03:00.0 Network controller [0280]: Atheros Communications Inc. Device [168c:0037] (rev 01) Subsystem: AzureWave Device [1a3b:2100] |
1 2 |
[root@user-B14 ath9k]# modinfo ath9k | egrep '168c|0037' [root@user-B14 ath9k]# |
Hacking the latest compat-wireless and added the pci id above, and repackage. You may get it here.
Extract them to some folder, and compile as usual :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@user-B74 compat-wireless-2012-04-22-p]# ./scripts/driver-select ath9k Processing new driver-select request... Backup exists: Makefile.bk Backup exists: Makefile.bk Backup exists: Makefile.bk Backup exists: Makefile.bk Backup exists: Makefile.bk Backup exists: drivers/net/wireless/Makefile.bk Backup exists: drivers/net/wireless/ath/Makefile.bk Backup exists: net/wireless/Makefile.bk Backup exists: drivers/ssb/Makefile.bk Backup exists: drivers/bcma/Makefile.bk Backup exists: drivers/misc/eeprom/Makefile.bk Backup exists: Makefile.bk [root@user-B74 compat-wireless-2012-04-22-p]# |
Make sure you’re working on clean table :
1 2 3 4 |
[root@user-B74 compat-wireless-2012-04-22-p]# make clean make[1]: Entering directory `/usr/src/linux-headers-3.0.0-17-generic' make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-17-generic' [root@user-B74 compat-wireless-2012-04-22-p]# |
then do compiling the code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
[root@user-B74 compat-wireless-2012-04-22-p]# make ./scripts/gen-compat-autoconf.sh /usr/src/compat-wireless-2012-04-22-p/.config /usr/src/compat-wireless-2012-04-22-p/config.mk > include/linux/compat_autoconf.h make -C /lib/modules/3.0.0-17-generic/build M=/usr/src/compat-wireless-2012-04-22-p modules make[1]: Entering directory `/usr/src/linux-headers-3.0.0-17-generic' CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/main.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat-3.2.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat-3.3.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat-3.5.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/cordic.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/crc8.o CC [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat_atomic.o LD [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat.o CC [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/main.o ... blah blah blah Building modules, stage 2. MODPOST 9 modules CC /usr/src/compat-wireless-2012-04-22-p/compat/compat.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/compat/compat.ko CC /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath.ko CC /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k.ko CC /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_common.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_common.ko CC /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_htc.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_htc.ko CC /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_hw.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_hw.ko CC /usr/src/compat-wireless-2012-04-22-p/net/mac80211/mac80211.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/net/mac80211/mac80211.ko CC /usr/src/compat-wireless-2012-04-22-p/net/rfkill/rfkill-regulator.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/net/rfkill/rfkill-regulator.ko CC /usr/src/compat-wireless-2012-04-22-p/net/wireless/cfg80211.mod.o LD [M] /usr/src/compat-wireless-2012-04-22-p/net/wireless/cfg80211.ko make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-17-generic' [root@user-B74 compat-wireless-2012-04-22-p]# |
and finally install them to the system :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@user-B74 compat-wireless-2012-04-22-p]# make install make -C /lib/modules/3.0.0-17-generic/build M=/usr/src/compat-wireless-2012-04-22-p modules make[1]: Entering directory `/usr/src/linux-headers-3.0.0-17-generic' Building modules, stage 2. MODPOST 9 modules make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-17-generic' make -C /lib/modules/3.0.0-17-generic/build M=/usr/src/compat-wireless-2012-04-22-p "INSTALL_MOD_DIR=updates" \ modules_install make[1]: Entering directory `/usr/src/linux-headers-3.0.0-17-generic' INSTALL /usr/src/compat-wireless-2012-04-22-p/compat/compat.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_common.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_htc.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/drivers/net/wireless/ath/ath9k/ath9k_hw.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/net/mac80211/mac80211.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/net/rfkill/rfkill-regulator.ko INSTALL /usr/src/compat-wireless-2012-04-22-p/net/wireless/cfg80211.ko DEPMOD 3.0.0-17-generic make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-17-generic' depmod will prefer updates/ over kernel/ -- OK! Now run: sudo make unload to unload all: wireless, bluetooth and ethernet modules sudo make wlunload to unload wireless modules sudo make btunload to unload bluetooth modules Run sudo modprobe driver-name to load your desired driver. If unsure reboot. [root@user-B74 compat-wireless-2012-04-22-p]# |
then modprobe the modified ath9k module :
1 2 |
[root@user-B74 compat-wireless-2012-04-22-p]# modprobe ath9k [root@user-B74 compat-wireless-2012-04-22-p]# |
check for wlan0 using ifconfig :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[root@user-B74 compat-wireless-2012-04-22-p]# ifconfig eth0 Link encap:Ethernet HWaddr e8:40:f2:86:df:91 inet addr:10.10.13.216 Bcast:10.10.13.255 Mask:255.255.255.0 inet6 addr: fe80::ea40:f2ff:fe86:df91/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16159 errors:0 dropped:0 overruns:0 frame:0 TX packets:3475 errors:0 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:7596912 (7.5 MB) TX bytes:343259 (343.2 KB) Interrupt:18 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 B) TX bytes:240 (240.0 B) wlan0 Link encap:Ethernet HWaddr 94:db:c9:5b:2f:09 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) [root@user-B74 compat-wireless-2012-04-22-p]# |
Turn on the WLAN key Fn+F2 if it’s on OFF state and your AP should listed at network manager.
Like I mention above, this is a quick hack, you better wait for the driver maintainer to reach kernel upstream, and oh … I don’t have to explain that you have to repeat this steps each time you install a new kernel.
Have fun.





