Action Item #556closed
Enable Pi Zero W / RPi 3 Wifi
Details on the toolchain are here:
Kernel defconfig is bcm2709_defconfig.
Updated by Hammel about 6 years ago
- % Done changed from 10 to 30
Pi2 build boots fine on the Pi3, however it doesn't support the on-board wifi. Digging around it seems the wifi is custom and the module driver to load is the brcmfmac. This module is available in my RPi2 build.
Also, there are firmware files that need to be installed under /lib/firmware/brcm. This firmware is not included in my RPi2 build.
Might get some additional help from the RPi Distro repo on github.
Note that it seems that the Pi3 wifi may have some issues. It may not have good range without an antenna.
The Bluetooth appears to be loaded but I'm not really positive of that yet.
Updated by Hammel over 4 years ago
I added the brcmfmac firmware (a .bin and a .txt) to the firmware handling in the core builds. However, I wasn't able to get the wifi working on a Model 3 yet. For now, at least the firmware is present and appears to allow the driver module to load.
Updated by Hammel almost 4 years ago
- % Done changed from 30 to 70
Finally figured this one out. I'm downloading a config file for the brcmfmac firmware called brcmfmac43430-sdio.txt, but I was doing it from a direct link out of github. This got me an HTML page instead of the configuration file. So the driver loaded and pretended to load the firmware but the wlan0 device never became available.
The fix is to use the correct RAW url: https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm/brcmfmac43430-sdio.txt
The reason we need to copy this from the RPi-Distro repo instead of the upstream kernel.org firmware repo is that this file is not included in the upstream. It's only available from the RPi-Distro repo for some reason.
Putting that config file in with the actual firmware brought the wifi device up, ready to be configured for use. Now I just need to add the MAC address to my local network.
As long as the RPi-Distro repo remains available this will work. It's arguable that I should put this firmware in the PiBox repo but it probably belongs in a local mirror that PiBox can pull from. Still the file is very tiny so adding it to the PiBox source tree is not really a big deal. I may do that later. For now, I pull from RPi-Distro.