it-swarm.com.de

"FATAL: Fehler beim Modul gefunden" bei Verwendung von modprobe

Ich habe ein Problem mit dem Befehl modprobe ... Ich habe das Hallo-Welt-Modul kompiliert und mit insmod geladen, es funktioniert gut und wenn ich lsmod mache, kann ich es in der Ausgabeliste sehen. Wenn ich dieses Modul mit modprobe einfüge, erhalte ich einen FATAL-Fehler:

[email protected]:/home/ravi# modprobe ./hello.ko 
FATAL: Module ./hello.ko not found.
[email protected]:/home/ravi#

Hier ist der Modulcode:

#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
        printk(KERN_ALERT "Hello, world\n");
        return 0;
}
static void hello_exit(void)
{
        printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

und Makefile

obj-m += hello.o

all:
        make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) clean
22
Ravi Gupta

Der Grund ist, dass modprobe/lib/modules/$(uname -r) für die Module untersucht und daher nicht mit dem lokalen Dateipfad funktioniert. Das ist einer der Unterschiede zwischen modprobe und insmod.

25
che

Am besten verwenden Sie das Kernel-Makefile, um das Modul zu installieren:

Hier sind einige Ausschnitte, die Sie Ihrem Makefile hinzufügen können

um die Spitze 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

Um das Ende hinzuzufügen:

install:
        $(MAKE) -C $(KERNEL_BUILD) M=$(PWD) \
           INSTALL_MOD_PATH=$(INSTALL_ROOT) modules_install

und dann kannst du ausgeben 

    Sudo make install

dies wird entweder in/lib/modules/$ (uname -r)/extra/eingefügt. 

oder/lib/modules/$ (uname -r)/misc /

und depmod entsprechend ausführen

5
Elf King

Versuchen Sie insmod anstelle von modprobe. Modprobe Sucht im Modulverzeichnis/lib/modules/uname -r nach allen Modulen und anderen -Dateien

2
Sjoerd

ich denke, es sollte einen Eintrag Ihres your_module.ko in /lib/modules/uname -r/modules.dep und in /lib/modules/uname -r/modules.dep.bin geben, damit der Befehl "modprobe your_module" funktioniert

1
sharath kumar
Insert this in your Makefile

 $(MAKE) -C $(KDIR) M=$(PWD) modules_install                      

 it will install the module in the directory /lib/modules/<var>/extra/
 After make , insert module with modprobe module_name (without .ko extension)

OR

After your normal make, you copy module module_name.ko into   directory  /lib/modules/<var>/extra/

dann modprobe module_name (ohne .ko-Erweiterung)

0
Gouse

Stellen Sie sicher, dass Ihr Netzwerk heruntergefahren ist, bevor Sie das Modul laden:

Sudo stop networking

Es hat mir geholfen - https://help.ubuntu.com/community/UbuntuBonding

0
Yaroslav