gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:45:34 24 4
gpt4 key购买 nike

我正在尝试让蓝牙在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com