Wifi - AR7010 - not working

Hi, my USB wifi dongle is not working on RPi2 with OSMC, but it worked on RPI1 with RASPBMC.

root@osmc:/# lsusb

Bus 001 Device 004: ID 0cf3:20ff Atheros Communications, Inc. AR7010 (no firmware)

root@osmc:/# lsmod | grep ath
ath9k_htc 67094 0
ath9k_common 30150 1 ath9k_htc
ath9k_hw 439490 2 ath9k_common,ath9k_htc
ath 23344 3 ath9k_common,ath9k_htc,ath9k_hw
mac80211 692881 1 ath9k_htc
cfg80211 542368 4 ath,ath9k_common,mac80211,ath9k_htc

The driver is loaded, but there is no wlan0 interface.

Anyone with this problem? Is there any solution?

Would need to have a dmesg output to further check on this

DMSG

While the dmesg doesn’t give a specifc info your lsub above show “no firmware”
So my guess is the firmware is missing. Read here ath9k_htc - Debian Wiki

Install firmware-atheros conflicts with wireless-firmware-osmc:

root@osmc:~# apt-get install firmware-atheros
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
libbluray1 rbp2-image-4.3.0-9-osmc
Use ‘apt-get autoremove’ to remove them.
Suggested packages:
initramfs-tools
The following NEW packages will be installed:
firmware-atheros
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/873 kB of archives.
After this operation, 1,803 kB of additional disk space will be used.
(Reading database … 29761 files and directories currently installed.)
Preparing to unpack …/firmware-atheros_0.43_all.deb …
Unpacking firmware-atheros (0.43) …
dpkg: error processing archive /var/cache/apt/archives/firmware-atheros_0.43_all.deb (–unpack):
trying to overwrite ‘/lib/firmware/htc_7010.fw’, which is also in package wireless-firmware-osmc 1.1.0
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/firmware-atheros_0.43_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

But i’ve dowloaded the package and extracted the htc_7010.fw is exactly the same that comes in the package wireless-firmware-osmc.

Also another strange thing, i went back o my RPY1 with RASPBMC and checked lsusb and id’s are different:

Bus 001 Device 006: ID 0846:9018 NetGear, Inc. WNDA3200 802.11abgn Wireless Adapter [Atheros AR7010+AR9280]

This really get’s more strange. Can you post a dmesg from the RASPBMC with the stick connected.

RaspBMC dmesg

It seems both RaspBMC and OSMC detects it as a mass storage device (CD-ROM).

RaspBMC must have something configured for doing de usb mode switch.

In this site they use the eject command, and after the eject command it now apears as a wifi dongle.

I’ve tried on OSMC and it works, for now i’m going do add the eject command to the rc.local, but i’m going to try to configure usb_modeswitch in order to fix this.

The rule exist on /lib/udev/rules.d/40-usb_modeswitch.rules both on RaspBMC and OSMC:

# Atheros Wireless / Netgear WNDA3200
ATTR{idVendor}=="0cf3", ATTR{idProduct}=="20ff", RUN+="usb_modeswitch '%b/%k'"

But for some reason is not being executed on OSMC.

Does the program ‘usb_modeswitch’ exist anywhere on your OSMC install ? What about on your Raspbmc install, if so what path is it located at ?

Most likely this command is part of an optional package we do not have installed. Try the following command to locate it:

find / -name usb_modeswitch 2>/dev/null

When I try this on my Pi 1 running OSMC I do not see this program anywhere…

Edit: looks like there is an apt package called usb-modeswitch, so try:

sudo apt-get update
sudo apt-get install usb-modeswitch

I don’t have /lib/udev/rules.d/40-usb_modeswitch.rules on my system - are you sure you didn’t copy this file from your Raspbmc install and expect it to work ?

The file exists on both my RASPBMC and OSMC.

Because both RASPBMC and OSMC have the usb-modeswitch package installed:

root@osmc:~# dpkg -l | grep usb-mode
ii usb-modeswitch 2.2.0+repack0-2 armhf mode switching tool for controlling “flip flop” USB devices
ii usb-modeswitch-data 20150115-1 all mode switching data for usb-modeswitch

Then you must have manually installed it, because I can confirm that it is not available on my default OSMC installation.
So you mean now evenso you have the usb-modeswitch script and you have the UDEV rule the WIFI is not working?
What happens if you manually call the usb-modeswitch script?

I was trying to call the usb_modeswitch and i found that the /usr/share/usb_modeswitch/ directory only contained the file configPack.tar.gz,
so i extracted this archive and i now got all the usb_modeswitch configuration files there, specially the 0cf3:20ff

root@osmc:/usr/share/usb_modeswitch# cat 0cf3:20ff

Atheros Wireless / Netgear WNDA3200

TargetVendor=0x0cf3
TargetProduct=0x7010
StandardEject=1
NoDriverLoading=1

So, running manually the usb_modeswitch works fine just like the eject:

usb_modeswitch -v 0cf3 -p 20ff -c “/usr/share/usb_modeswitch/0cf3:20ff”

after running it i have the wlan0 interface.

But after i reboot no wlan0 again, it seems that for some reasing udev is not triggering usb_modeswitch.

Most likely an upstream Debian issue - we don’t do anything special to udev that should prevent this working - we use standard Debian systemd and udev packages.

I’d suggest a Google search for the same issue on Debian Jessie to see if anything turns up.