1 min read

Disabling Wi-Fi and Bluetooth on the Raspberry Pi

Disable unused radios on your Raspberry Pi to save power, reduce interference (e.g. with ZigBee) and improve privacy. Covers permanent and temporary methods using config.txt, rfkill, and optional kernel module blacklisting.

There are times when less is more. Less radio chatter, fewer background services, a bit more peace and quiet – for your Raspberry Pi, at least.

Whether you're running a Pi headless in your homelab or just don’t need its built-in wireless, disabling Wi-Fi and Bluetooth can reduce power usage and unused system functions. In my case, I just wanted to reduce interference between my Home Assistant’s ZigBee setup and my home Wi-Fi. Both use the 2.4 GHz band, and keeping the Pi’s onboard Wi-Fi active could cause issues in a ZigBee mesh. Since I rely on Ethernet anyway, switching it off was a no-brainer.


Permanently

To turn off both radios at boot, edit /boot/firmware/config.txt and add:

[all]
dtoverlay=disable-wifi
dtoverlay=disable-bt

That's it. After a reboot, Wi-Fi and Bluetooth should remain disabled.

Tested on a Raspberry Pi 4 running Raspberry Pi OS (Bookworm).
On some setups – like a friend’s Debian 12 install – the file was simply /boot/config.txt. So if the first path doesn’t exist, try that one.

Check

ip a

💡 Look for an interface like wlan0. If it's missing, Wi-Fi is disabled.

bluetoothctl list

💡 If it returns nothing, Bluetooth is disabled.


Temporarily

If you just want to test it without editing files, use the following command.

sudo rfkill block wifi
sudo rfkill block bluetooth
sudo apt install rfkill

💡 If rfkill is not available, install it with this command.

This disables the interfaces immediately. They’ll be re-enabled on the next reboot.

Check

sudo rfkill list
0: phy0: wlan
    Soft blocked: yes
    Hard blocked: no
1: hci0: bluetooth
    Soft blocked: yes
    Hard blocked: no

💡 If both are soft blocked, it worked.


Blacklist kernel modules

If you want to be extra thorough or are running a custom distro where dtoverlay doesn’t fully disable the radios, you can also blacklist the corresponding kernel modules.

To prevent the kernel from loading the Wi-Fi and Bluetooth drivers entirely – create or edit this file:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Wi-Fi

blacklist brcmfmac
blacklist brcmutil

Bluetooth

blacklist btbcm
blacklist hci_uart

💡 This step is usually not needed on Raspberry Pi OS or Debian if you're using the disable-wifi / disable-bt overlays.

Check

lsmod | grep -E 'brcm|hci|bt'

💡 If you don’t see modules like brcmfmac, brcmutil, btbcm, or hci_uart, your blacklist worked.