I’m failing to see what the problem is in your output. Can you make it more clearer what exactly the problem is?
Your first output you seem to suggest the solution to that was to manually install the module, and then you modprobe it and all looks fine. Then you list the systemctl output but I don’t see any problem there either.
Would be better for you to make it much clearer with a bit more detail into what exactly the problem is. Because I don’t see anything in what you posted so far.
The make is supposed to include performing the install. make detects the warning and bails out. BTF generation is adding some sort of debugging information which could be important to developers. The workaround worked for me but what I could find regarding the issue indicated that that might not always be the case. I’d rather flag something like this than ignore it because the workaround worked for me.
Hmm, usually when I’ve used make commands, you need to use make install after the make command. Maybe it’s different for kernel modules, I dunno.
But yeah you are right to flag it if the BTF message didn’t appear before. Although all it’s doing is skipping that part due to not finding vmlinuz for some reason.
Normally I would do a “sudo make install” as the next step after the make. Previous experience (other projects) has been that this won’t work unless the make completed successfully. That seems not to be the case with this particular problem. I tried doing a sudo make install after this failed make and it worked.
Traditionally the ‘install’ rule in makefile copies the “products” of build to somewhere where they are used. For normal applications that somewhere – the “prefix” – tends to be /user/local, so the install copies executables to /user/local/bin/ and so forth. Since only root can write to /user/local (by default), only root can copy there. The /lib/modules is likewise read-only for non-roots. (One can usually redefine the prefix with ./configure)
Preferably none of the build is done as root (but then one has to install by other means), and running make install as root is a compromise. Anyway, the default target (invoked by plain make) does not include the ‘install’ target (for normal applications – don’t know about kernel modules – the rules are in the Makefile). (It could, but I cannot recall any example.)