2017-06-14 434 views
0

我试图让蓝牙树莓派工作3 我使用的buildroot有: 1的bluez 5.45(改包装,以获得最新) 2 。不使用systemd,但我运行bluetoothd bluez脚本用于systemd 3.在buildroot中,启用bt固件。 4.我可以看到hci_uart.ko文件和蓝牙固件hcd文件 5.我从cmdline中删除了控制台= ttyAMA0,115200 6.in为busybox添加rfkill,但我只看到wifi而不是蓝牙。bcm43xx_init初始化超时与buildroot的树莓派3 hciattach

运行:

hciattach的/ dev/ttyAMA0 bcm43xx 921600非流动性 - 输出表明: bcm43xx_init 初始化超时

试图115200,是相同的。

注: 1.当使用的bluez 3我收到无效ID 2.我读了它以某种方式与bluez的版本,所以我没有把最新的

上述所有被带到深搜索后, 那么我在这里想念什么? 我怎样才能让蓝牙开始在我的树莓派3 与buildroot作为图像创作者运行。 谢谢大家!

回答

2

正如描述的提交将固件,你不幸需要修补bluez5_utils获得固件的工作:

https://git.buildroot.net/buildroot/commit/?id=1f94f1aaab2e786542a83327358570a828d68f45

+0

我正在使用buildroot 05.2017,所以这个补丁已经存在了(我遵循代码并确保),但没有创建到/ etc/firmware的链接,所以我在raspi中手动创建了它。但仍然我得到时间 – user1820451

+0

我正在使用busybox init而不是systemd(可能是这个问题?),因为bluez脚本使用systemd。 – user1820451

+0

即使您使用的是Buildroot 2017.05,bluez5_utils仍未使用上述提交中提到的补丁修补。 (丑)修补程序见https://www.spinics.net/lists/linux-bluetooth/msg69470.html。 –

1

的主要问题是,buildroot的添加PI3-miniuart-BT覆盖在config.txt中为 。 删除它,我们需要删除,如果从post-image.sh脚本作为参数上述脚本。 在树莓派3中,ttyAMA0被分配给蓝牙,pi3-miniuart-bt将其恢复为串行通信端口,从而再次断开蓝牙。

总结buildroot中的步骤。 1.添加蓝牙固件。 2.添加bluez 5 utils。 3.将软件包从bluez 5.44更改为5.45 4.添加上面的睡眠。 (删除的bluez的.stamp_build再次构建它) 5.移除的/ dev/ttyAMA0从的Cmdline.txt毕竟

插入,检查目标(PI3) 1. BCM4343 HCD固件 2 。hci_uart.ko应该在那里

hci_uart不运行在busybox init的情况下(只在systemd) 所以只需modprobe hci_uart。运行lsmod以查看它正在运行。

要启动该服务,并加载固件,它正在使用hciattach完成: hciattach的/ dev/ttyAMA0 bcm43xx 921600非流动性 -

启动bluetoothd守护进程 的/ usr/libexec目录/蓝牙/ bluetoothd &

启动蓝牙硬件 使用bluetoothctl(开机和代理) 一旦完成,你应该看到它使用hcitool开发。

同样,如果您不删除叠加层,您将会超时。

就是这样。现在应该看到hci设备。 1. rfkill表(从busybox的-menuconfig的安装) 2. hciconfig -a

上述步骤并没有得到控制台正常工作在PI3但是这是一个不同的故事: 您可以用它看。