Onlangs zijn lezers een foutcode tegengekomen bij het invoegen van een ongeldige module-indeling. Dit probleem doet zich om verschillende redenen voor. Laten we ze hieronder bespreken.
Goedgekeurd: Fortect
“Ongeldige module-indeling” is vrijwel zeker meestal de foutmelding die u krijgt wanneer u werkt aan het bouwen van een module voor een ongelijke kernel (zorg er bijvoorbeeld voor dat de kernelheaders of -bronnen die de persoon heeft gebruikt om de module te bouwen, overeenkomen met de kernelversie die u zeker moet gebruiken.
Ik heb zojuist mijn eerste vriendenmodule gemaakt, de World Hello-module volgens LDD3. Sorry, deze fout is opgetreden:
insmod: Fout './hello.ko': -1 Ongeldige module-indeling.
buck uname -r2.6.38-8 algemeen
Waarom krijg ik ongeldig moduleformaat hier in insmod?
Ik gebruik mijn eigen kernel (4.8.15-rt10) en dus krijg ik een module die hoog op dezelfde kernel is geïnstalleerd met dezelfde .config (ik heb alles gestationeerd). Wanneer ik insmod gebruik om een module te krijgen, krijg ik de foutmelding “Ongeldige cursusindeling”.
sudo apt-cache zoeken linux-sourcelinux-source - Linux-kernelreferentie met Ubuntu-patcheslinux-source-2.6.38 - Linux-kernel voor origineel 2.6.38 met Ubuntu-patches$ sudo-instellingen apt-get linux-source-2.6.38
$ ls versus 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 ./. Configuratie maken$ sudo menuconfig - Laad het .config-bestandverdien $$ opbouwmodules
$ make -C /usr/src/linux-source-2.6.38/linux-source-2.6.38 M = `pwd`-modules
obj-m: is gelijk aan hallo.o
$ sudo insmod hello_world.koinsmod: Fout bij het invoegen van hello_world.ko: -1 Ongeldige module-indeling
hallo: oneens met markeerversie onder module_layout
Ik merkte ook dat sommige Linux h2-tags -2.26.38-generiek
zijn en dat de bronoptie 26.38 bevat, is dat het probleem? maar ik vond de linux-source-2.26.38-generic
topgeheim niet online.
Statusupdate:Ik merkte dat initial – lib / modules / $ (name -r) per build / Makefile mijn opstartbare kernelvariatie weergeeft:
VERSIE = 2PATCHNIVEAU komt overeen met 6PU-NIVEAU is 38.EXTRAVERSIE = 0.2
Ik download Linux-2.6.38.2 naast deze compilatie, maar ik krijg vaak dezelfde foutmelding.
Waarom is Ubuntu- insmod kan geen enkele module invoegen?
Ik heb mijn voorbeeldmodule samengesteld MAAR er was de waarschuwing die vaak een belangrijk waarschuwingssignaal kon zijn waarom dit niveau geen werk was. De waarschuwing was van deze persoon: WAARSCHUWING: De symboolversiedump van /usr/src/linux-3.0.0/Module.symvers ontbrak; Mods hebben geen afhankelijkheden, maar er zijn ook versies achter mods.
Ik heb ook gemerkt dat correct een verzameling is in -r:
CONFIG_VERSION_SIGNATURE = "Ubuntu / boot / config - rrr (uname 2.6.38-8.42-generiek 2.6.38.2"
Weet iemand het woord wat dit betekent? Ik zou dit niet moeten zien in het kernelconfiguratiebestand dat ik aan het maken ben.
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
De kernel van waaruit u een aangepaste kernelmodule gaat maken en waarin u de module daadwerkelijk invoegt, moet hetzelfde schema hebben. Als u hier geen kans mee wilt maken, kunt u de volgende Makefile gebruiken.
objâˆ''m + = halloâˆ'world.oAlles: may 'C / lib / modules / $ (shell uname' r) / build M = $ (PWD) modulesschoon: gebruik 'C / lib / modules / dollars (shell uname 'r) / build M = rrr (PWD) schoon
Ik stel voor dat je meteen de bron wordt, indien mogelijk door eerst die regel door te nemen
$ sudo cerebrale parese /boot/config-2.6.38-8-generic ./.config
$ su#cp /boot/config-2.6.38-8-generiek ./.config#insmod hello_world.ko
ZIEL: = hallo-wereldWAARSCHUWING: = -W -Wall -Wstrict-Prototypes -Wmissing-PrototypesINCLUDE: betekent -isystem / lib / modules - `uname -r` / build / includeCFLAG: = -O2 -DMODULE -D__KERNEL__ $ WARN $ INSCHAKELENCC: komt overeen met gcc-3.0$ TARGET.o: $ TARGET.c.FONY: schoonschoon: rm -emitter $ TARGET.o
Uw module zal worden geïntegreerd met de vorige kernel (net bijgewerkt).
Denk eraan om dit opnieuw te starten om de trendy kernel te gebruiken.
Zorg ervoor dat de draaiende kernel en de geïnstalleerde versie van kernel-headers
overeenkomen.
Waarom is mijn module instellen ongeldig in Linux?
Kernelparameters kunnen de manier waarop de kernel werkt drastisch veranderen, dus als je de kernel van iemand anders niet met de juiste criteria kunt bouwen, zullen sommige niet overeenkomen met de kernel, en die kernel zal terecht weigeren op te starten. Bezoek elk van onze Corona688-homepages! 1.IP-stoel
U zou nu de interesse in uw segment voor de huidige kernel opnieuw moeten compileren:
cd en dvd rtl8188euschoondoe allesinstallerenmodulatiesensor -r 8188eumod 8188eu sonde
Helaas kan het zijn dat u elke keer dat u uw kernel bijwerkt iets bijzonders moet doen totdat dit soort stuurprogramma onderdeel wordt van de belangrijkste kerneldeals.
Is de Hallo Wereld module in ldd3 ongeldig?
Ik heb zojuist mijn eerste auto-eigenaarmodule gemaakt, een op LDD3 gebaseerde Hello World-module. Sorry, deze fout is opgetreden: insmod: Fout tijdens het invoegen van ./hello.ko: -1 Ongeldige module-indeling.
Er zal zeker een functie zijn genaamd Dynamic Kernel Module Support die automatisch kan skien om modules uit de boomstructuur te maken wanneer je je eigen kernel moet upgraden om geld te installeren voor extra werk. Je zult misschien merken dat het meer moeite kost om het de moeite waard te maken.
Dit is deze keerzijde van het leven aan de rand van het systeem 😉
could_sleep ();WARN (! Intel_irqs_enabled (dev_priv), "IRQ uitgeschakeld");
Ik heb de gcc-compiler bijgewerkt met betrekking tot versie 3.4.3 en heb geprobeerd de ALSA-1.09rc4a-driver (de meest recente) te installeren. Alles zag er voortreffelijk uit, in ieder geval geen fouten, maar als ik bepaalde AS-modules bestuur krijg ik een foutmelding. Ik gebruik RedHat 8 op de Linux 2.6.11.11-kernel vanwege de ens1371-kaart. Hier is een kopie van die je gewoon veelgemaakte fout.
AANDACHT! Fout bij het invoegen van snd_page_alloc (/lib/modules/2.6.1.11/kernel/sound/acore/snd-page-alloc.ko): zieke module fout formaat
WAARSCHUWING: invoegen van snd (/lib/modules/2.6.1.11/kernel/sound/acore/snd.ko): gebroken cursusformaat
WAARSCHUWING: fout bij het plakken van snd_timer (/lib/modules/2.6.1.11/kernel/sound/acore/snd-timer.ko): ongeldig formaat
WAARSCHUWING: cursusfout bij het plakken van snd_pcm (/lib/modules/2.6.1.11/kernel/sound/acore/snd-pcm.ko): ongeldig formaat voor element
WAARSCHUWING: Fout ondanks plakken snd_ac97_codec (/lib/modules/2.6.1.11/kernel/sound/pci/ac97/snd-ac97-codec.Invalid kb): elementformaat
WAARSCHUWING: Fout ondanks plakken snd_seq_device (/lib/modules/2.6.1.11/kernel/sound/acore/seq/snd-seq-device.ko): ongeldig apparaatframework
WAARSCHUWING: fout bij het plakken van snd_rawmidi (/lib/modules/2.6.1.11/kernel/sound/acore/snd-rawmidi.ko): ongeldig cursusgegevensformaat
ERNSTIG: Fout bij het invoegen (/ lib / thema’s / 2 snd_ens1371.6.11.11 / kernel / sound pci / snd-ens1371.ko): ongeldig moduleformaat