歡迎您光臨本站 註冊首頁

Ubuntu 藍牙全攻略

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

Ubuntu 的藍牙支持相信很多同學都在使用吧,插上就用,連個手機傳個文件啊什麼的非常方便。但是你有沒有想過壓榨出其更大的潛能呢?有沒有想過坐到電腦前,打開藍牙連上手機,戴上耳麥,直接就通過電腦來接打電話了呢?或者連上你的 iPod touch,音樂聲就從電腦的音箱中飄出了呢?當然,Windows 系統下有諸如 IVT 之類的商業驅動和配套軟體可以實現,而在 Linux 下呢?當然也是可以的,而且都是自由免費的哦!

下面就跟我來,壓榨下 Ubuntu 的潛能吧!我使用的是 Ubuntu 9.10,其他的版本沒有測試過,大家可以自己試試。另外先說明一點,Ubuntu 自帶的 gnome-bluetooth 工具不是很好用,而且後面設置藍牙立體聲支持的時候用 gnome-bluetooth 會非常的不方便,所以建議大家安裝使用 Blueman 這個管理工具。當然不要在新立德中直接安裝 Blueman,直接裝的話它不會替換 gnome-bluetooth,結果兩個衝突起來會很悲劇的…建議添加 Blueman 的 PPA 源

https://launchpad.net/~blueman/+archive/ppa  

然後安裝 Blueman 就好了,它會自動替換掉 gnome-bluetooth。然後建議也更新一下與藍牙有關的所有軟體包,經我測試,更新后的兼容性和性能都會更好一些。當然,如果你不想使用 Blueman,也是完全可以的,就是麻煩一些。後面我會詳細說明。

另外如果你是外置的 USB 藍牙適配器的話,插在電腦上開機可能會出現藍牙管理器無法管理的情況,解決的辦法就是拔了再插一下,或者終端中運行

sudo /etc/init.d/bluetooth restart  

來重啟藍牙服務即可。

首先讓我們來看如何把 Ubuntu 打造成一個藍牙免提設備。這裡就要請出我們的主角 - HFP for Linux 了。

HFP for Linux 是一個在 Linux 下提供藍牙 HFP(就是免提支持)的工具。看一眼主頁中的圖片大家就明白是怎麼回事了。


圖片1


下面我們就來編譯安裝。首先安裝編譯時需要的一些包

sudo apt-get install subversion g++ autoconf libtool libspeexdsp-dev libasound2-dev libbluetooth-dev libaudiofile-dev libdbus-1-dev  

然後用 svn 獲得源代碼

svn co https://nohands.svn.sourceforge.net/svnroot/nohands/trunk  

進入源代碼的文件夾下,就可以開始編譯安裝了。

./autogen.sh  ./configure  make  sudo make install  

編譯安裝完成。然後運行 hfconsole,一個撥號盤的界面就出現了。我們在裡面配對好手機,等界面上的信號和電量指示出現,就成功了!


圖片2

撥個電話試試?怎麼,電腦的喇叭中沒有聲音?別急,點右下角的設置按鈕,Audio device 選項卡,Driver 中換 OSS 試試。可以點下面的 Feedback test,如果能傳出話筒的聲音,那就正常了。如果 OSS 沒有彈出什麼錯誤提示,但是仍然沒有聲音怎麼辦啊?別急,首先到聲音設定程序中去,確定你的話筒設置好了么?打開錄音機程序,錄一段試試看?也可能是話筒音量太小了,運行 alsamixer,把 mic boost 調大些。至於 alsamixer 可能無法保存音量設置,下次開機就沒了,解決方法大家就自己 Google 下吧。不知道為什麼,我這兒只有 OSS 能用。但是 OSS 是獨佔音效卡的,所以,用的時候,把你的那些音樂播放器什麼的都退了吧……或者你也可以嘗試用 aoss 包裹一下,我就不多廢話了。

如果一切正常的話,我們就可以把手機扔一邊,用電腦來打電話了!如果你是強人,可以試試利用平板電腦啊上網本啊高級MP4啊什麼的打造一個自己的車載藍牙免提系統。折騰 Linux 真是其樂無窮啊~

~~~~~~~~~~~~~分割線~~~~~~~~~~~~~

接下來我們來開啟 Ubuntu 中的 A2DP audio source stream 支持。就是把電腦打造成一個立體聲藍牙耳機。

這裡有一個詳細的英文說明,洋文好且翻牆能力高的同學可以直接去看看~

進入正題。首先要確定你的系統中有 pulseaudio-module-bluetooth 模塊,沒有的話自行 apt-get 新立得安裝。然後載入模塊

pactl load-module module-bluetooth-discover  

Ubuntu 9.10 中好像默認就有這個模塊,而且是自動載入的,這部分就略過吧。

然後修改 /etc/bluetooth/audio.conf 文件,打開 audio source 支持。在

# If we want to disable support for specific services  # Defaults to supporting all implemented services  #Disable=Control,Source  

這幾行字下,加入一行

Enable=Source  

保存,關閉。重啟藍牙服務,就是 sudo /etc/init.d/bluetooth restart 了。

然後,如果你使用的是 Blueman 的話,效果就立竿見影了。重新搜索、配對一下你的手機啊什麼的,如果你的手機支持藍牙立體聲耳機的話,在你的設備列表上點右鍵,你就會看到 Connect to 下有 Audio source 的字樣。點上去連接,用手機放首音樂,怎麼樣,電腦的喇叭響起來了吧~下面是連接到我的 iPod touch 上的效果。


圖片3

圖片4


但是如果你實在不想用 Blueman,執意要用 Ubuntu 默認的藍牙管理器呢?好吧,也不是沒有辦法……首先你可能需要 d-feet 這個 d-bus 調試工具。apt-get 或新立得安裝。

在藍牙管理器中重新配對好你的設備,運行 d-feet,左側欄中點 org.bluez,右側找到和你的藍牙設備 mac 地址對應的項目,展開 org.bluez.AudioSource / Methods 項,雙擊 Connect(),如圖。

接下來出現一個框,點 execute。你可能需要多試幾次。然後打開聲音設置,看硬體一欄,是不是有個 A2DP 設備出來了?


圖片5

圖片6

藍牙 A2DP 流已經成功輸入到 Pulseaudio 中了,接下來你可以把這個選作輸入設備,然後錄一段音看看…但是如何讓聲音直接從喇叭中播放出來呢?讓你用 Blueman 來著,要不然會有這麼麻煩么…

打開 pacmd,進入 pulseaudio 控制台。用命令 list-sources 找到你藍牙設備對應的輸入源,注意 mac 地址,記下名字。然後用 list-sinks 找出你需要的輸出設備的名字。一般情況下只有一個,就是它了。然後用命令 load-module module-loopback source=<輸入源的名字> sink=<輸出設備的名字> 將其連接,這回出聲了吧!費這麼大勁,還是趕快換 Blueman 吧,都自動幫你做好了!

另外說一點,藍牙立體聲的音質可能不像你想象的那麼好,有點破音…可能是因為我用的是幾十塊的雜牌藍牙適配器的原因吧。另外,我的電腦的藍牙立體聲和黑莓手機的兼容極差,完全無法使用,不知道為什麼…

怎麼樣,一個小小的藍牙,我們就壓榨出了 Ubuntu 這麼多的潛能。還有,如果你是強人的話,可以試試用平板電腦啊上網本啊高級 MP4 啊什麼的打造一個自己的藍牙車載娛樂系統。怎麼樣,折騰 Linux 是不是其樂無窮啊~

本文作者:ivan_wl ( twitter: @ivan_wl )



[火星人 ] Ubuntu 藍牙全攻略已經有4725次圍觀

http://coctec.com/docs/linux/show-post-65882.html