Not Hard but Not Easy
This guide is the culmination of several dozens of hours or trial and error, cursing, and perhaps a little alcohol. In my Ubuntu on Beaglebone Black setup guide, WiFi was conspicuously missing. I did this because I felt WiFi needed its own treatment and the subject can differ radically based on the user’s WiFi card, experience with Linux, and comfort level with BBB.
Historically, I have been pampered by Ubuntu’s nature of “Just works.” Having run my workstation for just over a year, there have been several little glitches but nothing that vexed me so much that I was ready to go “Office Space” on any machine. However, getting WiFi running on my Beaglebone Black took me to the brink. I know that I am not alone and I wanted to save anyone reading this from the same huge, frustrating exercise that so many before me have had.
Before we get started, let me set the stage and define the scope.
When I purchased my BBB from Adafruit.com, I picked up the WiFi dongle at a price that was very reasonable. With the community of BBB users, I thought if I can’t get it running surely someone else has. Well, this is true but the path to success is long and meandering. I had such a difficult time with it, I walked away from Angstrom and sought safe haven elsewhere, hence Ubuntu. Now being on the other side of the WiFi issue, I cannot say that Angstrom was the problem (I still am not convinced it’s the answer). I have read through countless numbers of posts on the subject and have seen every kind of solution, each of which, have failed.
A side note: I must apologize that I do not have the address for the blog that helped me get this working. When I was setting this up, I was just trying the next in a long line of failed attempts to get the dongle working and I seriously did not expect it to work. I have yet to find the blog but when I do, I will put the link here.
Finally, I was trying to configure the WiFi with Ubuntu and I stumbled upon a blog where someone pointed readers to some files. I downloaded them and I was surprised that I was actually starting to make some progress but the instructions went on to give instructions that ended up not working. However, I found another site that had a different network configuration that ended up working. The following instructions provide the steps I followed to get Wifi working for my BBB:
- Download the files from this site: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/rtlwifi
- Backup the files in this directory: /lib/firmware/rtlwifi then delete the files
- Unpack and save the files downloaded from the above site to /lib/firmware/rtlwifi
- Edit the /etc/network/interfaces file. Here’s what I added to mine:
auto wlan0 iface wlan0 inet dhcp wpa-ssid "URANUS" wpa-psk "PASSWORD"
Finally, I started the WiFi interface by entering this command: sudo ifconfig wlan0 up. When I ran ifconf, my wlan0 had an IP address. I was able to ping it and ssh to the BBB through this.
But I was skeptical. So I bounced the BBB and when it came back, I attempted to SSH to the BBB though the wireless and… SUCCESS!
So far, this seems to work. I’m not crazy about putting any password into a config that’s not encrypted or somehow obfuscated but I have locked my BBB down pretty tight and it’s not exposed externally, so in this case, I’m ok with the risk but understand that it is a risk. I was just not able to get any other configuration methods with iwconfig or wpa_supplicant to work.
Also, I am not really worried about my BBB getting an IP from DHCP while at home. I prefer to create an IP reservation in my router’s DHCP table. This allows me to change other network-related configurations on my router and I know that my clients will get the updates. With static assignments, you will have to manually change these configurations on your client.
Maybe it’s not pretty but it gets the job done. I will continue to work on this when I can get more sd-cards because I’m not crazy about roaching my current installation for the sake of experimentation. When I have other results to report, I will post them here.
Links related to this post: