Hello,
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 linux-imx_3.10.17.bb 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.
Thanks
Hi
Alvin
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/.
Thanks
Saurabh