Ich versuche ein Kernelmodul zu bauen. Ich bin auf Fedora 25kein solcher Datei- oder Verzeichnisfehler. Was ist falsch?
Hier ist meine Makefile:
obj-m += simple.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
Dies ist die simple.c Datei:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
/* This function is called when the module is loaded. */
int simple_init(void)
{
printk(KERN_INFO "Loading Module\n");
return 0;
}
/* This function is called when the module is removed. */
void simple_exit(void) {
printk(KERN_INFO "Removing Module\n");
}
/* Macros for registering module entry and exit points. */
module_init(simple_init);
module_exit(simple_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Simple Module");
MODULE_AUTHOR("SGG");
Der Fehler Ich erhalte nach dem make Befehl:
make -C /lib/modules/4.11.3-202.fc25.x86_64/build M=/home/nubian/Downloads/ch02/ch2 modules
make[1]: *** /lib/modules/4.11.3-202.fc25.x86_64/build: No such file or directory. Stop.
Makefile:7: recipe for target 'default' failed
make: *** [default] Error 2
'/ lib/modules/4.11.3-202.fc25.x86_64/build' sollte ein Link zu dem Verzeichnis sein, in dem Ihre Kernelmodule erstellt werden. Ist es? Siehe http://elixir.free-electronics.com/linux/v4.9.33/source/README#L124 – stark
Dies ist die Nachricht, die ich erhalte, wenn ich versuche, kernel-devel zu installieren: Letzte Ablaufprüfung der Metadaten: 1:09:07 vor am Mo Jun 19 12:26:54 2017. Paket kernel-devel-4.11.5-200.fc25.x86_64 ist bereits installiert und überspringt. –
Beachten Sie, dass Sie den Kernel '4.11.3-202.fc25' ausführen, aber das Paket' kernel-devel-4.11.5-200.fc25' installiert haben. Diese stimmen nicht überein, daher kann Ihr Build nicht erfolgreich sein. Vielleicht haben Sie Ihre Pakete auf einen neueren Kernel aktualisiert, aber haben Ihr System noch nicht neu gestartet, so dass Sie diesen Kernel nicht wirklich ausführen? – MadScientist