rfkill

Control and query radio transmitters (Wi‑Fi, Bluetooth, WWAN) at the kernel level using Linux’s RF kill switch subsystem.

Category: Networking / Power Radio Control Wi‑Fi Bluetooth Hardware / Software Kill

What it does

rfkill lists, blocks, and unblocks wireless radios. It operates below NetworkManager and iw, enforcing a hard enable/disable state for radio transmitters such as Wi‑Fi and Bluetooth.

How it works (mechanical)

The kernel exposes radio devices through the rfkill subsystem. Each radio can be blocked in two ways:

  • Hard block — enforced by hardware (switch, BIOS, firmware)
  • Soft block — enforced by software (kernel/userspace)

rfkill toggles the software block state. Hard blocks must be cleared by hardware or firmware and cannot be overridden.

10 Practical Examples

# 1) List all radios and their block state
rfkill list
# 2) Show only Wi‑Fi devices
rfkill list wifi
# 3) Show only Bluetooth devices
rfkill list bluetooth
# 4) Unblock all radios
sudo rfkill unblock all
# 5) Block all radios (airplane mode)
sudo rfkill block all
# 6) Unblock Wi‑Fi only
sudo rfkill unblock wifi
# 7) Unblock Bluetooth only
sudo rfkill unblock bluetooth
# 8) Check for hard blocks (common laptop issue)
rfkill list | grep -i hard
# 9) Recover Wi‑Fi after resume or suspend
sudo rfkill unblock wifi
ip link set wlan0 up
# 10) Script-friendly output (ID-focused)
rfkill --output ID,TYPE,SOFT,HARD

Notes & Gotchas

  • Hard blocks cannot be cleared with software.
  • Some laptops tie rfkill to a physical key or BIOS setting.
  • NetworkManager respects rfkill and will not override it.
  • After unblocking, interfaces may still need to be brought up.
  • rfkill does not configure networks — it only enables/disables radios.

Historical Context

The rfkill subsystem was introduced to standardize radio kill switches across vendors. Prior to rfkill, each driver handled radio power independently, leading to inconsistent behavior on laptops and embedded systems.

Modern Equivalent / Related Tools

  • iw — inspect and control Wi‑Fi interfaces
  • nmcli radio — NetworkManager radio toggles
  • ip link — bring interfaces up/down after unblocking
  • bluetoothctl — Bluetooth management
  • systemd-rfkill — persistent rfkill state across reboots