Remove conflicting builtin kernel module using yocto
-
I am trying to install a new version of an ASIX usb driver on a development board. Unfortunately, the old version of the driver is built-in to the kernel.
Now I am trying to recompile the kernel without the offending builtin driver. I'm using
yocto, but I don't know what the best way is to figure out exactly where that driver is coming from, and remove it from the build.Before trying to rebuild the kernel, I installed a new version of the driver as a loadable module, but was unable to load and bind the device to it because the builtin module had taken the name
asixalready.I tried recompiling the driver with a new name
asix_newand using audevrule to disconnect the relevant device from the old builtinasixdriver and connecting it to theaxix_newloadable driver. This didn't work for more hazy reasons. My best guess is that the device didn't like being disconnected, but I can't tell for sure.I am following the instructions on the docs to rebuild and flash the kernel to the VOXL 2.
I have also tried using:
$ bitbake linux-msm -c menuconfig $ bitbake linux-msm -c diffconfigthen deselecting what I believe are the only two USB ethernet dongle drivers from Asix (
CONFIG_USB_NET_AX8817XandCONFIG_USB_NET_AX88179_17A), moving the resulting.cfgfile intometa-voxl2-bsp/recipes-kernel/linux-msm/files/fragments/then adding that file to themeta-voxl2-bsp/recipes-kernel/linux-msm/linux-msm_4.19.bbappendfile as described in the yocto docs. But when I rebuild the project and flash it to the board, I still get the error thatasixis builtin:$ modprobe -r asix modprobe: FATAL: Module asix is builtin.I'll also add that
modinfoprovides no information here:$ modinfo asix modinfo: ERROR: Module asix not found.