La cosa migliore è usare effettivamente il makefile del kernel per installare il modulo:
Ecco alcuni snippet da aggiungere al tuo Makefile
in alto aggiungi:
PWD=$(shell pwd)
VER=$(shell uname -r)
KERNEL_BUILD=/lib/modules/$(VER)/build
# Later if you want to package the module binary you can provide an INSTALL_ROOT
# INSTALL_ROOT=/tmp/install-root
verso la fine aggiungi:
install:
$(MAKE) -C $(KERNEL_BUILD) M=$(PWD) \
INSTALL_MOD_PATH=$(INSTALL_ROOT) modules_install
e quindi puoi emettere
sudo make install
questo lo inserirà in /lib/modules/$(uname -r)/extra/
o /lib/modules/$(uname -r)/misc/
ed esegui depmod in modo appropriato
penso che dovrebbe esserci la voce del tuo tuo_modulo.ko in /lib/modules/uname -r
/modules.dep e in /lib/modules/uname -r
/modules.dep.bin affinché il comando "modprobe tuo_modulo" funzioni
Prova insmod
invece di modprobe. Modprobe cerca nella directory del modulo /lib/modules/uname -r
per tutti i moduli e altri file
Il motivo è che modprobe
esamina /lib/modules/$(uname -r)
per i moduli e quindi non funzionerà con il percorso del file locale. Questa è una delle differenze tra modprobe
e insmod
.