Bluez的藍牙配對工具程式
藍牙配對時常會困擾使用者,特別是一般的使用者。其實藍牙組織(Bluetooth SIG)也知道這個情況,所以配對的方式也有改善,以前的方式(legacy pairing, 藍牙2.0+EDR及之前)使用PIN Code,配對雙方的設備都要輸入相同的PIN Code,通常是4碼數字(規格書定義可到16位數數字)。兩個設備檢查所持有PIN Code是否相同,相同才會配對成功。但是一般使用者可能會按錯鍵,所以常常都要試很多次才會成功,對一般使用者來說經驗是不太好的。近來新的藍牙設備都已改用新的配對方式(secure simple pairing),兩個設備會先溝通一個passkey,通常是6位數的數字,然後兩個設備都會顯示這個數字,接著只要求使用者確認雙方數字是否相同即可。這樣使用者原本必須按10個鍵(4個PIN Code X 2 + 2次確認),現在只要按兩個鍵(確認鍵)就可以了。不但大量降低按錯的機會,也加快了配對的速度。 不過對於Linux的使用者來說,許多藍牙設備因為市場考量的關係,並不見得原生會支援Linux作業系統。例如,Logitech K810的鍵盤要和ubuntu配對時,就要自己費一點功夫 [1] 。這是因為設備廠商只會支援熱門的作業系統,這是很自然的事情;只是Linux系統近年來其實都有整合BlueZ這套藍牙管理程式,所以只要有依循藍牙規格書的設備,Linux就可以透過BlueZ來與之相連運作。反之,設備廠商也不需太費心專門為Linux系統做驅動,其設備就可以連上Linux系統。當然,專門做個驅動還是比較好的,會有助於使用經驗的提升。 BlueZ原生的配對工具,在Ubuntu中就是 [1] 提到的bluez-simple-agent這支程式,其實這是一支Python寫成的script,所以我們可以用more, cat, vi, gedit等指令直接看到它的內容。沒錯,它是命令列的指令用法,對大多數的使用者來說都是不易使用的。所以,其實在大部份的Linux套件中都會使用gnome-bluetooth [2] 之類的圖形界面工具。這樣一來,使用者只要點選按就可以了,自然接受度會好很多。不過,這些工具都只是界面改善(當然有些有加入其他功能),其實主要的配對工作,還是丟給BlueZ去做的。就像我在 [3] 那篇文章中提到一樣,其實只...