Nyligen har vissa läsare stött på en felvarningskod när de infogade ett ogiltigt modulformat. Detta problem uppstår av ett antal anledningar. Låt oss diskutera dem nedan.
Godkänd: Fortect
“Ogiltigt modulformat” är vanligtvis felmeddelandet du får när det är svårt att bygga en modul för en exklusiv kärna (till exempel se till att kärnrubriken kontra källor som personen använde för att bygga hela modulen matchar kärnversionen som du enkelt kan använda .
Jag skapade precis min första individuella modul, World Hello-modulen enligt LDD3. Tyvärr, detta fel inträffade:
insmod: Felsökning './hello.ko': -1 Ogiltigt modulformat.
fonder uname -r2.6.38-8 allmänt
Varför får jag ogiltigt modulformat inom insmod?
Jag använder min egen kärna (4.8.15-rt10) och jag får en modul som installerades när samma kärna med samma .config (jag implementerade allt). När jag använder insmod för att ställa in en modul får jag felet “Ogiltigt komponentformat”.
sudo apt-cache sök linux-sourcelinux-source - Linux-kärnreferens med Ubuntu-korrigeringarlinux-source-2.6.38 - Linux-kärna för original 2.6.38 med Ubuntu-korrigeringar$ sudo laddar apt-get linux-source-2.6.38
$ ls kontra usr / src /Linux-headers-2.6.38-8 linux-source-2 .6.38 vboxguest-5.0.10Linux-headers-2.6.38-8-generic linux-source-2.6.38.tar.bz2
$ sudo cp /boot/config-2.6.38-8-generic ./. Skapa konfiguration$ sudo menuconfig - Ladda .config-filentjäna $$ organisera moduler
$ make -C /usr/src/linux-source-2.6.38/linux-source-2.6.38 M = `pwd`-moduler
obj-m: motsvarar hello.o
$ sudo insmod hello_world.koinsmod: Fel hela tiden när hello_world.ko infogades: -1 Ogiltigt modulformat
hej: håller inte med om markversionen av module_layout
Jag märkte också att vissa Linux-rubriker är -2.26.38-generic
och att källalternativet innehåller 26.38, är det problemet? men jag hittade verkligen inte linux-source-2.26.38-generic
tillträdet online.
Statusuppdatering:Jag märkte att initiate per lib / modules / $ (namn -r) – build / Makefile visar min startbara kärnproduktion:
VERSION = 2PATCH LEVEL är lika med 6PU-LEVEL är 38.EXTRAVERSION = 0,2
Jag laddar ner Linux-2.6.38.2 utöver den här kompileringen, men jag får alltid samma felmeddelande.
Varför är Ubuntu- insmod misslyckas med att infoga att du bara moduler?
Jag sammanställde min provmodul MEN det fanns en fantastisk varning som ofta kunde vara en viktig vision om varför denna nivå inte fungerade. Varningen tillhörde denna person: VARNING: Symbolversionsdumpen av /usr/src/linux-3.0.0/Module.symvers saknades; Mods har inga beroenden, men det finns versioner som hänför sig till mods också.
Jag märkte också att det vanligtvis finns en samling i -r:
CONFIG_VERSION_SIGNATURE = "Ubuntu / boot / config - rr (uname 2.6.38-8.42-generic 2.6.38.2"
Är det någon som vet vad detta betyder? Jag borde inte se detta i alla kärnkonfigurationsfiler jag skapar.
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
Kärnan från vilken individer skapar en anpassad kärnmodul och i exakt som du faktiskt infogar modulen måste ha samma schema. Om du inte vill köpa med detta kan du använda följande Makefile.
objâˆ''m + = helloâˆ'world.oAllt: du bör 'C / lib / modules / $ (shell uname' r) / bygga M = $ (PWD) modulerrena: kunde 'C / lib / modules / bucks (shell uname 'r) / build M = rrr (PWD) rengöra
Jag föreslår att du blir bas direkt, om möjligt genom att gå igenom din linje först
$ sudo cerebral pares /boot/config-2.6.38-8-generic ./.config
$ su#cp /boot/config-2.6.38-8-generic ./.config#insmod hello_world.ko
ZIEL: = hej världenVARNING: = -W -Wall -Wstrict-Prototypes -Wmissing-PrototypesINKLUDERA: betyder -isystem / lib / moduler för varje `uname -r` / build / includeCFLAG: = -O2 -DMODULE -D__KERNEL__ $ VARNA $ AKTIVERACC: betyder gcc-3.0$ TARGET.o: $ TARGET.c.PHONY: renrena: rm -radiofrekvens $ TARGET.o
Din modul är integrerad med den tidigare kärnan (nyss uppdaterad).
Kom ihåg att starta om detta för att använda den helt nya kärnan.
Se till att den körande kärnan och/eller den installerade versionen av kernel-headers
matchar.
Varför är min modul struktur ogiltig i Linux?
Kärnparametrar kan drastiskt förändra det speciella sättet som kärnan fungerar, så om du tenderar att bygga någon annans kärna med rätt faktorer, kommer vissa inte att matcha kärnan, och kärnan kommer med rätta att vägra starta. Besök någon sorts Corona688-hemsida! 1.IP-sits
Du bör nu kompilera om till ditt segment för den aktuella kärnan:
cd-skiva rtl8188eurenagöra alltInstalleramoduleringssensor -r 8188eumod 8188eu sond
Tyvärr kan du behöva göra det här rådet varje gång du uppdaterar din kärna tills en viss drivrutin blir en del av huvudkärnan.
Is the Hello World modul i ldd3 ogiltig?
Jag skapade precis min preliminära bilägarmodul, en LDD3-baserad Hello World-modul. Tyvärr, detta fel inträffade: insmod: Fel trots att ./hello.ko infogades: -1 Ogiltigt modulformat.
Det är utformat för att förmodligen vara en funktion som heter Dynamic Kernel Module Support som automatiskt kan åka för att skapa moduler från trädet när du behöver uppgradera din primära kärna för att installera pengar för extraarbete. Du kanske upptäcker att det kräver mer ansträngning och du kan göra det värt det.
Detta är vanligtvis baksidan av livet vid kanten kopplat till systemet 😉
could_sleep ();VARNA (! Intel_irqs_enabled (dev_priv), "IRQ inaktiverad");
Jag har uppdaterat gcc-kompilatorn för att tillåta dem till version 3.4.3 och försökte installera ALSA-1.09rc4a-drivrutinen (den senaste). Allt såg bra ut, åtminstone inga fel, men när jag går vissa AS-moduler får jag ett fel. Jag använder RedHat 8 på Linux 2.6.11.11 kärna utrustad med ens1371 kort. Här är en kopia av ditt vanliga misstag.
UPPMÄRKSAMHET! Fel vid insättning av snd_page_alloc (/lib/modules/2.6.1.11/kernel/sound/acore/snd-page-alloc.ko): dåligt modulfelformat
VARNING: infogar snd (/lib/modules/2.6.1.11/kernel/sound/acore/snd.ko): dåligt kursformat
VARNING: fel vid fastsättning av snd_timer (/lib/modules/2.6.1.11/kernel/sound/acore/snd-timer.ko): ogiltigt format
VARNING: kursfel vid fastsättning av snd_pcm (/lib/modules/2.6.1.11/kernel/sound/acore/snd-pcm.ko): ogiltigt format för elementet
VARNING: Fel vid inklistring av snd_ac97_codec (/lib/modules/2.6.1.11/kernel/sound/pci/ac97/snd-ac97-codec.Invalid kb): elementformat
VARNING: Fel i motsats till att klistra in snd_seq_device (/lib/modules/2.6.1.11/kernel/sound/acore/seq/snd-seq-device.ko): ogiltig enhets hårddisk
VARNING: fel vid inklistring av snd_rawmidi (/lib/modules/2.6.1.11/kernel/sound/acore/snd-rawmidi.ko): ogiltig kursform
ALLVARLIGT: Fel vid infogning (/ lib / units / 2 snd_ens1371.6.11.11 / kernel / sound eller pci / snd-ens1371.ko): ogiltigt modulformat