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 a udev rule to disconnect the relevant device from the old builtin asix driver and connecting it to the axix_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 and CONFIG_USB_NET_AX88179_17A), moving the resulting .cfg file into meta-voxl2-bsp/recipes-kernel/linux-msm/files/fragments/ then adding that file to the meta-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 that asix 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.