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.