7

I have a raspberry pi 3 (which has internal WiFi), running raspbian.

I decided to run it as "testing", by changing the apt list.

Now, I can't use WiFi.

Whenever I use wpa_supplicant, it complains that there's no wlan0 device (which there isn't in /dev)

What can I do to setup the wlan device and get wpa_supplicant back up?

uname -r is 4.4.13-v7+

lsmod shows:

AppleTalk
psnap
llc
axc25
bncp
hci_uart
btbcm
Bluetooth
joydcv
evdev
hid_microsoft
brcmfmac
brcmutil
cfg80211
rfkill
snd_bcm2835
snd_pcm
snd_timer
snd
spi_bcm8235
bcm8235_gpiomen
bcm8235_wdt
uio_pdrv_genirq
uio
ipv6
14
  • 1
    Hmm, well brcmfmac is the driver and you are using the current kernel. Does ip link show anything besides lo and eth0? I have a card with "stretch" (Raspbian testing) on it but haven't used or updated it in a while (or tried it in my Pi 3). They may have switched over to using "predictable interface naming", which can seem a bit counter-intuitive and may result in the interface having a different name. It will still probably start with w though.
    – goldilocks
    Commented Aug 7, 2016 at 20:49
  • Anyway, also edit in the output from sudo ip link (you can highlight and use the { } button to get the formatting right); it's important to determine whether it has mysteriously loaded the driver yet created no interface, or is just using a new name for it (which would screw up your existing configuration).
    – goldilocks
    Commented Aug 7, 2016 at 20:49
  • @goldilocks just lo and enxb827eb.... link/ether
    – Wert
    Commented Aug 7, 2016 at 21:11
  • Same with ifconfig
    – Wert
    Commented Aug 7, 2016 at 21:12
  • Yeah, enxb827eb sounds like that renaming scheme to me (did I mention "counter-intuitive"?). BTW ifconfig only shows interfaces that are in an "UP" state (ifconfig -a will show all of them, but has been depreciated in favour of the ip toolset, see man ifconfig). The renamings are logged though; try sudo grep wlan /var/log/syslog and see if there's any clue there. Note they may also have stopped using rsyslog by default in stretch so you'd have to check through journald instead (or enable rsyslog and reboot).
    – goldilocks
    Commented Aug 7, 2016 at 21:32

4 Answers 4

7

The package that provides the Wi-Fi firmware is called firmware-brcm80211. To downgrade this package to a version that works:

sudo apt-get install firmware-brcm80211=0.43+rpi5

To prevent this package from being upgraded (either before an upgrade to stretch, or after downgrading the firmware):

sudo apt-mark hold firmware-brcm80211
0
3

Same problem here. Upgraded raspbian jessie to raspbian stretch and lost wifi (due to the upgrading of firmware-brcm80211 package). Just copied the contents of /lib/firmware/brcm from raspbian jessie (from another pi) and rebooted. Now wifi works on raspbian stretch.

2

I found a solution to this problem by the Raspberry Pi forum users iulius_felix and wdmjun (link to original answer):

  1. Get brcmfmac43430-sdio.bin and brcmfmac43430-sdio.txt from this repo or from the /lib/firmware/brcm folder of a working Raspberry Pi.
  2. Copy the above mentioned files to /lib/firmware/brcm on the problematic Raspberry Pi.
  3. Reboot the Raspberry Pi.
1
  • 1
    Unfortunately replacing the firmware files does not seem to work (anymore).
    – yglodt
    Commented Apr 26, 2017 at 18:25
0

This Blogpost suggests, that you can use the kernel commandline to disable the wifi-device name changes introduced in stretch. Adding net.ifnames=0 to cmdline.txt on the boot partition should do the trick.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.