bluetooth - bcm43xx_init buildroot raspberry pi 3 hciattach 初始化超时

标签 bluetooth raspberry-pi3 bluez buildroot

我正在尝试让蓝牙在 Raspberry Pi 3 中工作。

我正在使用 buildroot:

  1. BlueZ 5.45(更改软件包以获取最新版本)
  2. 不使用 systemd,但我运行 bluetoothd 因为 bluez 脚本适用于 systemd。
  3. 在 buildroot 中我启用了 bt 固件。
  4. 我可以看到 hci_uart.ko 文件和蓝牙固件 hcd 文件
  5. 我从 cmdline.txt 中删除了 console=ttyAMA0,115200
  6. 我为busybox添加了rfkill,但我只看到了wifi接口(interface),没有蓝牙接口(interface)。

运行:

hciattach /dev/ttyAMA0 bcm43xx 921600 noflow -

输出显示:

bcm43xx_init
Initialization timed out

试过115200,一样。

注释:

  1. 使用 BlueZ 3 时,我收到无效 ID
  2. 我读到它与 BlueZ 版本有某种关系,所以我确实采用了最新的

以上都是经过深度搜索后拍摄的。

那么我在这里缺少什么?

如何让蓝牙在我的 Raspberry Pi 3 中开始运行 使用 buildroot 作为图像创建者?

谢谢大家!

最佳答案

主要问题是buildroot添加了pi3-miniuart-bt覆盖 在config.txt中。

要删除它,我们需要从 post-image.sh 脚本中删除 if 作为上述脚本的参数。

在树莓派 3 中,ttyAMA0 被分配给蓝牙,pi3-miniuart-bt 将其恢复为串行 com 端口,这会再次断开蓝牙连接。

总结 buildroot 中的步骤。

  1. 添加蓝牙固件。
  2. 添加 bluez 5 实用程序。
  3. 将软件包从 bluez 5.44 更改为 5.45
  4. 添加上面的 sleep 。 (删除bluez中的.stamp_build重新构建)
  5. 从 cmdline.txt 中删除 /dev/ttyAMA0

构建后,检查目标(pi3)

  1. BCM4343 hcd 固件
  2. hci_uart.ko 应该在那里

在 busybox init 的情况下,hci_uart 不会运行(仅在 systemd 中) 所以只是modprobe hci_uart。运行 lsmod 来查看它是否正在运行。

要启动服务并加载固件,请使用 hciattach:

hciattach /dev/ttyAMA0 bcm43xx 921600 noflow -

启动蓝牙守护进程:

/usr/libexec/bluetooth/bluetoothd &

使用bluetoothctl启动蓝牙硬件(开机并打开代理)。 现在您应该使用 hcitool dev 看到它。

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

那个。现在应该可以看到 hci 设备。 你可以使用以下命令查看它:

  1. rfkill list(从 busybox-menuconfig 安装)
  2. hciconfig -a

上述步骤无法使控制台在 Pi 3 上正常工作,但这是一个不同的故事。

关于bluetooth - bcm43xx_init buildroot raspberry pi 3 hciattach 初始化超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554255/

相关文章:

python - 为什么我的长时间运行的 python 脚本在运行大约 3 天后崩溃了 "invalid pointer"?

python - 如何在 RaspBerry Pi 3 (Raspbian (Debian)) 中自动启动 python 脚本?

python - Raspberry Pi 连接到 Firebase

Python正确有效地获取DBUS对象路径(例如/org/bluez/dev_XX_XX_XX_XX_XX_XX/playerY)

raspberry-pi - Raspberry Pi iBeacon连接超时

ios - iOS 应用程序可以从任何蓝牙设备接收数据吗?

android - 如何将 IBluetoothA2dp.aidl 接口(interface)添加到我的项目中?

ios - 在iPhone上以编程方式打开蓝牙

android - 是否可以将多个 BT 耳机与 Android 设备配对并向它们传输声音?

linux - 在Linux上设置蓝牙自动配对