NRF52840 上的 HCI_UART,将设备连接到基于 Yocto 的 Linux SBC 错误提示“无法初始化设备 hci0:无法分配请求的地址 (99)”

问题描述

我正在尝试将基于 Nordic 的 nrf52840 的 BLE 模块连接到基于 Yocto 的 SBC,所有 BlueZ 相关软件包都已添加到该模块中。

我已将 Zephyr 的示例 hci_uart 程序写入模块。该模块似乎在我的 Linux PC(BlueZ 版本 5.48)上完美运行,而在 SBC(BlueZ 版本 5.54)上却无法启动。这是我使用时出现的错误

root@rb-imx6:~# hciconfig hci0 up

root@rb-imx6:~# Can't init device hci0: Cannot assign requested address (99)

有人可以帮我解决这个问题吗?

提前致谢。

解决方法

分配地址错误是由于缺少Linux内核配置选项:

CONFIG_CRYPTO_USER
CONFIG_CRYPTO_USER_API
CONFIG_CRYPTO_USER_API_AEAD
CONFIG_CRYPTO_USER_API_HASH

CONFIG_CRYPTO_AES
CONFIG_CRYPTO_CCM
CONFIG_CRYPTO_AEAD
CONFIG_CRYPTO_CMAC

这很可能发生在自建的 BuildrootYocto 嵌入式 Linux 系统中。如果遇到此错误,则应启用上述选项并重新编译内核。

在此处查看 BlueZ 要求:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/README#n64

要查看 BlueZ 的详细调试输出,请使用 -d 选项运行它:

bluetoothd -d

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...