In letzter Zeit haben einige Leser beim Einfügen eines sehr guten ungültigen Modulformats einen Fehlerwarnungs-Fehlercode entdeckt. Dieses Problem tritt aus einer Reihe von sinnvollen Gründen auf. Lassen Sie uns sie unten besprechen.
Genehmigt: Fortect
“Ungültiges Modulformat” ist normalerweise die Fehlermeldung, die Sie erhalten, wenn Sie versuchen, ein Element für einen anderen Kernel zu erstellen (zum Beispiel sollten die Kernel-Header / -Quellen, die der Mensch zum Erstellen des Moduls verwendet hat, natürlich mit der Kernel-Version übereinstimmen, die Sie verwenden können .
Ich habe so ziemlich mein First-Person-Modul erstellt, das World Hello-Modul nach LDD3. Entschuldigung, dieser Fehler ist aufgetreten:
insmod: Fehler bei der Verarbeitung von './hello.ko': -1 Ungültiges Modulformat.
$ uname -r2.6.38-8 allgemein
Warum entdecke ich ungültiges Modulformat in insmod?
Ich verwende meinen persönlichen Kernel (4.8.15-rt10) und bekomme einen Teil, der mit Hilfe derselben .config auf demselben Kernel installiert wurde (ich habe alles bereitgestellt). Wenn ich insmod verwende, um ein Modul einzufügen, erhalte ich einen Fehler “Ungültiges Modulformat”.
sudo apt-cache linux-source findenlinux-source - Linux-Kernel-Referenz mit Ubuntu-Patcheslinux-source-2.6.38 - Linux-Kernel für Original 2.6.38 über Ubuntu-Patches$ sudo installiert apt-get linux-source-2.6.38
Gelder ls / usr / src /Linux-Header-2.6.38-8 Linux-Source-2 .6.38 vboxguest-5.0.10Linux-Header-2.6.38-8-generic linux-source-2.6.38.tar.bz2
$ sudo clubpenguin /boot/config-2.6.38-8-generic ./. Konfiguration erstellen$ sudo menuconfig - Laden Sie die .config-Dateiverdienen $$ Module erstellen
Einkommen machen -C /usr/src/linux-source-2.6.38/linux-source-2.6.38 M = `pwd`-Module
obj-m: = hello.o
usd sudo insmod hello_world.koinsmod: Fehler beim Einfügen von hello_world.ko: -nur 1 Ungültiges Modulformat
hallo: stimme nicht zu, kombiniert mit mark version of module_layout
Ich habe auch beobachtet, dass einige Linux-Header -2.26.38-generisch
sind und somit die Quellversion 26.38 enthält, was ist leider das Problem? aber ich habe wirklich nicht alle linux-source-2.26.38-generic
-Lösungen online gefunden.
Statusaktualisierung:Mir ist aufgefallen, dass initie /lib/modules für jedes $ (name -r) / build / Makefile meine bootfähige Kernel-Version zeigt:
VERSION entspricht 2PATCH-LEVEL = 6PU-LEVEL ist 38.EXTRAVERSION bedeutet 0,2
Ich lade Linux-2.6.38.2 zusätzlich zur Ideensammlung herunter, aber ich bekomme immer noch den eigentlichen Fehler.
Warum ist Ubuntu- insmod reicht nicht, um ein Modul einzufügen?
Ich habe mein Beispielsegment kompiliert, ABER es gab eine Warnung, die immer ein wichtiger Hinweis darauf sein könnte, warum unterschiedliche Ebenen nicht funktionierten. Die Warnung gehörte, um Ihnen zu helfen: WARNUNG: Der Symbolversions-Dump mit /usr/src/linux-3.0.0/Module.symvers fehlte; Mods haben keine Abhängigkeiten, denken Sie jedoch daran, dass es auch Versionen von Mods gibt.
Mir ist auch aufgefallen, dass es eine Sammlung zu -r gibt:
CONFIG_VERSION_SIGNATURE = "Ubuntu / Sneaker / config - $ (uname 2.6.38-8.42-generic 2.6.38.2"
Weiß jemand was das bedeutet? Ich sollte dies in der Kernel-Konfigurationsdatei sehen, die ich erstelle.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Der Kernel, aus dem Sie ein Traditions-Kernel-Modul erstellen und in den Sie das wichtigste Modul tatsächlich einfügen, muss das gleiche Schema haben. Wenn sich die Öffentlichkeit damit nicht befassen möchte, verwenden Sie das folgende Makefile.
objâˆ''m + ist gleich helloâˆ'world.oAlles: do 'C / lib / units / $ (shell uname' r) / build M = $ (PWD) Modulesauber: do 'C oder lib/modules/$ (shell uname 'r) oder build M = $ (PWD) clean
Ich schlage vor, Sie werden sofort root, wenn Sie in Zukunft zuerst die Zeile durchgehen
$ sudo cp /boot/config-2.6.38-8-generic ./.config
Geld su#cp /boot/config-2.6.38-8-generic ./.config#insmod hello_world.ko
ZIEL: bedeutet hallo-worldWARNUNG: = -W -Wall -Wstrict-Prototypes -Wmissing-PrototypesINCLUDE: bedeutet -isystem - lib/modules/`uname -r`/zusammengesetzt/includeCFLAG: = -O2 -DMODULE -D__KERNEL__ $ WARN $ ENABLECC: = gcc-3.0$ TARGET.o: $ TARGET.c.PHONY: saubersauber: rm -rf $ TARGET.o
Ihr Modul ist in den anderen Kernel integriert (gerade aktualisiert).
Denken Sie daran, diesen Prozess neu zu starten, um den neuesten Kernel zu verwenden.
Stellen Sie absolut sicher, dass der laufende Kernel und die installierte Version in Bezug auf Kernel-Header
übereinstimmen.
Warum ist definitiv mein Modulformat unter Linux ungültig?
Kernel-Richtlinien können die Art und Weise, wie der Kernel arbeitet, drastisch ändern. Wenn Sie also nicht den Kernel eines anderen mit den richtigen Parametern bauen, werden einige den Kernel nicht akzentuieren, und dieser Kernel wird zu Recht argumentieren, zu booten. Besuchen Sie die Corona688-Homepage! 1.IP-Sitz
Sie sollten jetzt für einen aktuellen Kernel in Ihr Segment neu kompilieren:
cd rtl8188eusauberalles machenInstallierenModulationssonde / Sensor -r 8188eumod 8188eu Sonde
Leider müssen Sie dies jedes Mal tun, wenn Sie für Ihren Kernel schreiben, bis dieser Treiber Teil des Kernel-Hauptpakets wird.
Ist die Hallo Welt Modul in ldd3 ungültig?
Ich habe auch mein erstes Autobesitzermodul erstellt, ein leistungsstarkes Hello World-Modul auf LDD3-Basis. Entschuldigung, dieser Beratungsfehler ist aufgetreten: insmod: Fehler beim Einfügen von ./hello.ko: -1 Ungültiges Modulformat.
Es wird wahrscheinlich eine Option namens Dynamic Kernel Module Support geben, die automatisch Module aus dem Baum erstellen könnte, wenn Ihr Unternehmen Ihren Kernel aktualisieren muss, um Gewinn zu installieren Extra Arbeit. Sie werden vielleicht feststellen, dass dies mehr Aufwand erfordert, damit es sich lohnt.
Das ist die Kehrseite der Zeit am Rande des Systems 😉
könnte_sleep ();WARN (! Intel_irqs_enabled (dev_priv), "IRQ deaktiviert");
Ich habe den gcc-Compiler auf Version 3.4.3 aktualisiert und versucht, den ALSA-1.09rc4a-Treiber (den zuletzt verfügbaren) zu installieren. Alles sah gut aus, zumindest keine Fehler, aber wenn ich bestimmte AS-Module ausführe, erhalte ich eine Fehlermeldung. Ich verwende RedHat five auf dem Linux 2.6.11.11-Kernel mit der ens1371-Karte. Hier ist eine Kopie eines häufigen Fehlers.
AUFMERKSAMKEIT! Fehler beim Einfügen von snd_page_alloc (/lib/modules/2.6.1.11/kernel/sound/acore/snd-page-alloc.ko): ungültiger Modulfehler Festplattenformat
WARNUNG: Einfügen von snd (/lib/modules/2.6.1.11/kernel/sound/acore/snd.ko): ungültiges Kursdatenformat
WARNUNG: Fehler beim Einfügen von snd_timer (/lib/modules/2.6.1.11/kernel/sound/acore/snd-timer.ko): ungültige Festplatte
WARNUNG: Kursfehler beim Einfügen von snd_pcm (/lib/modules/2.6.1.11/kernel/sound/acore/snd-pcm.ko): ungültige Festplatte für Element
WARNUNG: Fehler beim Einfügen von snd_ac97_codec (/lib/modules/2.6.1.11/kernel/sound/pci/ac97/snd-ac97-codec.Ungültige KB): Elementformat
WARNUNG: Fehler beim Einfügen von snd_seq_device (/lib/modules/2.6.1.11/kernel/sound/acore/seq/snd-seq-device.ko): falsches Geräteformat
WARNUNG: Fehler beim Aufkleben von snd_rawmidi (/lib/modules/2.6.1.11/kernel/sound/acore/snd-rawmidi.ko): ungültiges Kursformat
SCHWER: Fehler beim Abrufen von (/lib/modules/2 snd_ens1371.6.11.11 pro Kernel/sound/pci/snd-ens1371.ko): inakzeptables Modulformat