3.11. RFKill

很多计算机系统包含无线电传输,其中包括 Wi-Fi、蓝牙和 3G 设备。这些设备消耗电源,在不使用这些设备时是一种浪费。
RFKill 是 Linux kernel 中的一个子系统,它可提供一个界面,在此界面中可查询、激活并取消激活计算机系统中的无线电传输。当取消激活传输时,可使其处于可被软件重新激活的状态(即“软锁定”)或者将其放在软件无法重新激活的位置(即“硬锁定”)。
RFKill 核为子系统提供应用程序编程界面(API)。kernel 驱动程序被设计为支持 RFKill 使用这个 API 注册 kernel,并包含启用和禁用这个设备的方法。另外,RFKill 核提供用户程序可解读的通知以及用户程序查询传输状态的方法。
RFKill 界面位于 /dev/rfkill,其中包含系统中所有无线电传输的当前状态。每个设备都在 sysfs 中注册当前 RFKill 状态。另外,在启用了 RFKill 的设备中每当状态更改时,RFKill 会发出 uevents
Rfkill 是一个命令行工具,您可使用它查询和更改系统中启用了 RFKill 的设备。要获得这个工具,请安装 rfkill 软件包。
使用命令 rfkill list 获得设备列表,每个都包含与之关联的“索引号”,从 0 开始。您可以使用这个索引号让 rfkill 停止使用或者使用某个设备,例如:
rfkill block 0
停用系统中第一个启用 RFKill 的设备。
您还可以使用 rfkill 阻断某一类设备,或者所有已启用 RFKill 的设备。例如:
rfkill block wifi
停用系统中的所有 Wi-Fi 设备。要停用所有已启用 RFKill 的设备,请运行:
rfkill block all
要重新使用设备,请运行 rfkill unblock,而不是 rfkill block。要获得 rfkill 可停用的完整设备类别列表,请运行 rfkill help