USB wireless adapter driver for Linux

I am trying to connect a Atheros ar1021x USB wireless adapter (ath6kl family) to a Raspberry Pi (with kernel 4.14).

My vendor provided a copy of the driver source code, but for kernel 3.18. It is not compiled on my Raspberry Pi due to the kernel API change.

However, I noticed that Kernel 4.14 already has drivers for the ath6kl family. And the dmesg Contains log

[    4.370769]    ath6kl: Error retrieving board file ath6k / AR6004 / hw3.0 / bdata.bin (-2) while trying to find the default board file.
[    4.692766] ath6kl: Initialization of ath6kl core failed: -2

I suspect that this ar1021x chip needed AR6004 / hw3.0 / bdata.bin File, and ar1021x is similar to ar9374x and ar6004x. I found hw3.0 Here. So I copied those hw3.0 Directory too / lib / firmware / ath6k / AR6004 /, This directory already exists hw1.2 and hw1.3,

  • Now comes my first question, what's up hw1.2, hw1.3 and hw3.0 mean? And how does the system determine which? hw is needed to boot the ar1021x chip?

After the restart I can get a new interface wlan1 in the ifconfig, However, the flags of this interface are Flags = 4099without TO RUN, And the transmission power of iwconfig is 0 dBm. I tried to use sudo iwconfig wlan1 txpower 20 to change the transmit power, but with

Error on WLAN request "Set Tx Power" (8B26):
SET on device wlan1 failed; Operation is not supported.

I can use Sudo Wiliest Wlan1 Scan to find some access points, but I have no way to join this AP. I tried that wpa_supplicant.conf File does not work. I also tried to disable the integrated WLAN adapter of the Raspberry Pi, it does not help either.

Here are some messages that can help:

dmesg | grep ath Output:

[   10.101457]    ath6kl: htc pipe control get timeout!
[   10.101466] ath6kl: htc waiting time expired, device reset
[   10.101951] ath6kl: Error while starting the hardware: -110
[   10.102079] ath6kl: Init6kl core failed to start: -110
[   10.102406] ath6kl_usb: Sample of 1-1.1.2: 1.0 failed with error -110
[   10.102526] usbcore: registered new interface driver ath6kl_usb
[   11.942056] ath6kl: ar6004 hw 3.0 usb fw 3.5.0.349-1 api 5
[   11.942067] ath6kl: firmware supports: 64bit-rates, map-lp-endpoint, ratetable-mcs15, no-ip-checksum
[   11.942696] ath6kl: The firmware is missing RSN-CAP-OVERRIDE, so HT (802.11n) is disabled.

lsusb -v Output:

Bus 001 Device 006: ID 0cf3: 9374 Atheros Communications, Inc.
Device could not be opened, some information is missing
Device Description:
length 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Manufacturer-specific class
bDeviceSubClass 255 Vendor-specific subclass
bDeviceProtocol 255 Manufacturer-specific protocol
bMaxPacketSize0 64
idVendor 0x0cf3 Atheros Communications, Inc.
idProduct 0x9374
bcdDevice 1.00
Manufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration description:
length 9
bDescriptorType 2
wTotalLength 118
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus companies)
Remote wakeup
MaxPower 200mA
interface descriptor:
length 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 9
bInterfaceClass 255 Manufacturer-specific class
bInterfaceSubClass 255 Vendor-specific subclass
bInterfaceProtocol 255 Manufacturer-specific protocol
Interface 2
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transmission type interrupt
Sync Type None
Usage data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
interface descriptor:
length 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 4
bInterfaceClass 255 Manufacturer-specific class
bInterfaceSubClass 255 Vendor-specific subclass
bInterfaceProtocol 255 Manufacturer-specific protocol
Interface 2
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer type bulk
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 8
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 1
Transmission type isochronous
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Description:
length 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transmission type isochronous
Sync Type None
Usage data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1

sudo lshw -C network Output:

        * network: 0
Description: Wireless interface
physical id: 2
logical name: wlan0
serial: b8: 27: eb: e7: c4: 28
Capabilities: physical Ethernet wireless
Configuration: Broadcast = Yes Driver = Brcmfmac Driver Version = 7.45.154 Firmware = 01-4fbe0b04 IP = 192.168.1.102 Multicast = Yes Wireless = IEEE 802.11
* network: 1
Description: Wireless interface
physical id: 3
logical name: wlan1
serial: 20: 32: 33: af: 4b: 7b
Capabilities: physical Ethernet wireless
Configuration: Broadcast = Yes Driver = USB Driver Version = 4.14.98-V7 + Firmware = 3.5.0.349-1 Connection = No Multicast = Yes Wireless = IEEE 802.11
* network: 2
Description: Ethernet interface
physical id: 4
logical name: eth0
serial: b8: 27: eb: b2: 91: 7d
Size: 10Mbps
Capacity: 1 Gbps
abilities: ethernet physically ti mi 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
Configuration: Autonegotiation = On Broadcast = Yes Driver = Lan78xx Driverversion = 1.0.6 Duplex = Half Link = No Multicast = Yes Port = MII Speed ​​= 10Mbit / s
  • So, what's wrong with that and how do you get the ar1021x chip?