问题描述
我正在尝试将基于 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
这很可能发生在自建的 Buildroot 或 Yocto 嵌入式 Linux 系统中。如果遇到此错误,则应启用上述选项并重新编译内核。
在此处查看 BlueZ 要求:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/README#n64
要查看 BlueZ 的详细调试输出,请使用 -d
选项运行它:
bluetoothd -d