使用树莓派,开启他的A2DP功能,实现用手机蓝牙控制树莓派播放歌曲。主要操作过程参考http://wangye.org/blog/archives/921/以及英文博客http://www.instructables.com/id/Turn-your-Raspberry-Pi-into-a-Portable-Bluetooth-A/
本机机型:树莓派2model B
蓝牙适配器 4.0版本(iphone和android机均可以用)
2.0版本(iphone不能使用,android可以,苹果的就是傲娇)
开机进入图形界面
在开始提解决方法时,重要的是看会看log!本次我们需要关心的是:/var/log/syslog和/var/log/bluetoth_dev
主要在前面两个博文上根据自己的需求提出的改进:
raspberrypi pulseaudio[2563]: [pulseaudio]protocol-native.c: Denied access to client with invalid authorization data.
看到网上的解决方案说:
关于shairport使用声音服务AccessDenied的问题,你将运行shairport进程的用户加入pulse-access组就可以了。
来自 <http://wangye.org/blog/archives/922/>
所以我做的操作是:
sudo usermod -a -Gpulse-access pi
sudo usermod -a -G pulse-access root(我自己在使用过程中都是切换到root身份)
名字修改没有问题,主要是属性修改,在/etc/bluetooth/main.config中是不会出现问题的,但是在
/var/lib/bluetooth/<你的蓝牙MAC地址>/config下,修改后每次开机都会产生变化为
Class 0x4e041c 所以,这里需要我们再修改main.config文件下的class=0x4e041c。
并没有发现99-input.rules文件,于是就在相应的路径新建了一个文件
vim /etc/udev/rules.d/99-input.rules
内容为:
SUBSYSTEM=="input",GROUP="input", MODE="0660"
KERNEL=="input[0-9]*",RUN+="/usr/lib/udev/bluetooth"
查看系统log,说的是大概是无法开启/usr/lib/udev/bluetooth里面的sink,也是看到网上的解决方法:
2° output audio doesn't work
in this file: /usr/lib/udev/bluetooth :
Replace this line:
AUDIOSINK="alsa_output.platform-bcm2835_AUD0.0.analog-stereo"
With this:
AUDIOSINK="alsa_output.0.analog-stereo"
来自 <http://www.instructables.com/id/Turn-your-Raspberry-Pi-into-a-Portable-Bluetooth-A/?ALLSTEPS>
替换后就有了!
解决办法也是参考他人的
在debian6中使用update-rc.d会报错,如下:
update-rc.d: usingdependency based boot sequencing
可以使用 insserv 命令来代替 update-rc.d
来自 <http://www.cnblogs.com/ac1985482/p/4046355.html>
所以使用insserv -d bluetooth-agent代替原句!
现在记不清具体是什么错误了,我做的处理是
[warn] PulseAudio configured for per-user sessions ... (warning).
Debian变种版本也会在启动过程中弹出类似的警告信息。为了解决这个问题,键入下面这个命令:leafpad /etc/default/pulseaudio
找到这一行:PULSEAUDIO_SYSTEM_START=0
把0换成1:
PULSEAUDIO_SYSTEM_START=1
其中,0表示系统模式下不启动PulseAudio,1表示系统模式下启动PulseAudio。
来自 <http://blog.csdn.net/frank_good/article/details/40424221>
其他的都是参照那两篇博文做的操作。
出了问题一定记得看log!
另外搜不到搜不到蓝牙的时候尝试操作sudo hciconfig hci0 piscan
搜到蓝牙连接不上,尝试sudo start-stop-daemon -S -x/usr/bin/bluetooth-agent -c pi -b -- 0000
再不行就重启试试吧。
最后附上我写的一个简单的脚本操作,再装完系统后,为root创建密码,将需要的文件拷到用户目录。再就是在目录下执行
chmod 777 bluetooth.sh
./bluetooth.sh
最后重启一下!
#!/bin/bash
echo"==============================================================================="
echo "使用华中科技大学的源"
sudo cp -f~/bluetooth/sources.list /etc/apt/sources.list
echo "bluetoothconfig!"
echo "installapt"
sudoapt-get update -y #更新源列表
sudoapt-get upgrade -y #升级系统软件
echo"=============================installvim========================================"
sudo apt-get install-y vim
sudo cp -f~/bluetooth/.vimrc /root/.vimrc
sudo apt-get install-y bluetooth bluez pulseaudio-module-bluetooth python-gobject python-gobject-2bluez-tools
echo "配置安装的软件"
echo "============================配置分组规则======================================="
sudo usermod -a -Glp pi
sudo usermod -a -Gpulse-access pi
sudo usermod -a -Gpulse-access root
echo "=========================蓝牙启用A2DP功能======================================"
sudo cp -f~/bluetooth/audio.conf /etc/bluetooth/audio.conf
sudo cp -f~/bluetooth/daemon.conf /etc/pulse/daemon.conf
echo "============================修改名字==========================================="
sudo cp -f~/bluetooth/main.conf /etc/bluetooth/main.conf
echo "修改设备里面的名字的方法还有确定这里预留待"
bluetoothMac=$(ls/var/lib/bluetooth/)
sudo cp -f~/bluetooth/config /var/lib/bluetooth/*/config
echo "=============================配置蓝牙接入======================================"
sudo cp -f~/bluetooth/99-input.rules /etc/udev/rules.d/99-input.rules
sudo mkdir/usr/lib/udev
sudo cp -f~/bluetooth/bluetooth /usr/lib/udev/bluetooth
sudo chmod 774/usr/lib/udev/bluetooth
echo "===========================开启蓝牙自动发现功能================================"
sudo cp -f~/bluetooth/bluetooth-agent /etc/init.d/bluetooth-agent
sudo chmod 755/etc/init.d/bluetooth-agent
sudo insserv -dbluetooth-agent
echo "===========================命令行以pi来登陆===================================="
sudo cp -f~/bluetooth/inittab /etc/inittab
sudo cp -f~/bluetooth/pulseaudio /etc/default/pulseaudio
echo "===========================开启蓝牙自发现======================================"
sudo hciconfig hci0piscan
sudostart-stop-daemon -S -x /usr/bin/bluetooth-agent -c pi -b -- 0000
所有配置文件下载连接