Ich versuche, ein Modul in meine Kernel zu kompilieren und einfügen, aber ich erhalte diesen Fehler:andernfalls insmod ein wirklich einfaches Modul einzufügen
insmod: error inserting 'hello.ko': -1 Invalid module format
ich die Schritte folgten in diesem Tutorial hier beschrieben: http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html. Und alles schien Sinn zu ergeben und funktionierte. Ich habe mein Beispielmodul kompiliert, aber es gab eine Warnung, die ein wichtiger Hinweis darauf sein könnte, warum dieses Ding versagt. Die Warnung war diese:
WARNING: Symbol version dump /usr/src/linux-3.0.0/Module.symvers is missing; modules will have no dependencies and modversions.
Ich weiß ehrlich gesagt nicht, warum die Module.symvers-Datei nicht da ist. Die /usr/src/linux-3.0.0 Verzeichnis und alle seine Inhalte wurden von mir erstellt, nachdem ich die Quellen mit diesem Befehl dowloaded:
apt-get source linux-image-$(uname -r)
, dass der einzige Schritt dieses Tutorial in der Tat war, dass ich folgte nicht, weil ich die genauen Quellen für meinen Kernel (3.0.0-32-generic) nicht finden konnte und dachte, dass das aptitude-Tool mir das erklären würde.
Und ich bin mit Ubuntu auf einer 64-Bit-Maschine durch die Art und Weise, hier ist die uname -a Ausgabe:
Linux vega 3.0.0-32-generiC#51-Ubuntu SMP Thu Mar 21 15:50:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Irgendwelche Vorschläge, was als nächstes zu versuchen? Irgendwelche empfohlene Lesung?
PS1. Nach etwas mehr Forschung bestätigte ich, dass ich das 3.0.0-32-Generikum laufen lasse. update-grub zurückgegeben:
Found linux image: /boot/vmlinuz-3.0.0-32-generic
Aber nach einer sudo machen oldconfig und Überprüfung der resultierenden CONFIG-Datei Ausgabe ich diese interessante Linie erhalten:
CONFIG_VERSION_SIGNATURE="Ubuntu 3.0.0-32.51-generic 3.0.69"
dass als missmatch qualifiziert?
PS2. dmesg gibt diese:
[ 5.869900] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 6.144304] EXT4-fs (dm-1): re-mounted. Opts: errors=remount-ro
[ 6.368936] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 6.433919] vesafb: mode is 640x480x32, linelength=2560, pages=0
[ 6.433921] vesafb: scrolling: redraw
[ 6.433923] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 6.435424] vesafb: framebuffer at 0xb0000000, mapped to 0xffffc90012800000, using 1216k, total 1216k
[ 6.435516] Console: switching to colour frame buffer device 80x30
[ 6.443104] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.450198] fb0: VESA VGA frame buffer device
[ 8.884523] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[ 8.885845] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 12.611236] init: ssh main process (762) terminated with status 255
[ 12.624381] init: failsafe main process (752) killed by TERM signal
[ 12.634739] type=1400 audit(1373412287.107:8): apparmor="STATUS" operation="profile_load" name="/usr/sbin/tcpdump" pid=852 comm="apparmor_parser"
[ 12.634873] type=1400 audit(1373412287.107:9): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=851 comm="apparmor_parser"
[ 12.635180] type=1400 audit(1373412287.107:10): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=851 comm="apparmor_parser"
[ 12.635403] type=1400 audit(1373412287.107:11): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=851 comm="apparmor_parser"
[ 19.390991] eth1: no IPv6 routers present
[ 576.758697] hello: no symbol version for module_layout
genau nachdem du insmod laufen hast was dmesg sagt, zum Beispiel die letzten 10 Zeilen? – fghj
Ich habe gerade die Frage aktualisiert, um ein paar Zeilen mehr einzufügen, was dmesg ausgibt, aber ich glaube, nur die letzte ist relevant. – Bilthon
hier http://stackoverflow.com/questions/1738539/how-do-i-fix-no-symbol-version-for-module-layout? – fghj