蓝牙功能调试
1 内核配置
2 文件系统配置 (buildroot)
支持:pulseaudio-bluetooth 库 解决connect失败问题
启动bluetoothd 服务
/usr/libexec/bluetooth/bluetoothd -d -C -n &
启动Pulseaudio 服务
pulseaudio --system -vvvvvvvvvv (调试使用,可以看到运行的信息)
后台执行:
pulseaudio -D --exit-idle-time=-1 --start --log-target=file:/tmp/pulse.log
main.c: Failed to find user 'pulse'.
执行一下命令:
mkdir home
adduser --system pulse
addgroup --system pulse-access
chown -R pulse:pulse /etc/pulse/
/etc/passwd 文件的每一行都代表一个用户账号,其格式如下:
username:password:uid:gid:comment:home_dir:shell
修改后有如下报错:
I: [pulseaudio] main.c: Found user 'pulse' (UID 100) and group 'pulse' (GID 1003).
E: [pulseaudio] main.c: GID of user 'pulse' and of group 'pulse' don't match.
参照dbus 修改 etc/passwd he etc/group 两个文件
问题2:
main.c: Failed to acquire org.pulseaudio.Server: org.freedesktop.DBus.Error.AccessDenied: Connection ":1.9" is not allowed to own the service "org.pulseaudio.Server" due to security policies in the configuration file
解决办法:
需 要 在
/etc/dbus-1/system.d/pulseaudio-system.conf ( 此 文 件 来 之 于 <pulseaudio-x.y>/src/daemon/
pulseaudio-system.conf)中添加如下内容。如果以普通用户运行 pulseaudio,在这个文件中为
普通用户添加一个 policy,内容和 root 用户类似。
具体修改可以参考如下连接:
bluez5.50+pulseaudio实现蓝牙音响音频播放-阿里云开发者社区 (aliyun.com)
问题记录:
root@starcharge:/ubi/local# ./hciconfig hci0 up
Can't open HCI socket.: Address family not supported by protocol
报错原因是内核没有配置蓝牙
Bluetoothd服务端的错误打印
a2dp-source profile connect failed for 6C:70:9F:7E:EF:A8: Protocol not available
原因:
a2dp 全名Advanced Audio Distribution Profile,大概因为手机默认会使用这种音频传输,
解决方法 安装音频包 pulseaudio-bluetooth 。