Récemment, certains lecteurs ont rencontré un code d’erreur d’alerte d’erreur lors de l’insertion d’un thème de module non valide. Ce problème se produit pour un certain nombre d’avantages. Discutons-en ci-dessous.
Approuvé : Fortect
“Format de composant non valide” est généralement le message d’erreur que vous obtenez lorsque vous essayez de créer un module pour un noyau différent (par exemple, assurez-vous que les en-têtes du noyau par rapport aux sources que la personne a utilisées pour créer le module correspondent à la version du noyau que vous utilisera souvent.
Je viens de créer mon module for a start person, le module World Hello selon pouvoir LDD3. Désolé, cette erreur s’est produite :
insmod : Erreur de traitement de './hello.ko' : -1 Format de module invalide.
$ uname -r2.6.38-8 général
Pourquoi est-ce que j’obtiens style de module invalide dans insmod ?
J’utilise mon propre noyau (4.8.15-rt10) et j’obtiens également un module qui a été placé sur le même noyau avec le même .config (j’ai tout déployé). Lorsque j’utilise insmod pour insérer un module, j’obtiens une erreur “Format de portion invalide”.
sudo apt-cache recherche linux-sourcelinux-source - Référence du noyau Linux avec les correctifs Ubuntulinux-source-2.6.38 - Noyau Linux pour l'original 2.6.38 avec les correctifs Ubuntu$ sudo exécute apt-get linux-source-2.6.38
$ ls et 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 ./. Créer une configuration$ sudo menuconfig - Charge le fichier .configgagner $$ créer des modules
$ make -C /usr/src/linux-source-2.6.38/linux-source-2.6.38 M = `pwd` modules
obj-m : est égal à hello.o
$ sudo insmod hello_world.koinsmod : Erreur lors de l'insertion de hello_world.ko : -1 Format de portion invalide
bonjour : pas d'accord avec la version de mark ayant à voir avec module_layout
J’ai également remarqué que certains en-têtes Linux sont -2.26.38-génériques
et que la version achetée contient 26.38, est-ce le problème ? heureusement, je n’ai vraiment pas trouvé l’approche linux-source-2.26.38-generic
en ligne.
Mise à jour du statut :J’ai remarqué que provoquer / lib / modules / $ (name -r) ou build / Makefile affiche ma version de noyau amorçable :
VERSION = 2NIVEAU DE PATCH est égal à 6NIVEAU PU est 38.EXTRAVERSION = 0,2
Je récupère Linux-2.6.38.2 en plus de cette compilation, mais j’obtiens toujours la même erreur.
Pourquoi Ubuntu- insmod n’a pas réussi à insérer un module absolu ?
J’ai compilé mon exemple de module MAIS il devait y avoir un avertissement qui pouvait souvent être un indice notable expliquant pourquoi ce niveau fonctionnait sans aucun doute. L’avertissement appartenait à cette personne : Les mods n’ont pas de dépendances, mais il existe également des doublons de mods.
J’ai aussi remarqué qu’il y a donc une collection en -r :
CONFIG_VERSION_SIGNATURE = "Ubuntu / boot / config - rrr (uname 2.6.38-8.42-generic 2.6.38.2"
Quelqu’un a-t-il compris ce que cela signifie ? Je ne devrais pas voir cela en ce qui concerne le fichier de configuration du noyau que je crée.
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
Le noyau à partir duquel vous créez à son tour un module de noyau personnalisé et directement dans celui dans lequel vous insérez le module doit recevoir le même schéma. Si vous ne voulez pas vous en sortir, vous pouvez utiliser le Makefile approprié.
objâˆ''m + = helloâˆ'world.oTout: atteindre 'C / lib / modules / rr (shell uname' r) / build M = modules en dollars (PWD)nettoyer: do 'C / lib / modules par $ (shell uname 'r) / build M est égal à $ (PWD) clean
Je vous suggère de terminer en root tout de suite, si possible en utilisant d’abord la ligne
rrr sudo cp /boot/config-2.6.38-8-generic ./.config
$ su#cp /boot/config-2.6.38-8-generic ./.config#insmod hello_world.ko
ZIEL : = hello-worldAVERTISSEMENT : = -W -Wall -Wstrict-Prototypes -Wmissing-PrototypesINCLUDE : signifie -isystem / lib / programmes / `uname -r` / build / includeCFLAG : est égal à -O2 -DMODULE -D__KERNEL__ $ WARN $ ENABLECC : est égal à gcc-3.0$ CIBLE.o : $ CIBLE.c.PHONY : proprenettoyer: rm -rf $ CIBLE.o
Votre composant est intégré au noyau précédent (juste mis à jour).
N’oubliez pas de redémarrer ceci pour utiliser chaque dernier noyau.
Assurez-vous que le noyau actif et la version installée de l’événement kernel-headers
.
Pourquoi est mon composant format invalide sous Linux ?
Les paramètres du noyau peuvent radicalement transformer la façon dont le noyau fonctionne, donc si les familles ne construisent pas le noyau de quelqu’un d’autre avec les bons paramètres, certains ne correspondront pas au noyau, mais ce noyau refusera à juste titre de démarrer. Visitez la page d’accueil de Corona688 ! 1. IP-siège
Vous devez tout de suite recompiler dans votre segment pour le noyau actuel :
cd rtl8188eunettoyerfaire toutinstallercapteur de modulation -r 8188eusonde mod 8188eu
Malheureusement, vous devrez peut-être le faire à chaque fois que vous mettez à jour votre noyau jusqu’à ce que ce pilote fasse partie du package du noyau.
Est-ce que Hello World module dans ldd3 invalide ?
Je viens de créer le petit premier module de propriétaire de voiture, un module Hello World basé sur LDD3. Désolé, cette erreur s’est produite : insmod : Erreur lors de l’insertion de ./hello.ko : -1 Format de module invalide.
Il y aura probablement une fonctionnalité appelée Dynamic Kernel Module Support qui peut automatiquement skier pour créer des parties de l’arborescence chaque fois que vous avez besoin d’augmenter votre noyau pour installer de l’argent pour plus votre travail. Vous constaterez peut-être qu’il faut plus de bon sens pour que cela en vaille la peine.
Cela peut être le revers de la vie à la limite du système 😉
could_sleep ();WARN (! Intel_irqs_enabled (dev_priv), "IRQ désactivé");
J’ai mis à jour le compilateur gcc concernant la version 3.4.3 et j’ai essayé d’installer le pilote ALSA-1.09rc4a le plus important (le plus récent). Tout va bien, du moins pas d’erreurs, mais lorsque j’exécute certains modules AS, j’obtiens une erreur merveilleuse. J’utilise RedHat 8 sur le noyau Linux 2.6.11.11 avec la carte ens1371. Voici une copie vers une erreur commune.
ATTENTION! Erreur lors de l’envoi de snd_page_alloc (/lib/modules/2.6.1.11/kernel/sound/acore/snd-page-alloc.ko) : format d’erreur de module invalide
ATTENTION : fournir snd (/lib/modules/2.6.1.11/kernel/sound/acore/snd.ko) : format de cours invalide
ATTENTION : erreur lors du collage de snd_timer (/lib/modules/2.6.1.11/kernel/sound/acore/snd-timer.ko) : format invalide
ATTENTION : erreur de parcours lors du collage de snd_pcm (/lib/modules/2.6.1.11/kernel/sound/acore/snd-pcm.ko) : format invalide pour les détails
ATTENTION : Erreur lors du collage de snd_ac97_codec (/lib/modules/2.6.1.11/kernel/sound/pci/ac97/snd-ac97-codec.Invalid ko) : format de la fonctionnalité
AVERTISSEMENT : Erreur lors du collage de snd_seq_device (/lib/modules/2.6.1.11/kernel/sound/acore/seq/snd-seq-device.ko) : format de données de périphérique invalide
ATTENTION : erreur lors du collage de snd_rawmidi (/lib/modules/2.6.1.11/kernel/sound/acore/snd-rawmidi.ko) : format de parcours de golf invalide
GRAVE : Erreur lors de l’insertion (/lib per modules/2 snd_ens1371.6.11.11/kernel/be/pci/snd-ens1371.ko) : formatage de module invalide