Am un modul linux simplu pe care vreau să-l construiesc și să-l inserez în nucleu, dar am niște probleme în partea „sudo insmod <module_name>”.
Ubuntu rulează pe o gazdă Win10 prin VirtualBox.
Alți doi prieteni au făcut aceiași pași și le-a funcționat.
Unul are versiunea de kernel 5.11.0-40, în timp ce celălalt are aceeași ca mine, 5.11.0-41.
Modulul „linux_module.c” arată astfel:
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
__init int init_module(void)
{
printk (KERN_INFO "Bună lume din modulul linux\n");
întoarce 0;
}
__exit void cleanup_module(void)
{
}
Makefile:
obj-m =
obj-m += linux_module.o
KVERSIUNE = $(shell uname -r)
modulele toate:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) module
curat:
face -C /lib/modules/$(KVERSION)/build M=$(PWD) curat
Folosind „make all” îmi returnează:
make -C /lib/modules/5.11.0-41-generic/build M=/home/soberflow/Documents/BS/KernelModule/LinuxModule module
make[1]: se introduce în directorul „/usr/src/linux-headers-5.11.0-41-generic”
CC [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.o
MODPOST /home/soberflow/Documents/BS/KernelModule/LinuxModule/Module.symvers
CC [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.mod.o
LD [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.ko
make[1]: se părăsește directorul „/usr/src/linux-headers-5.11.0-41-generic”
Primesc următoarea eroare:
insmod: EROARE: nu s-a putut introduce modulul linux_module.ko: Format de modul invalid
Cu „modprobe <nume_modul>” spune următoarele:
modprobe: FATAL: Modulul linux_module.ko nu a fost găsit în directorul /lib/modules/5.11.0-41-generic
Are cineva idee care ar putea fi problema?