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