Am besten verwenden Sie tatsächlich das Makefile des Kernels, um das Modul zu installieren:
Hier sind Snippets, die Sie Ihrem Makefile hinzufügen können
ganz oben hinzufügen:
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
am Ende hinzufügen:
install:
$(MAKE) -C $(KERNEL_BUILD) M=$(PWD) \
INSTALL_MOD_PATH=$(INSTALL_ROOT) modules_install
und dann können Sie
ausgeben sudo make install
dadurch wird es entweder in /lib/modules/$(uname -r)/extra/
abgelegtoder /lib/modules/$(uname -r)/misc/
und führen Sie depmod entsprechend aus
Ich denke, es sollte einen Eintrag Ihres your_module.ko in /lib/modules/uname -r
geben /modules.dep und in /lib/modules/uname -r
/modules.dep.bin, damit der Befehl „modprobe your_module“ funktioniert
Versuchen Sie es mit insmod
statt modprobe. Modprobe sieht im Modulverzeichnis /lib/modules/uname -r
aus für alle Module und andere Dateien
Der Grund ist, dass modprobe
schaut in /lib/modules/$(uname -r)
für die Module und funktioniert daher nicht mit dem lokalen Dateipfad. Das ist einer der Unterschiede zwischen modprobe
und insmod
.