I have just got my hands on a new USB wifi dongle from TP-LINK (famous chinese manufacturer). It uses an Atheros chipset and its id (found using lsusb) is 0cf3:9170 (see appendix).
I decided to test ndiswrapper to make it work on my Ubuntu Hardy (v1.50 is shipped).
I used the following drivers from tp-link.com: http://www.tp-link.com/english/soft/200831131417.zip
ndiswrapper complains that WinXP and Win2K drivers are invalid. Only Vista driver is installable and the device is detected:
ndiswrapper -l
arusb_lh : driver installed
device (0CF3:9170) present
However, the device is not working at all and I get a lot of undefined symbols in the logs (see appendix). I believe this is normal with Vista drivers according to what I've read. However, I don't understand why WinXP drivers are not installable.
*** APPENDIX ***
USB dongle information page: http://www.tp-link.com/products/product_des.asp?id=140
Side note: this is a 802.11n (draft) device
lsusb -v
Bus 007 Device 004: ID 0cf3:9170 Atheros Communications, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x0cf3 Atheros Communications, Inc.
idProduct 0x9170
bcdDevice 1.06
iManufacturer 16 ATHER
iProduct 32 USB2.0 WLAN
iSerial 48 12345
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
dmesg output when connecting device (using Vista drivers) :
[ 26.600807] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMIndicateReceiveNetBufferLists'
[ 26.600816] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeNetBufferList'
[ 26.600823] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateNetBuffer'
[ 26.600831] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferList'
[ 26.600838] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeNetBuffer'
[ 26.600844] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeMdl'
[ 26.600862] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisOpenConfigurationEx'
[ 26.600872] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMSendNetBufferListsComplete'
[ 26.600879] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMOidRequestComplete'
[ 26.600888] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMIndicateStatusEx'
[ 26.600900] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMSetMiniportAttributes'
[ 26.600911] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMDeregisterMiniportDriver'
[ 26.600918] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMRegisterMiniportDriver'
[ 26.600944] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferListPool'
[ 26.600951] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateIoWorkItem'
[ 26.600964] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateMemoryWithTagPriority'
[ 26.600972] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisGetSystemUpTimeEx'
[ 26.600979] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeNetBufferListPool'
[ 26.600985] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisQueueIoWorkItem'
[ 26.600998] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeNetBufferPool'
[ 26.601005] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferPool'
[ 26.601012] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisFreeIoWorkItem'
[ 26.601019] ndiswrapper (import:242): unknown symbol: NDIS.SYS:'NdisMResetComplete'
[ 26.601025] ndiswrapper (import:242): unknown symbol: WDFLDR.SYS:'WdfVersionBind'
[ 26.601030] ndiswrapper (import:242): unknown symbol: WDFLDR.SYS:'WdfVersionUnbind'
[ 26.601033] ndiswrapper (load_sys_files:210): couldn't prepare driver 'arusb_lh'
[ 26.601463] ndiswrapper (load_wrap_driver:112): couldn't load driver arusb_lh; check system log for messages from 'loadndisdriver'
[ 26.601493] usbcore: registered new interface driver ndiswrapper
Try this one instead; it doesn't complain about these XP drivers.
http://www.tp-link.com/english/soft/20089493245.zip
However, I get the following from dmesg:
[ 7452.555891] ndiswrapper version 1.53 loaded (smp=yes, preempt=no)
[ 7452.696028] usb 4-4: reset high speed USB device using ehci_hcd and address 4
[ 7452.879582] ndiswrapper (import:242): unknown symbol: ntoskrnl.exe:'NlsMbCodePageTag'
[ 7452.879821] ndiswrapper (load_sys_files:206): couldn't prepare driver 'arusb_xp'
[ 7452.881731] ndiswrapper (load_wrap_driver:108): couldn't load driver arusb_xp; check system log for messages from 'loadndisdriver'
[ 7452.881835] usbcore: registered new interface driver ndiswrapper
Looking at the source NlsMbCodePageTag does seem to be defined, so I'm not sure why I'm getting that error.
Beyond that, any ideas where to look from here?
Same problem here daniel_white with same dmesg output...
I tried various drivers (TP-Link TL-WN821N, D-Link DWA-160 Rev A, Netgear WNDA3100 ...)
the only one I could get it to "work" with is the IOGEAR GWU623 driver from here
http://www.iogear.com/support/driver/GWU623.zip
I still can't connect to wpa/wpa2 networks - but that might just be the network-manager.
Scanning and connecting to unsecured wireless networks works.
lshw -C Network
*-network:1
description: Wireless interface
physical id: 2
logical name: wlan1
serial: 00:21:27:cf:05:21
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=ndiswrapper+arusb_xp driverversion=1.53+,02/04/2008,3.0.0.99 multicast=yes wireless=IEEE 802.11g
dmesg
[ 7955.669503] usb 1-2: new high speed USB device using ehci_hcd and address 13
[ 7955.888759] usb 1-2: configuration #1 chosen from 1 choice
[ 7956.044366] usb 1-2: reset high speed USB device using ehci_hcd and address 13
[ 7956.230253] ndiswrapper: driver arusb_xp (,02/04/2008,3.0.0.99) loaded
[ 7956.580504] wlan0: ethernet device 00:21:27:cf:05:21 using NDIS driver: arusb_xp, version: 0x40700, NDIS version: 0x501, vendor: 'Atheros OTUS Wireless Network Adapter', 0CF3:9170.F.conf
[ 7956.580653] wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
lsusb -v
Bus 001 Device 013: ID 0cf3:9170 Atheros Communications, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x0cf3 Atheros Communications, Inc.
idProduct 0x9170
bcdDevice 1.06
iManufacturer 16
iProduct 32
iSerial 48
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 46
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)
[ 7956.582826] ndiswrapper: changing interface name from 'wlan0' to 'wlan1'
[ 7956.582931] udev: renamed network interface wlan0 to wlan1
[ 7961.181021] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 9136.361245] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 9146.716025] wlan1: no IPv6 routers present