在Linux系統中使用藍芽功能的基本方法
首先確定硬體上有支援藍芽的裝置,然後執行如下命令,就可以開到我們的藍芽裝置了:
lsusb
執行hciconfig可以看到:
從上圖可以看出,我們的藍芽裝置是hci0
執行hcitool dev可以看到我們的藍芽裝置的硬體地址
執行hcitoo --help 可以檢視更多相關命令
然後我們啟用它:
sudo hciconfig hci0 up
要注意的是,啟用前藍芽必須是開啟的,否則會出現如下錯誤:
然後我們開始掃描了:
hcitool scan
可以看到,發現了我手機的藍芽了~~
然後我們要開始連線了,連線階段使用的主要命令是rfcomm:
執行rfcomm --help 可以檢視用法
首先需要繫結目的藍芽裝置:
sudo rfcomm bind /dev/rfcomm0 E0:A6:70:8C:A3:02
注意:上面的這個地址是目的藍芽裝置的硬體地址
接著我們連線它:
sudo cat >/dev/rfcomm0
這是目的藍芽主機就會彈出一個對話方塊要求輸入pin碼,隨便輸入一個,然後主機就會彈出一個對話方塊,只要輸入的和剛才一致就可以通過驗證。之後我們發現我的手機已經顯示了成功配對的標記了。
在配對完成之後我們需要刪除繫結(否則在下次使用時會提示裝置正忙),命令如下:
sudo rfcomm release /dev/rfcomm0
在 Linux 下使用 rfkill 軟開關藍芽及無線功能
很多計算機系統包含無線電傳輸,其中包括Wi-Fi、藍芽和3G裝置。這些裝置消耗電源,在不使用這些裝置時是一種能源浪費。
RFKill 是Linux核心中的一個子系統,它可提供一個介面,在此介面中可查詢、啟用並取消啟用計算機系統中的無線電傳輸。當取消啟用傳輸時,可使其處於可被軟體重新啟用的狀態( 軟鎖定 )或軟體無法重新啟用的位置( 硬鎖定 )。
RFKill 為核心子系統提供應用程式程式設計介面(API)。核心驅動程式被設計為支援RFKill使用這個API註冊核心,幷包含啟用和禁用這個裝置的方法。另外,RFKill提供使用者程式可解讀的通知以及使用者程式查詢傳輸狀態的方法。
RFKill介面位於 /dev/rfkill,其中包含系統中所有無線電傳輸的當前狀態。每個裝置都在 sysfs 中註冊當前RFKill狀態。另外,在啟用了RFKill的裝置中每當狀態更改時,RFKill會發出 uevents。
rfkill 是一個命令列工具,您可使用它查詢和更改系統中啟用了RFKill的裝置。要獲得這個工具,請安裝 rfkill 軟體包。
如果開機時在可以搜尋到無線網路且輸入密碼正確但仍然無法接入的情況下,就可能是rfkill這個程式阻攔了接入,它是個用來控制無線網路及藍芽的使用的軟開關。
使用命令 rfkill list 獲得裝置列表,每個都包含與之關聯的索引號 ,從 0 開始。
rfkill list
您可以使用這個索引號讓 rfkill 停使或者使用某個裝置,例如:
rfkill block 0
停用系統中第一個啟用RFKill的裝置。
您還可以使用 rfkill 阻斷某一類裝置,或者所有啟用了RFKill的裝置。例如:
rfkill block wifi
停用系統中的所有Wi-Fi裝置。要停用所有啟用了RFKill的裝置,請執行:
rfkill block all
要重新使用裝置,請執行 rfkill unblock。要獲得 rfkill 可停用的完整裝置類別列表,請執行 rfkill help。