Blog |Follow Nick on Twitter| About
 

Pidora doesn't appear to be being maintained anymore and CentOS/Fedora support for the Pi appears to be focused on the version 2 hardware, so I've been looking for an alternative distro. I'm very early on in my experimentation with docker, and docker is not in anyway related to my Pi, but since the unofficial announcement that they were moving away from Ubuntu to to Alpine Linux, I thought that's was as good a distro to try as any... funny how we're influenced by the media.

The Alpine Linux Raspberry Pi install guide is insanely easy, unpack the files onto a single disk partition, no fricking around with partitions, no dd just unpack and boot! The Alpine WiFi guide isn't bad either but IMHO isn't complete as I couldn't start the wpa_supplicant service:

pi # /etc/init.d/wpa_supplicant start
 * Starting WPA Supplicant Daemon ...
Successfully initialized wpa_supplicant
Could not set interface wlan0 flags (UP): Resource temporarily unavailable
nl80211: Could not set interface 'wlan0' UP
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
wlan0: Failed to initialize driver interface
 * start-stop-daemon: failed to start `/sbin/wpa_supplicant'
 * Failed to start wpa_supplicant 
 * ERROR: wpa_supplicant failed to start
pi #

A quick poke at /var/log/messages reveals that the service is missing firmware:

kern.info kernel: [33264.393174] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
kern.warn kernel: [33264.393356] rt2800usb 1-1.4:1.0: Direct firmware load for rt2870.bin failed with error -2
kern.warn kernel: [33264.393377] rt2800usb 1-1.4:1.0: Falling back to user helper
daemon.err /etc/init.d/wpa_supplicant[2101]: start-stop-daemon: failed to start `/sbin/wpa_supplicant'
kern.err kernel: [33264.423493] ieee80211 phy0: rt2x00lib_request_firmware: Error - Failed to request Firmware
daemon.err /etc/init.d/wpa_supplicant[2083]: ERROR: wpa_supplicant failed to start

The USB WiFi Adapter I purchased has a lot of reviews saying "it just works" on various Pi distro's and it worked fine in pidora, so I figured that this driver was probably something generic. A few googles later and I find the Linux Kernel Firmware page and I find a copy of rt2870.bin which I place in /lib/firmware/.

After a little /etc/init.d/wpa_supplicant restart I have working WiFi!

The alpine documentation is clear, on a Pi the install is in disk-less mode and forces everything into memory, therefore I'm going to loose the firmware after a reboot. To make the change persistent, run lbu include /lib/firmware/rt2870.bin;lbu commit... give it a reboot, and cross your fingers!

 

 
Nick Bettison ©