USB Bluetooth driver not added to Linux kernel after bitbake -c menuconfig

Showing results for 
Search instead for 
Did you mean: 

USB Bluetooth driver not added to Linux kernel after bitbake -c menuconfig

Contributor III


I would like to add the generic USB Bluetooth driver "btusb" to my MCIMX6Q-SDB board, so that I can use my Cambridge Silicon Radio USB bluetooth dongle. Taking hints from these  guides  Building Linux Kernel, Task #4 - Deploy and test,  and  Yocto Project Linux Kernel Development Manual, I did the following steps to add the said driver:

1) I ran the "bitbake -c menuconfig linux-imx"

2) The kernel configuration menu appeared, and I marked as "Y" the  following options:

     Bluetooth subsystem support

     RFCOMM protocol support

     RFCOMM TTY support

     BNEP Protocol support  

     Multicast filter support

     PRotocol filter support

     HIDP support

     HCI USB driver

     HCI UART driber

     HCI BCM203x USB driver

     HCI BPA10X USB driver

3) I saved the changes I made, and copied the resulting .config file to the recipe folder in tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/  to /sources/meta-fsl-bsp-release/imx/meta-fsl-arm/recipes-kernel/linux, and renamed the .config file to defconfig

4) I made a folder called "files" and placed defconfig there. Going back to recipes-kernel/linux folder, I made a .bbappend file called linux-imx_3.10.17.bbappend, which contained the following:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

SRC_URI += "file://defconfig"

5) I ran the command "bitbake-c cleansstate linux-imx"

6) After that I ran bitbake fsl-image-x11, I did not run bitbake linux-imx, since I believe linux-imx gets bitbaked also via fsl-image-x11

7) I flashed the resulting .sdcard to my SD card

Upon inspecting the target filesystem after flashing, there was no btusb.ko found inside the driver folder. I tried running bitbake menuconfig again, and after steps replacing the old defconfig with a new one, I proceeded straight to bitbake fsl-image-x11 without running cleansstate, but still the drivers were not added afterwards. I again made changes to the kernel configuration and ran "bitbake -f -c compile" and "bitbake -f -c deploy", and afterwards, I copied the resulting uImage to my SD card's /media/Boot folder, but I still didn't find btusb.ko in the target filesystem.

In the tmp/deploy/images directory, the tar archive for the modules contained two files called modules.order and modules.builtin. The modules.builtin file contains the .ko files related to bluetooth, but on the modules.order file, only a limited number of drivers were present. It seems that the drivers listed on modules.order are the only ones that will appear on the target filesystem. I tried to built the drivers into modules instead of drivers, but the modules where nowhere to be seen after configuration. What is going on here?

Can anyone help me with this? I am very new to Linux and to the Yocto Project, so any help would be appreciated.


Labels (4)
0 Kudos
1 Reply

Senior Contributor III



I suggest you do following. Build kernel and modules separately.

make imx_v7a_defconfig ARCH=arm CROSS_COMPILE=/opt/poky/1.5.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -j16 uImage LOADADDR=0x10008000

make imx_v7a_defconfig ARCH=arm CROSS_COMPILE=/opt/poky/1.5.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -j16 modules

make imx_v7a_defconfig ARCH=arm CROSS_COMPILE=/opt/poky/1.5.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -j16 modules_install INSTALL_MOD_PATH=~/module/

Your modules will build and copied to ~/module/

Copy those files to your board /lib/modules/.



0 Kudos