Unable to get Linksys WUSB6100M wireless adapter to work

I'm using Ubuntu 16.04 server and trying to make my Linksys WUSB6100M wireless adapter to work.

I can't really find anything on the internet either on what drivers to use to get this adapter to work.

Anyone got any pointers ?

Output from lsusb:

Bus 001 Device 003: ID 13b1:0042 Linksys

[43772.417720] usb 1-1.1: new high-speed USB device number 3 using ehci-pci
[43772.511671] usb 1-1.1: New USB device found, idVendor=13b1, idProduct=0042
[43772.511676] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[43772.511679] usb 1-1.1: Product: USBWLAN
[43772.511681] usb 1-1.1: Manufacturer: Qualcomm Atheros
[43772.511683] usb 1-1.1: SerialNumber: 12345678

             *-usb UNCLAIMED
                  description: Generic USB device
                  product: USBWLAN
                  vendor: Qualcomm Atheros
                  physical id: 1
                  bus info: usb@1:1.1
                  version: 92.10
                  serial: 12345678
                  capabilities: usb-2.01
                  configuration: maxpower=500mA speed=480Mbit/s


Yours is a very new device. A Google search for the usb.id of 13b1:0042 only finds one page of interest; this one.

I then downloaded the Windows 7 driver from Linksys. Here is a snip from the .inf driver file:

[Linksys.NTX86.6.1]
; DisplayName               Section                 DeviceID
; -----------               -------                 --------
%Linksys.DeviceDesc%   = Linksys_robin_fcc.ndi, USB\VID_13B1&PID_0042&REV_9010 ; Linksys WUSB6100M Robin US
%Linksys.DeviceDesc%   = Linksys_robin_ic.ndi,  USB\VID_13B1&PID_0042&REV_9110 ; Linksys WUSB6100M Robin CA
%Linksys.DeviceDesc%   = Linksys_robin_ce.ndi,  USB\VID_13B1&PID_0042&REV_9210 ; Linksys WUSB6100M Robin EU
%Linksys.DeviceDesc%   = Linksys_robin_as.ndi,  USB\VID_13B1&PID_0042&REV_9310 ; Linksys WUSB6100M Robin AS

As you can see, the usb.id matches.

I also looked at the other files in the driver package. There are several references to qca9377_7_1p1. A Google search for this device finds nothing. A Google search for QCA9377 finds many references to the corresponding PCI device and the ath10k_pci driver.

In short, there is currently no native Linux driver for your device.

There is a mechanism to use Windows drivers called ndiswrapper. It depends on Windows XP drivers files; typically the .inf and .sys files. Here is a snip from the ndiswrapper manual page:

ndiswrapper is two parts: user space tool that is used to install Windows XP drivers and kernel module to load the Windows XP drivers. Both are called ndiswrapper.

Unfortunately, Linksys does not provide XP files; only Windows 7-10.

I am sorry to report that there is no way I know of to get your device working. If there is an option to return it for a supported device, I suggest you do so.


I have the same dongle and tried to use ndiswrapper. I downloaded the Win10 and Win7 driver from here: http://www.linksys.com/us/support-article?articleNum=198580

When I run the commands:

ndiswrapper -i netuac.inf (For Windows10: ndiwsrapper -i netuac8.inf)
modprobe -r ndiswrapper

In the logs I see the following:

Feb  6 22:26:59 netbeez-UP-CHT01 kernel: [ 6896.922402] ndiswrapper version 1.61 loaded (smp=yes, preempt=no)
Feb  6 22:26:59 netbeez-UP-CHT01 kernel: [ 6897.043614] usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Feb  6 22:26:59 netbeez-UP-CHT01 loadndisdriver: loadndisdriver: load_driver(336): too many .bin files for driver netuacx
Feb  6 22:26:59 netbeez-UP-CHT01 adndisdriver: loadndisdriver: load_driver(364): couldn't load driver netuacx
Feb  6 22:26:59 netbeez-UP-CHT01 loadndisdriver: loadndisdriver: load_driver(364): couldn't load driver netuacx
Feb  6 22:26:59 netbeez-UP-CHT01 kernel: [ 6897.177935] ndiswrapper (load_wrap_driver:103): couldn't load driver netuacx; check system log for messages from 'loadndisdriver'
Feb  6 22:26:59 netbeez-UP-CHT01 kernel: [ 6897.178032] usbcore: registered new interface driver ndiswrapper

So, it looks like the driver gets installed properly, but it cannot be loaded.


There's a project on GitHub to generate ATH10K firmware files. It might be worth a try in this scenario

Generate ath10k firmware files

ath10k has its own firmware format. Standard qca firmware files (qwlan30.bin, athwlan.bin etc.) must be converted into the ath10k format using the tool ath10k-fwencoder

ath10k-fwencoder is a part of the qca-swiss-army-knife package:

https://github.com/qca/qca-swiss-army-knife.git

Usage instructions:

git clone https://github.com/qca/qca-swiss-army-knife.git
cd qca-swiss-army-knife
./tools/scripts/ath10k/ath10k-fwencoder \
        --create \
        --otp /path/to/otp30.bin \
        --firmware /path/to/qwlan30.bin \
        --set-wmi-op-version=tlv \
        --set-htt-op-version=tlv \
        --set-fw-api=5 \
        --features=ignore-otp-result \

SDIO fw (usually named qwlan30.bin) must be obtained from the module vendor.

USB firmware (usually named athwlan.bin) for Linksys WUSB6100M can be downloaded from:

http://downloads.linksys.com/downloads/driver/Win10.zip

ath10k-fwencoder will produce a firmware file named firmware-X.bin, where X is the API version (--set-fw-api argument).

The file must be renamed to either firmware-usb-X.bin or firmware-sdio-X.bin depending on which chipset the file was generated for.

Currently, ath10k supports QCA9377 based usb and sdio chipsets. Thus, the generated firmware files should be placed in the QCA9377/hw1.0 subdirectory of the ath10k firmware directory.

Board files

Board files contain calibration stuff etc. They are radio device dependent and not just chip dependent (other circuitry on the board like LNA's and PA's etc. affect the performance as well). This is the reason the board data is not included in the firmware file. The board data files are always 8124 bytes and should be obtained from the device manufacturer.

In the case with WUSB6100M, Linksys distributes a bunch of different files for different regions:

-rw-rw-r-- 1 erik erik 8124 dec 26 18:26 eeprom_qca9377_7_1p1_Robin_clpc_as.bin
-rw-rw-r-- 1 erik erik 8124 dec 26 18:26 eeprom_qca9377_7_1p1_Robin_clpc_ce.bin
-rw-rw-r-- 1 erik erik 8124 dec 26 18:26 eeprom_qca9377_7_1p1_Robin_clpc_fcc.bin
-rw-rw-r-- 1 erik erik 8124 dec 26 18:26 eeprom_qca9377_7_1p1_Robin_clpc_ic.bin

I guess that ce is intended for Europe and fcc for America, but any of the files will do.

The recommended approach is to create a symlink pointing to the board file of interest:

ln -s eeprom_qca9377_7_1p1_Robin_clpc_ce.bin board-usb.bin