# Remove conflicting builtin kernel module using yocto

Source: https://forum.modalai.com/topic/2397/remove-conflicting-builtin-kernel-module-using-yocto
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2023-07-11 16:13:18 UTC by liam
Replies: 0 · Views: 556

## liam · 2023-07-11 16:13:18 UTC

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](https://docs.modalai.com/voxl2-kernel-build-guide/) to rebuild and flash the kernel to the VOXL 2.

I have also tried using:
```shell
$ 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](https://docs.yoctoproject.org/2.5/kernel-dev/kernel-dev.html#configuring-the-kernel). 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.
```
