我想按照本教程构建 OpenWrt:
https://devzone.nordicsemi.com/blogs/663/6lowpan-for-bluetooth-low-energy-on-openwrt/
但是在编译过程中我收到以下错误:ERROR: module '/home/mkru/Desktop/lowpan/openwrt/build_dir/target-mipsel_mips32_musl-1.1.14/linux-brcm47xx_generic/linux-3.18.29/drivers/bluetooth/btusb.ko' is missing.
我尝试过使用 menuconfig,但 btusb 没有出现在内核模块 -> USB 支持或内核模块 -> 其他模块选项卡中。
在目录中/home/mkru/Desktop/lowpan/openwrt/build_dir/target-mipsel_mips32_musl-1.1.14/linux-brcm47xx_generic/linux-3.18.29/drivers/bluetooth/
我可以找到文件 btusb.c 但看起来它在构建过程中没有编译到 btusb.ko 中。
我不熟悉所有 Linux 内核构建问题,也不知道如何以正确的方式解决我的问题。我可以手动编译这个文件吗?
答案1
Linux 内核有一个构建配置文件,使您能够选择您想要和不想要的功能。您需要选择该功能。
如果您的源树从根开始,您可以执行以下操作:
# make menuconfig
此时,您可以输入/
并按CONFIG_BT_HCIBTUSB
回车键。您应该会看到类似以下内容的内容:
Symbol: BT_HCIBTUSB [=n]
Type : tristate
Prompt: HCI USB driver
Location:
-> Networking support (NET [=y])
(1) -> Bluetooth subsystem support (BT [=n])
-> Bluetooth device drivers
Defined at drivers/bluetooth/Kconfig:21
Depends on: NET [=y] && BT [=n] && USB [=y]
Selects: BT_INTEL [=n]
此时,按下1
将带您进入标记为的配置选项(1)
:
< > HCI USB driver (NEW)
按一次空格键将其配置为构建为模块。第二次按空格键将选择将其内置到内核映像中:
<*> HCI USB driver (NEW)
现在,当您退出配置工具并重建内核时,该可选功能将包含在构建中。