3.12. RFKill

許多電腦都有發出無線電的裝置,包括 Wi-Fi、藍牙、以及 3G 裝置。這些裝置都會消耗電力,如果裝置不在使用中的話,那會造成無謂的浪費。
RFKill 是 Linux kernel 的一個子系統,它提供的介面可以讓使用者查詢、啟動或停用無線電裝置。無線電裝置停用時,這些裝置會處於可以由軟體重新啟用的狀態(soft block),或無法由軟體重新啟用的狀態(hard block)。
RFKill 的核心提供了 API 存取子系統。支援 RFkill 的 kernel 驅動程式可以使用此 API 與 kernel 溝通,並納入啟用或停用裝置的方法。除此之外,RFKill 核心提供了提示功能,讓使用者的應用程式解譯傳輸狀態的方式。
RFKill 介面位於 /dev/rfkill,其中包含了系統無線電傳輸的現有狀態。每個裝置都有其現有的 RFKill 狀態,註冊於 sysfs 裡。除此之外,RFKill 會對能使用 RFKill 的裝置之每個狀態的改變,發出 uevents
Rfkill 命令列工具能讓使用者查詢、改變系統上支援 RFKill 的裝置。要取得這工具,請安裝 rfkill 套件。
請執行 rfkill list 指令,以取得裝置清單;每個裝置都有 index number(索引編號),從 0 開始。使用者可以使用這個 index number 來告知 rfkill 停用或啟用某一項裝置。
rfkill block 0
這會停用系統上的第一個支援 RFKill 的裝置。
使用者也可以使用 rfkill 來停用某些種類的裝置,或所有支援 RFKill 的裝置。舉例來說:
rfkill block wifi
這會停用系統上的所有 Wi-Fi 裝置。要停用支援 RFKill 的裝置,請執行:
rfkill block all
要重新啟用裝置,請執行 rfkill unblock 而不是 rfkill block。要取得 rfkill 可以停用的裝置類別之完整清單,請執行 rfkill help