3.12. RFKill
Many computer systems contain radio transmitters, including Wi-Fi, Bluetooth, and 3G devices. These devices consume power, which is wasted when the device is not in use.
RFKill is a subsystem in the Linux kernel that provides an interface through which radio transmitters in a computer system can be queried, activated, and deactivated. When transmitters are deactivated, they can be placed in a state where software can reactive them (a soft block) or where software cannot reactive them (a hard block).
The RFKill core provides the application programming interface (API) for the subsystem. Kernel drivers that have been designed to support RFkill use this API to register with the kernel, and include methods for enabling and disabling the device. Additionally, the RFKill core provides notifications that user applications can interpret and ways for user applications to query transmitter states.
The RFKill interface is located at
/dev/rfkill
, which contains the current state of all radio transmitters on the system. Each device has its current RFKill state registered in sysfs
. Additionally, RFKill issues uevents for each change of state in an RFKill-enabled device.
Rfkill is a command-line tool with which you can query and change RFKill-enabled devices on the system. To obtain the tool, install the rfkill package.
Use the command
rfkill list
to obtain a list of devices, each of which has an index number associated with it, starting at 0
. You can use this index number to tell rfkill to block or unblock a device, for example:
~]# rfkill block 0
blocks the first RFKill-enabled device on the system.
You can also use rfkill to block certain categories of devices, or all RFKill-enabled devices. For example:
~]# rfkill block wifi
blocks all Wi-Fi devices on the system. To block all RFKill-enabled devices, run:
~]# rfkill block all
To unblock devices, run
rfkill unblock
instead of rfkill block
. To obtain a full list of device categories that rfkill can block, run rfkill help