Wifi on BBB 3.8.x - Are there drivers for any USB wifi adapters?

I would like to hook up a USB wifi adapter to my BBB, that is running with the 5/8 build (Kernel 3.8.11). I would like to connect to this wirelessly.

Are there any adapters that have drivers that work with the 3.8 kernel. I currently have at least 3 different adapters. Two of them I have connected to Raspberry Pis, including:
Edimax - http://www.amazon.com/Edimax-EW-7811Un-Wireless-Adapter-Wizard/
Gymle - http://www.amazon.com/gp/product/B003Y6UNI6/ref=oh_details_o05_s01_i01?ie=UTF8&psc=1
Netgear WNA1100 - http://www.amazon.com/gp/product/B0036R9XRU/ref=oh_details_o00_s00_i00?ie=UTF8&psc=1

The first two were choosen from the RPi verified list. The last one was from another thread.

Are the drivers for any of the wireless adapters included in the main download, if not are there any that you can currently do an opkg install of? Or do we need to build the driver(s). I saw one thread that I believe built the driver for the Netgear adapter, but I believe that it was specific to the 3.2 kernel. A few days ago I tried following the steps to build this driver, which failed on 3.8. Unfortunately after that point, I did a opkg update and the upgrade, which failed and the system ran out of space… So I relashed from microsd…

Any suggestions?

Thanks
Kurt

I’ve tried the edimax from amazon and this ourlinc from adafruit

http://www.adafruit.com/products/814

and followed these instructions here:

http://learn.adafruit.com/beaglebone/wifi

driver is something like

opkg list | grep linux-firmware-rtl8192cu

Unfortunately, both of those have been extremely unstable ( may just be my config). I’ve found I have to disconnect and reconnect to my wifi network every 10 minutes or so. I use connman-properties to do that and have not fiddled much with settings other than trying static ip and dhcp which both had the same problem. Let me know if any work out for you.

Ben

I have used the ASUS usb-n10 with very good success on mine. The caveat is that they ‘just work’ under Arch Linux and just don’t work on Angstrom. I didn’t stick with Angstrom long enough try and figure out why. I think the driver is r8712u.

[ 6.168204] r8712u: module is from the staging directory, the quality is unknown, you have been warned.
[ 6.178011] r8712u 1-1:1.0: usb_probe_interface
[ 6.178043] r8712u 1-1:1.0: usb_probe_interface - got id
[ 6.178063] r8712u: Staging version
[ 6.178146] r8712u: register rtl8712_netdev_ops to netdev_ops
[ 6.178161] r8712u: USB_SPEED_HIGH with 4 endpoints
[ 6.178733] r8712u: Boot from EFUSE: Autoload OK
[ 6.637161] r8712u: CustomerID = 0x0010
[ 6.637187] r8712u: MAC Address from efuse = 50:46:5d:ad:42:b2
[ 6.637198] r8712u: Loading firmware from “rtlwifi/rtl8712u.bin”
[ 6.646875] usbcore: registered new interface driver r8712u

So far it works well. I had the same experience with the Adafruit interfaces. They seemed to work fine but my connection would drop constantly and I can find no log that explains why.

Thanks,
I looked at the Adafruit instructions and trying to figure out some of it. Things like: opkg -t /home/root/tmp upgrade
Why do the upgrade using a temporary directory…

Also with the stuff currently on the machine, when I do an opkg list | grep linux-firmware…
Nothing is found. I did an opgk list > foo
And when I look into the foo file I see an entry for: kernel-module-rtl8192cu
Is that what I am looking for?

Kurt

Yeah i ignored the tmp dir and yeah the 8192 module looks right

Thanks,
After I did the upgrade, did find the file: linux-firmware-rtl8192cu
Installed it and the like, did the enable… Getting farther I think. The driver is loading:

[ 18.085189] rtl8192cu 1-1.4:1.0: usb_probe_interface
[ 18.085216] rtl8192cu 1-1.4:1.0: usb_probe_interface - got id
[ 18.129947] rtl8192cu: Chip version 0x10
[ 19.423228] rtl8192cu: MAC address: 80:1f:02:9a:9b:e6
[ 19.423262] rtl8192cu: Board Type 0
[ 19.423387] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
[ 19.433022] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
[ 19.442419] usbcore: registered new interface driver rtl8192cu
[ 19.483107] ieee80211 phy0: Selected rate control algorithm ‘rtl_rc’
[ 19.484813] rtlwifi: wireless switch is on
[ 19.512726] rtl8192cu: MAC auto ON okay!
[ 19.586345] rtl8192cu: Tx queue select: 0x05
[ 20.010810] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 31.903955] EXT4-fs (mmcblk0p2): re-mounted. Opts: commit=0

But I think it is failing with IPv6…
I have verified that settings in /var/lib/connman/settings:

[global]
OfflineMode=false

[Wired]
Enable=true

[WiFi]
Enable=true

Not 100% sure where to define the networks stuff. Following the Adafruit, I have:

root@beaglebone ~ # cat /var/lib/connman/wifi.config
[service_home]
type = wifi
Name = TheName
Security = wpa-psk
Passphrase = ThePassword

Note for Security I have tried: wpa, wap2 and now wpa-psk. WPA-PSK is what the RPI is configured to use for same network.
But if I look at:

root@beaglebone ~ # cat /etc/network/interfaces

/etc/network/interfaces – configuration file for ifup(8), ifdown(8)

The loopback interface

auto lo
iface lo inet loopback

Wireless interfaces

iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf

iface atml0 inet dhcp

Wired or wireless interfaces

It looks like maybe the WPA stuff is supposed to be in a different file. So I edited that file to look like that file for the RPI. Something like:

root@beaglebone ~ # cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
network={
ssid=“TheName”
psk=“ThePassword”
proto=RSN
key_mgmt=WPA-PSK
pairwise=TKIP
auth_alg=OPEN
}

I changed the ssid and psk as to not give that away…

Not sure what to try next.

Thanks
Kurt

I know the feeling. I am willing to try different things if it will help. Doing some more searching on the web, I ran across this web site: https://wiki.archlinux.org/index.php/Wireless_Setup#Manual_setup

If I do the command: iw dev wlan0 scan | less
My terminal shows:

BSS 30:46:9a:02:49:a8 (on wlan0)
TSF: 2567141895552 usec (29d, 17:05:41)
freq: 2412
beacon interval: 100
capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)
signal: -35.00 dBm
last seen: 607 ms ago
Information elements from Probe Response frame:
SSID: MYSSID
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
DS Parameter set: channel 1
RSN: * Version: 1

  • Group cipher: TKIP
  • Pairwise ciphers: CCMP TKIP
  • Authentication suites: PSK
  • Capabilities: (0x0000)
    WPA: * Version: 1
  • Group cipher: TKIP
  • Pairwise ciphers: CCMP TKIP
  • Authentication suites: PSK
    ERP:
    Extended supported rates: 24.0 36.0 48.0 54.0
    WMM: * Parameter version 1
  • u-APSD
  • BE: CW 15-1023, AIFSN 3
  • BK: CW 15-1023, AIFSN 7
  • VI: CW 7-15, AIFSN 2, TXOP 3008 usec
  • VO: CW 3-7, AIFSN 2, TXOP 1504 usec
    HT capabilities:

So it is showing the drivers can talk to USB wifi… But it is failing to make the connection.
More digging…
Kurt

Interesting. And I can verify that my setup works. I got it to connect again, for about 30 seconds using ifup wlan0. It’s really getting to me, my wife thinks I’m possessed. It’s like the damned board is teasing me; giving me just enough to keep slaving at it.

Still, some things I’ve ruled out,

  1. It’s not the dongle. Used it on two other systems, Linux Laptop and Wheezy RPi.
  2. It’s not the power through the microUSB. I’ve powered it through the barrel-jack with 5v, 2a wall wart.

My intuitions tells me it’s probably either

  1. The nearness of my dongle to the router (my lan cable is only 6 feet).
  2. Service conflicts.

Not going to lie, I’ve put my BBB in the blender today…I was too chicken to hit the button though. Not a joke.

–Thomas

Take it from me, it is a good relief but only for the first hour or so afterward. I have destroyed one and I kicked myself in the ass for it afterward. So I think it is a good thing you didn't push the big red nuke button.

-Wil

I have not tried a different flavor of Linux yet, but have been tempted.

Currently I think my issues are more network configuration issues. That is after experimenting and installing the driver for the wireless adapter and maybe kernel module as well. That is:
opkg install linux-firmware-8192cu
opkg install kernel-module-rtl8192cu

I reboot and the like, and the blue comes the dongle. Does not properly connect, but it can talk and it sees my router. Example if I install the other sets of tools like:
opkg install wireless-tools
opkg install connman-tests connman-tools

If I do the command:
/usr/lib/connman/test/list-services, it does give me lots of information about my wifi connection:

[ wifi_111111111111111_222222222222222222_managed_psk ]
Strength = 35
Nameservers = [ ]
State = idle
Provider = { }
Type = wifi
Security = [ psk wps ]
AutoConnect = false
Immutable = false
Proxy = { }
IPv4.Configuration = { Method=dhcp }
IPv6.Configuration = { Method=auto Privacy=disabled }
Name = TestServer
Favorite = false
Timeservers = [ ]
Domains = [ ]
Ethernet = { Interface=wlan0 Method=auto Address=xxxxx }
Nameservers.Configuration = [ ]
Proxy.Configuration = { }
Domains.Configuration = [ ]
Timeservers.Configuration = [ ]
IPv4 = { }
IPv6 = { }

I edited out the actual data for obvious reasons. So there is problem with the configuration files. Not sure myself on which files do what with WPA-PSK… First there is /etc/network/interfaces, which includes:

Wireless interfaces

iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf

this file and some instructions talk about setting up the information in /etc/wpa_supplicant.conf
Mine currently has something like:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
ssid=“TestServer”
scan_ssid=1
key_mgmt=WPA-PSK
psk=“MyPassword”
}

Not sure if the SSID and PSK should be quoted or not, or should be the hex values…

But then there is connman… we have the file: /var/lib/connman/settings which looks like:

[global]
OfflineMode=false

[Wired]
Enable=true

[WiFi]
Enable=true

And then there is talk about seeing up a config file there as well, like: /var/lib.connman/wifi.config which mine looks like:

[global]
Name = Wifi
Description = Home WLAN

[service_wifi]
Type=wifi
SSID=“TestServer”
Passphrase=“ThePassword”
AutoConnect=true
Favorite=true

Not sure if there is some place where we are supposed to tell the system to look at this file, or the system simply looks at all files who name ends with .config

That is all for now
Kurt

so since this seems to be happening to a few people, has anyone tried it without any encryption… I might try that next

Today I thought I would try and find out, So I got out a spare access point and reconfigured it to use wep. I first tested it by connecting up to it by an RPI. Then made some edit to configuration files. /etc/network/interfaces contains the information:

Wireless interfaces

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf

the /etc/wpa_supplicant.conf file I added a new network section:

network={
ssid=“TEST”
key_mgmt=NONE
auth_alg=OPEN
wep_key0=abcdabcdabcdabcdabcdabcd12
}

I then shutdown and unplugged and then replugged in the power to the BBBk and the network connected :slight_smile:
DHCP gave me a new ID and the like. What is interesting is that the wired network was not plugged in. Will have to retry with the wired network plugged in and different combinations to see if I can get it up the way I want it.

Still more testing to go!
Kurt

Actually,

I wish to kick myself in the shins :slight_smile: It appears that the issue is that it will not start up wlan0 when eth0 makes a connection.
It now appears to properly connect through my WPA-PSK AP :slight_smile:

Kurt

In lieu of creating a new thread, I figured I’d post my limited success with the latest 05.27 image (did not work when using 05.08)
Basically these are steps at http://learn.adafruit.com/beaglebone/wifi

  • adaFruit dongle (uses RTL8188CUS chip)
  • connect wired ethernet (opkg steps require internet access)
  • opkg update
  • opkg install linux-firmware-rtl8192cu
  • edit /var/lib/connman/wifi.confg to contain

[service_home]

Type = wifi

Name = yourSSID

Security = wpa2-psk

Passphrase = yourPassPhrase

  • disconnect wired ethernet

  • reboot

  • dmesg should show rtl8192cu loading firmware and registering wlan0

  • ifconfig wlan0 should show a DHCP’d IP after a bit

  • /usr/lib/connman/test/test-connman services should show available wireless AP’s (affiliated/selected should be indicated also)

I haven’t determined how reliable the connection is, there is a fair bit of packet delay/loss, but connection is ok for slow ssh.

Also note that even with the 05.27 image, I’m not seeing USB hot insert/remove work reliably so rebooting was required for me.

-Dale

I was also able to get the stock rtl8192cu driver to work, but it was painful and was not always stable. I found that if ethernet is plugged in at all it will bascially disable wifi until you reboot - this is i think due to connman preferring the ethernet conncetion and then bugs in the rtl drivers. It looks like there have been patches to rtl driver in mainline but i think it was in 3.9+

That said, i got the realtek vendor drivers (available on their site) built and the completely fixed my problems. Connection is made almost instantly and it’s rock-solid. I had to patch the source to build against the 3.8 kernel (i found the patch somewhere on the ubuntu forums.)

I was curious about this as I did not find the wifi to be as reliable as on other boards, so I searched around for the steps to build the driver. Found details up at: http://wind.cs.purdue.edu/doc/wifi.html

As you mentioned, it did not compile, So I found this:
https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run_v2.patch#L114

I did the changes and it now compiles. Next up try it out.

Were these the changes you needed to make?

Thanks
Kurt

Quick update: So far I am running it and it is making connections :slight_smile:

Not sure the best way to replace drivers. That is it was using:
rtl8192cu.ko

Did a copy over of the new generated: 8192cu.ko

mkdir /lib/modules/$(uname –r)/kernel/drivers/net/wireless/rtlwifi/8192cu
cp 8192cu.ko /lib/modules/$(uname –r)/kernel/drivers/net/wireless/rtlwifi/8192cu/
depmod –a

But could not do the next step:
modprobe 8192cu
lsmod

Said device was in use.  So I simply rebooted... I think from the lsmod after this that
it is now using the 8192cu driver and not the rtl8192cu 

root@beaglebone ~ # lsmod
Module Size Used by
rtlwifi 63810 0
rtl8192c_common 51159 0
mac80211 270414 2 rtlwifi,rtl8192c_common
cfg80211 166418 2 mac80211,rtlwifi
8192cu 445685 0
snd_usb_audio 94907 0
snd_usbmidi_lib 14325 1 snd_usb_audio
snd_hwdep 4793 1 snd_usb_audio
snd_rawmidi 16831 1 snd_usbmidi_lib
ip_tables 8294 0
x_tables 15072 1 ip_tables
g_multi 55905 2
libcomposite 15228 1 g_multi
rfcomm 25106 0
ircomm_tty 14503 0
ircomm 8846 1 ircomm_tty
irda 89974 2 ircomm_tty,ircomm
ipv6 229989 14
hidp 10112 0
bluetooth 146100 4 hidp,rfcomm
rfkill 16510 4 cfg80211,bluetooth
autofs4 17432 2

But so far I know I can SSH and RCP into this.

Kurt

cmicali and KurtE,
Can you guys post a summary of what you did (with links) here or in a wiki somewhere? I know that quite a few users in other threads are still having issues with setting up a rtl8192cu on angstrom and would love to have a step-by-step howto. That would be greatly appreciated!

KurtE,

I took a first stab at some instructions here: http://bonenotes.tumblr.com/

Would really appreciate some feedback - any problems, type-os, or issues.

-chris

I can not say for Angstrom, but in Debian there are many wifi modules that are not even compiled in as per standard. So . . . maybe run menuconfig, and take notes on what is available for your distro.