Disabling Wi-Fi and Bluetooth on the Raspberry Pi
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.