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
asix
already.I tried recompiling the driver with a new name
asix_new
and using audev
rule to disconnect the relevant device from the old builtinasix
driver and connecting it to theaxix_new
loadable 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 diffconfig
then deselecting what I believe are the only two USB ethernet dongle drivers from Asix (
CONFIG_USB_NET_AX8817X
andCONFIG_USB_NET_AX88179_17A
), moving the resulting.cfg
file 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.bbappend
file as described in the yocto docs. But when I rebuild the project and flash it to the board, I still get the error thatasix
is builtin:$ modprobe -r asix modprobe: FATAL: Module asix is builtin.
I'll also add that
modinfo
provides no information here:$ modinfo asix modinfo: ERROR: Module asix not found.