Я хотел собрать OpenWrt по этому руководству:
https://devzone.nordicsemi.com/blogs/663/6lowpan-for-bluetooth-low-energy-on-openwrt/
Однако во время компиляции я получаю следующую ошибку: ERROR: отсутствует модуль '/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'.
Я пробовал использовать menuconfig, но btusb не появляется в закладке Kernel modules -> USB Support или Kernel modules -> Other modules.
В каталоге /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 и не знаю, как правильно решить мою проблему. Могу ли я просто вручную скомпилировать этот один файл?
Ядро Linux имеет файл конфигурации сборки, который позволяет вам выбирать функции, которые вам нужны, а какие нет. Вам нужно выбрать эту функцию.
Из корня исходного дерева вы можете:
# make menuconfig
На этом этапе вы можете ввести /
, затем CONFIG_BT_HCIBTUSB
и нажать Enter. Вы должны увидеть что-то вроде:
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)
Теперь, когда вы выйдете из инструмента конфигурации и перестроите ядро, эта дополнительная функция будет включена в сборку.