Thanks, I've managed to use linux-module-build-system to build the module, and I got the output /gnu/store/...my-module-0.0.1/extra/xxx.ko. I can load the module via insmod with the full path.
Now I want to load the module via modprobe, instead of specifying the full path. For that, I need to place the .ko file in the modprobe search directory. I notice that in gnu/packages/patches/kmod-module-directory.patch, the modprobe is modified to honor the LINUX_MODULE_DIRECTORY env variable, which is set to /run/booted-system/kernel/lib/modules. However, /run/booted-system/kernel/ is symlink to /gnu/store/9rq5y83c9y1kplv6r7a2vksswyjzs57k-linux-libre-5.2.13, which is read-only. Further, it seems that modprobe can only scan exactly *one* directory, be it from the LINUX_MODULE_DIRECTORY env variable, or the original hard coded "/lib/modules/" So my question is, is it possible to let modprobe be aware of my external module? Hebi