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 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.
Example 3.2. Blocking a RFKill-enabled Device
Run the following command to block the first RFKill-enabled device on the system:
rfkill block 0
You can also use rfkill to block certain categories of devices. This command blocks all Wi-Fi devices on the system:
rfkill block wifi
To block all RFKill-enabled devices, run:
rfkill block all
To unblock RFKill-enabled devices, execute:
To obtain a full list of device categories that rfkill can block, run:
For more information on rkfill, see the rfkill(1) man page.