zoukankan      html  css  js  c++  java
  • Ubuntu 蓝牙全攻略

    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(就是免提支持)的工具。看一眼主页中的图片大家就明白是怎么回事了。

    Ubuntu 蓝牙全攻略
    图片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,一个拨号盘的界面就出现了。我们在里面配对好手机,等界面上的信号和电量指示出现,就成功了!

    Ubuntu 蓝牙全攻略
    图片2

    拨个电话试试?怎么,电脑的喇叭中没有声音?别急,点右下角的设置按钮,Audio device 选项卡,Driver 中换 OSS 试试。可以点下面的 Feedback test,如果能传出话筒的声音,那就正常了。如果 OSS 没有弹出什么错误提示,但是仍然没有声音怎么办啊?别急,首先到声音设定程序中去,确定你的话筒设置好了么?打开录音机程序,录一段试试看?也可能是话筒音量太小了,运行 alsamixer,把 mic boost 调大些。至于 alsamixer 可能无法保存音量设置,下次开机就没了,解决方法大家就自己 Google 下吧。不知道为什么,我这儿只有 OSS 能用。但是 OSS 是独占声卡的,所以,用的时候,把你的那些音乐播放器什么的都退了吧……或者你也可以尝试用 aoss 包裹一下,我就不多废话了。

    如果一切正常的话,我们就可以把手机扔一边,用电脑来打电话了!如果你是强人,可以试试利用平板电脑啊上网本啊高级MP4啊什么的打造一个自己的车载蓝牙免提系统。折腾 Linux 真是其乐无穷啊~

    ~~~~~~~~~~~~~分割线~~~~~~~~~~~~~

    接下来我们来开启 Ubuntu 中的 A2DP audio source stream 支持。就是把电脑打造成一个立体声蓝牙耳机。

    这里有一个详细的英文说明,洋文好且FQ能力高的同学可以直接去看看~

    进入正题。首先要确定你的系统中有 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 上的效果。

    Ubuntu 蓝牙全攻略
    图片3

    Ubuntu 蓝牙全攻略
    图片4


    但是如果你实在不想用 Blueman,执意要用 Ubuntu 默认的蓝牙管理器呢?好吧,也不是没有办法……首先你可能需要 d-feet 这个 d-bus 调试工具。apt-get 或新立得安装。

    在蓝牙管理器中重新配对好你的设备,运行 d-feet,左侧栏中点 org.bluez,右侧找到和你的蓝牙设备 mac 地址对应的项目,展开 org.bluez.AudioSource / Methods 项,双击 Connect(),如图。

    接下来出现一个框,点 execute。你可能需要多试几次。然后打开声音设置,看硬件一栏,是不是有个 A2DP 设备出来了?

    Ubuntu 蓝牙全攻略
    图片5
    Ubuntu 蓝牙全攻略
    图片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 )

  • 相关阅读:
    NanoProfiler
    NanoProfiler
    Open Source Cassandra Gitbook for Developer
    Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
    Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
    Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
    Android Fragment使用(一) 基础篇 温故知新
    Set up Github Pages with Hexo, migrating from Jekyll
    EventBus源码解析 源码阅读记录
    Android M Permission 运行时权限 学习笔记
  • 原文地址:https://www.cnblogs.com/top5/p/1699272.html
Copyright © 2011-2022 走看看