# Linux Kernel Module Cheat

### 12.3. modprobe

Implemented as a BusyBox applet by default: https://git.busybox.net/busybox/tree/modutils/modprobe.c?h=1_29_stable

`modprobe` searches for modules installed under:

    ls /lib/modules/<kernel_version>

and specified in the `modules.order` file.

This is the default install path for `CONFIG_SOME_MOD=m` modules built with `make modules_install` in the Linux kernel tree, with root path given by `INSTALL_MOD_PATH`, and therefore canonical in that sense.

Currently, there are only two kinds of kernel modules that you can try out with `modprobe`:

- modules built with Buildroot, see: Section 38.15.2.1, “kernel_modules buildroot package”

- modules built from the kernel tree itself, see: Section 17.11.2, “dummy-irq”

We are not installing out custom `./build-modules` modules there, because:

- we don’t know the right way. Why is there no `install` or `install_modules` target for kernel modules?

  This can of course be solved by running Buildroot in verbose mode, and copying whatever it is doing, initial exploration at: https://stackoverflow.com/questions/22783793/how-to-install-kernel-modules-from-source-code-error-while-make-process/53169078#53169078

- we would have to think how to not have to include the kernel modules twice in the root filesystem, but still have 9P working for fast development as described at: Section 2.2.2.2, “Your first kernel module hack”