自從安裝了Deepin Linux,并 采用自己編譯的內(nèi)核 后,筆者的ThinkPad X200筆記本體驗可謂是上升了一個非常重要的層次。后來有一天,筆者想用藍牙耳機聽音樂,然而在使用過程中發(fā)現(xiàn),這臺筆記本雖然自帶藍牙,屏幕下的藍牙指示燈一直點亮著,系統(tǒng)中卻看不到與藍牙有關(guān)的設置選項。
成都創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡+移動網(wǎng)絡一網(wǎng)打盡,滿足企業(yè)的營銷需求!成都創(chuàng)新互聯(lián)具備承接各種類型的網(wǎng)站建設、成都做網(wǎng)站項目的能力。經(jīng)過10年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務,并獲得了客戶的一致好評。
出現(xiàn)這樣的問題,多半就是因為系統(tǒng)中對藍牙的支持沒有啟用,主要包括系統(tǒng)組件和內(nèi)核兩個層面。下面把我的經(jīng)驗總結(jié)如下。
默認地,Deepin并沒有在系統(tǒng)中裝上藍牙組件,須用戶手動安裝。在終端中運行:
其中, bluetooth 是Linux藍牙的核心組件,而 blueman 則是基于GTK+的一個全功能藍牙管理器。把它們一齊裝上,即可為Deepin啟用全面的藍牙支持。
筆者本以為安裝了藍牙組件后,藍牙功能就能正常使用(因為之前在解決WLAN問題時,WLAN驅(qū)動未配置的情況下無線網(wǎng)卡燈是不會亮的,然而藍牙燈始終會常亮),但是當打開藍牙管理器時,竟然報錯,提示藍牙服務未啟動。這不得不讓我想到,內(nèi)核中的藍牙支持是否沒有啟用。
果不其然。在內(nèi)核源碼目錄下運行 make menuconfig ,打開內(nèi)核配置界面,依次對內(nèi)核進行以下配置。
內(nèi)核中的藍牙選項位于【Network Settings】 -- 【Bluetooth subsystem support】。先選中【Bluetooth subsystem support】,然后按”Y“,勾選它。
【Bluetooth subsystem support】中有子菜單,按回車進入,如下所示:
其中有幾個選項,控制特定類型藍牙設備協(xié)議的支持,一般全部啟用。它們包括:
最為重要的一步,就是將藍牙適配器驅(qū)動編譯入內(nèi)核當中。 進入最下方子菜單【Bluetooth device drivers】,如下所示:
菜單中根據(jù)接口和特定型號設備,列出了相應的支持選項,有些選項在勾選后還會展開新的選項。典型的接口有USB、SDIO、UART,按需要勾選。
筆者X200筆記本的藍牙適配器是Broadcom BCM2045B,走的是USB通道,因此先勾選【HCI USB driver】,隨后會在該項下面出現(xiàn)三個新的選項,再進一步勾選【Broadcom protocol support】。不過,在得知適配器信息之前,筆者拿捏藍牙適配器可能也走了UART通道,所以也將【HCI UART driver】勾上,再進一步勾選下面的【Intel AG6XX protocol support】。但實際使用時發(fā)現(xiàn),X200的藍牙適配器的確走的是USB而非UART。若不能確定自己的藍牙適配器類型,可以一并選上,也不占用太多空間。
上述配置完成后,按左右方向鍵選擇”Save“,保存內(nèi)核配置,然后選”Exit“退出。使用下面的命令重新編譯內(nèi)核并安裝:
重啟后,藍牙功能即被激活。
在內(nèi)核中啟用藍牙支持,并在系統(tǒng)中安裝藍牙組件后,Deepin發(fā)生了翻天覆地的變化。Deepin下藍牙的體驗非常出色。
Blueman管理器默認開機啟動,會在托盤區(qū)域出現(xiàn)一個藍牙圖標,在其中可以很方便地管理藍牙設備。
在Blueman管理器中可以搜索到各種藍牙設備,包括各種手機、電腦,以及筆者的藍牙耳機。與藍牙耳機配對后,Deepin即刻將聲音通過藍牙進行播放,無需再進行進一步的配置,尤其方便。此外,Blueman還有其他有趣的玩法,比如文件傳輸、瀏覽設備文件,其中對設備文件的瀏覽功能與當年的MTK功能機類似。
以X200為代表的ThinkPad早期機型有一項設計非常出彩,就是它屏幕下的燈條,系統(tǒng)運行狀態(tài)一目了然。其中正包括了藍牙指示燈,當有數(shù)據(jù)傳輸時(如正使用藍牙音頻),指示燈會閃爍,如此就能知道藍牙設備是否正常工作。可謂匠心。
要想讓使用Deepin的筆記本支持藍牙,需要做兩項工作——
由此,Deepin下設備的價值就能被進一步挖掘,體驗自會更上一層樓。
注:以下內(nèi)容主要來自
1、lsusb看看能不能找到本機的藍牙/USB藍牙
2、 bluetoothctl -a
注意,這個指令用root權(quán)限,否則可能會找不到設備
進入[bluetooth]#提示符
[bluetooth]# power on激活藍牙
[bluetooth]# agent KeyboardOnly
[bluetooth]# default-agent
告訴主機去找藍牙鍵盤設備
[bluetooth]# pairable on進入配對模式,第一次才需要
[bluetooth]# scan on 開始掃描
[bluetooth]# pair 01:02:03:04:05:06 后面的mac地址是你的鍵盤mac地址
[bluetooth]# trust 01:02:03:04:05:06 把鍵盤設置為可信設備
[bluetooth]# connect 01:02:03:04:05:06 進行對接
顯示yes就對接成功了。
補充:以下內(nèi)容針對羅技K系列藍牙,如k380這種可以對接多個藍牙設備的
這類設備有多個藍牙服務,但是mac地址只有一個
因此,如果不是默認連接的linux主機,則每次都需要重新去連接。也就是第一次配對成功之后,每次power on一下,然后scan on,然后鍵盤切換到對應的F2或者F3。具體原因我也不明白為什么。
如果是一對一的藍牙鍵盤,就不會出現(xiàn)這個問題。
運行hciconfig查看藍牙信息,
運行hcitool dev可以看到我們的藍牙設備的硬件地址
運行hcitoo --help 可以查看更多相關(guān)命令
然后我們激活它:sudo hciconfig hci0 up
然后我們開始掃描了:hcitool scan
運行rfcomm --help 可以查看用法
接著我們連接它:sudo cat /dev/rfcomm0
在Ubuntu或Mint下,一些版本的系統(tǒng)會出現(xiàn)藍牙成功配對耳機,但是音頻設置中不會出現(xiàn)藍牙耳機的輸出的選項
此時如果反復重連,重新配對等操作有機會正常連接上,但是一次成功,一旦斷開后就再也無可能再連接,問題會詭異地再出現(xiàn)。
簡單解決方法,系統(tǒng)缺少pulseaudio-bluetooth服務,安裝
$ sudo apt install pulseaudio-bluetooth -y
重啟pulseaudio服務
$ pulseaudio -k
重新連接你的藍牙耳機應該就能解決問題
或者你甚至不用安裝pulseaudio-bluetooth服務,安裝blueman
使用blueman取代系統(tǒng)的藍牙管理器來管理你的設備就可以了
一,藍牙存儲設備
藍牙適配器: ISSC芯片, USB接口(市面上還有其他的一些品牌,大多沒有問題)
藍牙手機:索愛T628
藍牙耳機:Jabra BT250(大陸地區(qū)型號是FS258,大概照顧中國人對BT的特殊理解和258的吉利數(shù)字)
1,加載藍牙適配器
插入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
默認的配置文件放在/etc/bluetooth目錄
hcid.conf和pin不需要修改,安全方式已經(jīng)被設置成auto,這是為了方便連接,用戶可以自己修改,推薦不做修改,以防止有些設備連接不上。
4,重啟bluetooth服務。
/etc/rc.d/init.d/bluetooth stop
/etc/rc.d/init.d/bluetooth start
5,掃描設備
運行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)建設備:
運行
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ù)不一定被支持,但是以防有些服務沒有被打開,所以,干脆全部打開了。
rfcomm bind /dev/rfcomm0 電話的地址 通道(在rfcomm.conf中配置)
這里的命令應該寫成:
rfcomm bind /dev/rfcomm0 00:01:EC:0C:D2:00 1
9,連接手機:
hcitool cc 電話的地址
也就是
hcitool cc 00:01:EC:0C:D2:00
這時候,可以看到手機上的藍牙連接呈聯(lián)通狀態(tài)。
10,從計算機發(fā)送文件:
obex-send abc.jpg
操作系統(tǒng)會彈出提示框,讓你選擇要發(fā)送的目標。
同時可以看到手機會彈出提示框,詢問是否接受文件。
11,手機的配置:
需要在手機上進行一下配置:
連接-藍牙-匹配裝置-添加裝置。
會自動掃描到PC上的適配器。
如果需要填入識別碼就填寫123。上面已經(jīng)設置了。
這時候,可以看到手機已經(jīng)成功的添加藍牙裝置。
12,從手機發(fā)送文件。
在PC機上啟動obex-server,會看到系統(tǒng)托盤出現(xiàn)一個小圖標。
完成上面的工作后,可以進入手機的:
多媒體-我的影集
選擇一張圖片。
然后,“發(fā)送”-“通過藍牙”
看到有剛才掃描到的藍牙適配器。
然后,就可以發(fā)送文件了。
13,使用軟件管理手機信息。
參考gnokii軟件的文檔
二、藍牙耳機。
1,同時按住jabra 250上面的“電話鍵”和“音量增大鍵”,大約8秒,看到藍燈常亮
1,掃描耳機,得到bdaddress
hcitool scan
3,配置工作:
modprobe snd_bt_sco
hciconfig hci0 void 0x0060
btsco bdaddress (這里的bdaddress就是掃描出來的結(jié)果)
btsco運行后,會彈出對話框,要求輸入耳機的pin,jabra 250為0000,可以在說明書上找到。
4,建立聯(lián)接后,設備被映射成/dev/dsp1。
以beep為例,
插件-輸出,選擇使用alsa驅(qū)動,點開“首選項”,音頻設置部分就可以看到btsco:hw0,1之類的信息,選擇這個即可。
然后播放一首歌,嘗試一下無線的快樂吧。
然后適當?shù)呐渲媚闼褂玫牟シ牌髦惖木涂梢粤恕?/p>
1,開啟手機藍牙
2,運行hcitool scan,找到自己的手機,記住藍牙地址
3,sdptool browser 并將輸出導入文件中。
4,找到sdptool輸出中的Service Name: Dial-up Networking
其中有Channel:記住這個數(shù)字,比如,我的是4.
5,編輯/etc/bluetooth/rfcomm.conf,填寫:
rfcomm0 {
bind yes;
device 藍牙地址;
channel 上面的rfcomm Channel;
comment "Phone Dun Connection";
}
6,重新啟動bluetooth服務,/etc/rc.d/init.d/bluetooth restart
###############配置kppp######################
7,配置kppp帳號
a,在主界面,點擊"配置"
b,在"帳戶"頁,點擊"新建",選擇"手工設置",會彈出一個對話框
c,在"撥號"頁,"連接名稱",隨便填寫,比如GPRS,然后點"添加",填入電話號碼"*99***1#"
d,點擊確定,完成配置。
8,配置"調(diào)制解調(diào)器"
a,切換到"調(diào)制解調(diào)器"頁,選擇"新建"
b,調(diào)制解調(diào)器名稱隨便填寫,比如Phone.
c,設備選擇為/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