在Linux下使用rfkill軟開關藍牙及無線功能
很多計算機系統(tǒng)包含無線電傳輸,其中包括Wi-Fi、藍牙和3G設備。這些設備消耗電源,在不使用這些設備時是一種能源浪費。
RFKill 是Linux內(nèi)核中的一個子系統(tǒng),它可提供一個接口,在此接口中可查詢、激活并取消激活計算機系統(tǒng)中的無線電傳輸。當取消激活傳輸時,可使其處于可被軟件重新激活的狀態(tài)( 軟鎖定 )或軟件無法重新激活的位置( 硬鎖定 )。
RFKill 為內(nèi)核子系統(tǒng)提供應用程序編程界面(API)。內(nèi)核驅(qū)動程序被設計為支持RFKill使用這個API注冊內(nèi)核,并包含啟用和禁用這個設備的方法。另外,RFKill提供用戶程序可解讀的通知以及用戶程序查詢傳輸狀態(tài)的方法。
RFKill接口位于 /dev/rfkill,其中包含系統(tǒng)中所有無線電傳輸?shù)漠斍盃顟B(tài)。每個設備都在 sysfs 中注冊當前RFKill狀態(tài)。另外,在啟用了RFKill的設備中每當狀態(tài)更改時,RFKill會發(fā)出 uevents。
rfkill 是一個命令行工具,您可使用它查詢和更改系統(tǒng)中啟用了RFKill的設備。要獲得這個工具,請安裝 rfkill 軟件包。
如果開機時在可以搜索到無線網(wǎng)絡且輸入密碼正確但仍然無法接入的情況下,就可能是rfkill這個程序阻攔了接入,它是個用來控制無線網(wǎng)絡及藍牙的使用的軟開關。
使用命令 rfkill list 獲得設備列表,每個都包含與之關聯(lián)的索引號 ,從 0 開始。
rfkill list
您可以使用這個索引號讓 rfkill 停使或者使用某個設備,例如:
rfkill block 0
停用系統(tǒng)中***個啟用RFKill的設備。
您還可以使用 rfkill 阻斷某一類設備,或者所有啟用了RFKill的設備。例如:
rfkill block wifi
停用系統(tǒng)中的所有Wi-Fi設備。要停用所有啟用了RFKill的設備,請運行:
rfkill block all
要重新使用設備,請運行 rfkill unblock
。要獲得 rfkill 可停用的完整設備類別列表,請運行 rfkill help。