我正在使用 linux 3.3 在自定义系统上设置 BlueZ 协议(protocol)栈。我正在使用 buildroot 来设置文件系统,特别是我正在使用 BlueZ-4.101。
我正在尝试使用 hcidump
实用程序获取一些日志,但尚未安装二进制文件。
我检查过:
- 内核中安装了设备驱动
- 在 buildroot .config 文件中启用了 BlueZ Utils
- 其他实用程序工作,例如
hcitool
或hciconfig
进入 output/build/bluez_utils-4.101
中的 Makefile
似乎目标文件 hcidump.o
正在被编译成一个名为 btmon
的二进制文件。
进一步调查会发现,在Makefile
中,btmon
被赋值给am__EXEEXT_10
,然后被赋值给变量noinst_PROGRAMS
。
这就是我所在的位置。我很确定这是由 buildroot 自动生成的 Makefile
。我不确定这些文件是如何生成的,因此我不确定为什么将 btmon
分配给 noinst_PROGRAMS
变量。
总而言之,我相信我的 BlueZ 版本使用二进制 btmon
而不是 hcidump
。 btmon
已编译(二进制文件见于 output/build/bluez_utils-4.101/monitor/btmon
),但由于 Makefile 中的说明而未安装到我的目标系统上
。
我最好的猜测是我的内核版本和 bluez 之间的兼容性有些奇怪。任何建议将不胜感激!
最佳答案
在 BlueZ 4 中,hcidump 作为单独的包分发,bluez-hcidump
。但是,这从未打包在 buildroot 中。因此,要么为 bluez-hcidump
创建您自己的包,要么切换到 BlueZ 5。从 2014.08 开始,BleuZ 5 由 buildroot 提供。
关于linux - 找不到 hcidump 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35904781/