How to thoroughly disable wireless on rpi0w

I’m using a rpi0 for a system that will benefit from an air-gap (i.e. no network connection at all, interacting with a physically connected screen and keyboard).

I can configure the unit to not connect to any wifi, but I’d like to thoroughly disable the capability alltogether.

I can’t seem to get hold of any of the old rpi0 units without the wireless chip, so I’m looking at disabling the chip on a rpi0w. I can see some guides on doing this at the hardware level, but I’d also like to learn how to do it at the firmware level.

Before I start desoldering things, I’ve been trying to find a way to remove driver support via buildroot. Not having any luck though (and I am not an embedded linux expert, so I might be missing something obvious).

Can anyone point me in the right direction?

The WiFi support comes from Linux kernel modules, proprietary WiFi firmware blobs, and a little config entry in the device tree file that says how the WiFi module is connected. If any of those is missing, WiFi won’t work.

To remove the firmware blobs, remove BR2_PACKAGE_RPI_DISTRO_FIRMWARE_NONFREE=y in the nerves_defconfig. Despite the generic sounding name, this package only supplies WiFi and BLE module firmware for Nerves.

To remove the Linux kernel driver for the WiFi module, delete CONFIG_BRCMFMAC=m from the linux-5.10.defconfig. In theory, you could start deleting everything WiFi related in the kernel. In make linux-menuconfig, I’d start by turning off CONFIG_CFG80211 (Type / and cfg80211 to find that option).

Removing the WiFi config in the Raspberry Pi’s device tree file is probably not worth the effort. In principle, it’s just a matter of deleting the blocks that have fmac and bt references in them (should all be sdio and uart related). However, Nerves doesn’t have an easy way of version controlling your changes. I have no idea if copying bcm2708-rpi-zero.dtb to bcm2708-rpi-zero-w.dtb works. I.e., trick the Pi bootloader to using the non-WiFi RPi Zero’s device tree file.

Hope that helps.

6 Likes

Awesome, thanks. This looks just right but I’ll report back after the weekend once I can try it out.