切換到Arch也有一段時間了,一直在用的QC35也又一次遇到了藍(lán)牙配對的問題。以前都是用Blueman,或者直接連接有線,但是問題只是被隱藏了,這次還是好好把這個問題解決了一下。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比興平網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式興平網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋興平地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
Linux下連接藍(lán)牙設(shè)備的方法可以參照 Arch Wiki:Bluetooth ,我使用的藍(lán)牙設(shè)備是USB CSR8510藍(lán)牙適配器,按頁面說明安裝好軟件包后,啟動藍(lán)牙服務(wù),進(jìn)入bluetoothctl,耳機(jī)打開配對模式,scan on查找到我的耳機(jī)的MAC,pair 04:52:C7:5B:CB:65,出現(xiàn)問題:
如果你在藍(lán)牙設(shè)置界面進(jìn)行配對嘗試,不同桌面也有不同的錯誤提示,反正就是無法完成配對。如果使用Blueman等軟件,有機(jī)會可以通過多次重試成功連接,但是問題還是間歇出現(xiàn),并不能治本。
百度是找不到什么好解決方案的,直接Google,不一會就找到了有用的解決方法, Pairing Bose QC 35 over Bluetooth on Fedora ,問題上看基本就是我的問題,最高票的回答也很簡單,QC35聲稱支持低功耗藍(lán)牙(LE)但不支持低功耗模式下的配對,Bluez也還不支持明明配對一個LE設(shè)備,卻要切換到BR模式來配對(大概是這個意思),除非你在配置文件里指定所有設(shè)備都應(yīng)該工作在BR模式,所以打開配置文件/etc/bluetooth/main.conf(沒有的話新建一個),找到下面的
將 # ControllerMode = dual改為ControllerMode = bredr,然后保存,對于新建的文檔,直接輸入下面的然后保存
然后重啟bluetooth服務(wù)
現(xiàn)在你應(yīng)該能在bluetooth里愉快地配對了----才怪,你還需要刪除以前的配對設(shè)置,否則會出現(xiàn)org.bluez.Error.AuthenticationRejected錯誤
再次嘗試配對,信任,連接,如果連接時出現(xiàn)Failed to connect: org.bluez.Error.Failed錯誤,那是你沒裝pulseaudio-bluetooth包,無法支持A2DP協(xié)議,裝一個再試就可以了。
成功連接后聲音輸出可能會默認(rèn)走的是HSP/HFP,音質(zhì)會極差,在音頻設(shè)置里切換到A2DP就正常了。更多藍(lán)牙音頻設(shè)備的設(shè)置可以查看 Arch Wiki:Bluetooth headset
關(guān)于藍(lán)牙協(xié)議可以查看百科,或者這里有簡短的科普 藍(lán)牙協(xié)議分析(1)_基本概念
關(guān)于這里bluetooth和QC35在配對時雞同鴨講的問題,給出解決問題的人也表示自己的藍(lán)牙鼠標(biāo)是LE,為了使用他后來把配置文件里的ControllerMode刪掉了,但是耳機(jī)和鼠標(biāo)都沒受影響,他猜想可能配對后的設(shè)備是不受配置文件的影響的。
注:以下內(nèi)容主要來自
1、lsusb看看能不能找到本機(jī)的藍(lán)牙/USB藍(lán)牙
2、 bluetoothctl -a
注意,這個指令用root權(quán)限,否則可能會找不到設(shè)備
進(jìn)入[bluetooth]#提示符
[bluetooth]# power on激活藍(lán)牙
[bluetooth]# agent KeyboardOnly
[bluetooth]# default-agent
告訴主機(jī)去找藍(lán)牙鍵盤設(shè)備
[bluetooth]# pairable on進(jìn)入配對模式,第一次才需要
[bluetooth]# scan on 開始掃描
[bluetooth]# pair 01:02:03:04:05:06 后面的mac地址是你的鍵盤mac地址
[bluetooth]# trust 01:02:03:04:05:06 把鍵盤設(shè)置為可信設(shè)備
[bluetooth]# connect 01:02:03:04:05:06 進(jìn)行對接
顯示yes就對接成功了。
補充:以下內(nèi)容針對羅技K系列藍(lán)牙,如k380這種可以對接多個藍(lán)牙設(shè)備的
這類設(shè)備有多個藍(lán)牙服務(wù),但是mac地址只有一個
因此,如果不是默認(rèn)連接的linux主機(jī),則每次都需要重新去連接。也就是第一次配對成功之后,每次power on一下,然后scan on,然后鍵盤切換到對應(yīng)的F2或者F3。具體原因我也不明白為什么。
如果是一對一的藍(lán)牙鍵盤,就不會出現(xiàn)這個問題。
運行hciconfig查看藍(lán)牙信息,
運行hcitool dev可以看到我們的藍(lán)牙設(shè)備的硬件地址
運行hcitoo --help 可以查看更多相關(guān)命令
然后我們激活它:sudo hciconfig hci0 up
然后我們開始掃描了:hcitool scan
運行rfcomm --help 可以查看用法
接著我們連接它:sudo cat /dev/rfcomm0
自從安裝了Deepin Linux,并 采用自己編譯的內(nèi)核 后,筆者的ThinkPad X200筆記本體驗可謂是上升了一個非常重要的層次。后來有一天,筆者想用藍(lán)牙耳機(jī)聽音樂,然而在使用過程中發(fā)現(xiàn),這臺筆記本雖然自帶藍(lán)牙,屏幕下的藍(lán)牙指示燈一直點亮著,系統(tǒng)中卻看不到與藍(lán)牙有關(guān)的設(shè)置選項。
出現(xiàn)這樣的問題,多半就是因為系統(tǒng)中對藍(lán)牙的支持沒有啟用,主要包括系統(tǒng)組件和內(nèi)核兩個層面。下面把我的經(jīng)驗總結(jié)如下。
默認(rèn)地,Deepin并沒有在系統(tǒng)中裝上藍(lán)牙組件,須用戶手動安裝。在終端中運行:
其中, bluetooth 是Linux藍(lán)牙的核心組件,而 blueman 則是基于GTK+的一個全功能藍(lán)牙管理器。把它們一齊裝上,即可為Deepin啟用全面的藍(lán)牙支持。
筆者本以為安裝了藍(lán)牙組件后,藍(lán)牙功能就能正常使用(因為之前在解決WLAN問題時,WLAN驅(qū)動未配置的情況下無線網(wǎng)卡燈是不會亮的,然而藍(lán)牙燈始終會常亮),但是當(dāng)打開藍(lán)牙管理器時,竟然報錯,提示藍(lán)牙服務(wù)未啟動。這不得不讓我想到,內(nèi)核中的藍(lán)牙支持是否沒有啟用。
果不其然。在內(nèi)核源碼目錄下運行 make menuconfig ,打開內(nèi)核配置界面,依次對內(nèi)核進(jìn)行以下配置。
內(nèi)核中的藍(lán)牙選項位于【Network Settings】 -- 【Bluetooth subsystem support】。先選中【Bluetooth subsystem support】,然后按”Y“,勾選它。
【Bluetooth subsystem support】中有子菜單,按回車進(jìn)入,如下所示:
其中有幾個選項,控制特定類型藍(lán)牙設(shè)備協(xié)議的支持,一般全部啟用。它們包括:
最為重要的一步,就是將藍(lán)牙適配器驅(qū)動編譯入內(nèi)核當(dāng)中。 進(jìn)入最下方子菜單【Bluetooth device drivers】,如下所示:
菜單中根據(jù)接口和特定型號設(shè)備,列出了相應(yīng)的支持選項,有些選項在勾選后還會展開新的選項。典型的接口有USB、SDIO、UART,按需要勾選。
筆者X200筆記本的藍(lán)牙適配器是Broadcom BCM2045B,走的是USB通道,因此先勾選【HCI USB driver】,隨后會在該項下面出現(xiàn)三個新的選項,再進(jìn)一步勾選【Broadcom protocol support】。不過,在得知適配器信息之前,筆者拿捏藍(lán)牙適配器可能也走了UART通道,所以也將【HCI UART driver】勾上,再進(jìn)一步勾選下面的【Intel AG6XX protocol support】。但實際使用時發(fā)現(xiàn),X200的藍(lán)牙適配器的確走的是USB而非UART。若不能確定自己的藍(lán)牙適配器類型,可以一并選上,也不占用太多空間。
上述配置完成后,按左右方向鍵選擇”Save“,保存內(nèi)核配置,然后選”Exit“退出。使用下面的命令重新編譯內(nèi)核并安裝:
重啟后,藍(lán)牙功能即被激活。
在內(nèi)核中啟用藍(lán)牙支持,并在系統(tǒng)中安裝藍(lán)牙組件后,Deepin發(fā)生了翻天覆地的變化。Deepin下藍(lán)牙的體驗非常出色。
Blueman管理器默認(rèn)開機(jī)啟動,會在托盤區(qū)域出現(xiàn)一個藍(lán)牙圖標(biāo),在其中可以很方便地管理藍(lán)牙設(shè)備。
在Blueman管理器中可以搜索到各種藍(lán)牙設(shè)備,包括各種手機(jī)、電腦,以及筆者的藍(lán)牙耳機(jī)。與藍(lán)牙耳機(jī)配對后,Deepin即刻將聲音通過藍(lán)牙進(jìn)行播放,無需再進(jìn)行進(jìn)一步的配置,尤其方便。此外,Blueman還有其他有趣的玩法,比如文件傳輸、瀏覽設(shè)備文件,其中對設(shè)備文件的瀏覽功能與當(dāng)年的MTK功能機(jī)類似。
以X200為代表的ThinkPad早期機(jī)型有一項設(shè)計非常出彩,就是它屏幕下的燈條,系統(tǒng)運行狀態(tài)一目了然。其中正包括了藍(lán)牙指示燈,當(dāng)有數(shù)據(jù)傳輸時(如正使用藍(lán)牙音頻),指示燈會閃爍,如此就能知道藍(lán)牙設(shè)備是否正常工作??芍^匠心。
要想讓使用Deepin的筆記本支持藍(lán)牙,需要做兩項工作——
由此,Deepin下設(shè)備的價值就能被進(jìn)一步挖掘,體驗自會更上一層樓。
1,開啟手機(jī)藍(lán)牙
2,運行hcitool scan,找到自己的手機(jī),記住藍(lán)牙地址
3,sdptool browser 并將輸出導(dǎo)入文件中。
4,找到sdptool輸出中的Service Name: Dial-up Networking
其中有Channel:記住這個數(shù)字,比如,我的是4.
5,編輯/etc/bluetooth/rfcomm.conf,填寫:
rfcomm0 {
bind yes;
device 藍(lán)牙地址;
channel 上面的rfcomm Channel;
comment "Phone Dun Connection";
}
6,重新啟動bluetooth服務(wù),/etc/rc.d/init.d/bluetooth restart
###############配置kppp######################
7,配置kppp帳號
a,在主界面,點擊"配置"
b,在"帳戶"頁,點擊"新建",選擇"手工設(shè)置",會彈出一個對話框
c,在"撥號"頁,"連接名稱",隨便填寫,比如GPRS,然后點"添加",填入電話號碼"*99***1#"
d,點擊確定,完成配置。
8,配置"調(diào)制解調(diào)器"
a,切換到"調(diào)制解調(diào)器"頁,選擇"新建"
b,調(diào)制解調(diào)器名稱隨便填寫,比如Phone.
c,設(shè)備選擇為/dev/rfcomm0
d,確定
9,撥號,直接在主界面點擊"連接"即可。
###################配置wvdial##################
將以下內(nèi)容寫入/etc/wvdial.conf
[Dialer gprs]
Modem = /dev/rfcomm0
Phone = *99***1#
Username = cmnet
Password = cmnet
然后,wvdial gprs即可。
他不會自動更新/etc/resolv.conf,可以把/var/run/ppp/resolv.conf拷貝到/etc
一,藍(lán)牙存儲設(shè)備
藍(lán)牙適配器: ISSC芯片, USB接口(市面上還有其他的一些品牌,大多沒有問題)
藍(lán)牙手機(jī):索愛T628
藍(lán)牙耳機(jī):Jabra BT250(大陸地區(qū)型號是FS258,大概照顧中國人對BT的特殊理解和258的吉利數(shù)字)
1,加載藍(lán)牙適配器
插入USB口之后,可以使用lsusb命令,看到:
Bus 004 Device 003: ID 1131:1001 Integrated System Solution Corp.
這是,運行hciconfig可以看到:
hci0: Type: USB
BD Address: 00:11:67:02:1A:03 ACL MTU: 678:8 SCO MTU: 48:5
DOWN
RX bytes:142289 acl:884 sco:0 events:823 errors:0
TX bytes:13302 acl:494 sco:0 commands:151 errors:0
運行:
hciconfig hci0 up
可以激活借口(這一步不做,hcitool scan無法運行)
3,配置bluez
默認(rèn)的配置文件放在/etc/bluetooth目錄
hcid.conf和pin不需要修改,安全方式已經(jīng)被設(shè)置成auto,這是為了方便連接,用戶可以自己修改,推薦不做修改,以防止有些設(shè)備連接不上。
4,重啟bluetooth服務(wù)。
/etc/rc.d/init.d/bluetooth stop
/etc/rc.d/init.d/bluetooth start
5,掃描設(shè)備
運行hcitool scan可以得到:
Scanning ...
00:01:EC:0C:D2:00 Tree's T628
6,修改配置文件:
修改/etc/bluetooth/rfcomm.conf
將里面的:
device 11:22:33:44:55:66;
修改成hcitool scan的結(jié)果,也就是:
device 00:01:EC:0C:D2:00
保存退出。
7,創(chuàng)建設(shè)備:
運行
rfcomm_create_dev。
8,添加通道:
sdptool add --channel=1 DID SP DUN LAN FAX OPUSH FTP HS HF SAP NAP GN PANU HID CIP CTP A2SRC A2SNK SYNCML NOKID PCSUITE SR1
后面的參數(shù)不一定被支持,但是以防有些服務(wù)沒有被打開,所以,干脆全部打開了。
rfcomm bind /dev/rfcomm0 電話的地址 通道(在rfcomm.conf中配置)
這里的命令應(yīng)該寫成:
rfcomm bind /dev/rfcomm0 00:01:EC:0C:D2:00 1
9,連接手機(jī):
hcitool cc 電話的地址
也就是
hcitool cc 00:01:EC:0C:D2:00
這時候,可以看到手機(jī)上的藍(lán)牙連接呈聯(lián)通狀態(tài)。
10,從計算機(jī)發(fā)送文件:
obex-send abc.jpg
操作系統(tǒng)會彈出提示框,讓你選擇要發(fā)送的目標(biāo)。
同時可以看到手機(jī)會彈出提示框,詢問是否接受文件。
11,手機(jī)的配置:
需要在手機(jī)上進(jìn)行一下配置:
連接-藍(lán)牙-匹配裝置-添加裝置。
會自動掃描到PC上的適配器。
如果需要填入識別碼就填寫123。上面已經(jīng)設(shè)置了。
這時候,可以看到手機(jī)已經(jīng)成功的添加藍(lán)牙裝置。
12,從手機(jī)發(fā)送文件。
在PC機(jī)上啟動obex-server,會看到系統(tǒng)托盤出現(xiàn)一個小圖標(biāo)。
完成上面的工作后,可以進(jìn)入手機(jī)的:
多媒體-我的影集
選擇一張圖片。
然后,“發(fā)送”-“通過藍(lán)牙”
看到有剛才掃描到的藍(lán)牙適配器。
然后,就可以發(fā)送文件了。
13,使用軟件管理手機(jī)信息。
參考gnokii軟件的文檔
二、藍(lán)牙耳機(jī)。
1,同時按住jabra 250上面的“電話鍵”和“音量增大鍵”,大約8秒,看到藍(lán)燈常亮
1,掃描耳機(jī),得到bdaddress
hcitool scan
3,配置工作:
modprobe snd_bt_sco
hciconfig hci0 void 0x0060
btsco bdaddress (這里的bdaddress就是掃描出來的結(jié)果)
btsco運行后,會彈出對話框,要求輸入耳機(jī)的pin,jabra 250為0000,可以在說明書上找到。
4,建立聯(lián)接后,設(shè)備被映射成/dev/dsp1。
以beep為例,
插件-輸出,選擇使用alsa驅(qū)動,點開“首選項”,音頻設(shè)置部分就可以看到btsco:hw0,1之類的信息,選擇這個即可。
然后播放一首歌,嘗試一下無線的快樂吧。
然后適當(dāng)?shù)呐渲媚闼褂玫牟シ牌髦惖木涂梢粤恕?/p>
網(wǎng)頁標(biāo)題:linux藍(lán)牙配對命令,linux藍(lán)牙模塊
分享地址:http://weahome.cn/article/dsecdph.html