Sto cercando di compilare e inserire un modulo nel mio kernel, ma continuo a ricevere questo errore:insmod non riuscendo a inserire un modulo molto semplice
insmod: error inserting 'hello.ko': -1 Invalid module format
Ho seguito la procedura descritta in questo tutorial qui: http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html. E tutto sembrava avere un senso e funzionato. Ho ottenuto il mio modulo di esempio compilato, MA c'era un avvertimento che potrebbe essere un importante indizio del perché questa cosa sta fallendo. L'avviso era questo:
Francamente non so perché il file Module.symvers non è presente. La directory /usr/src/linux-3.0.0 e tutti i suoi contenuti sono stati creati da me dopo che dowloaded le fonti usando questo comando:
apt-get source linux-image-$(uname -r)
Questo era infatti l'unico passo di quel tutorial che ho non l'ho seguito, perché non sono riuscito a trovare le origini esatte per il mio kernel (3.0.0-32-generico) e ho pensato che lo strumento di attitudine avrebbe risolto il problema.
e sto correndo Ubuntu su una macchina a 64 bit a proposito, ecco l'output -a uname:
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
Qualche suggerimento su cosa provare dopo? qualsiasi lettura consigliata?
PS1. Dopo alcune ricerche ho confermato che sto usando il 3.0.0-32-generic. update-grub restituito:
Found linux image: /boot/vmlinuz-3.0.0-32-generic
Ma dopo l'emissione di un sudo make oldconfig e controllando il file .config risultante ottengo questa linea interessante:
CONFIG_VERSION_SIGNATURE="Ubuntu 3.0.0-32.51-generic 3.0.69"
Vuol qualificano come un missmatch?
PS2. Uscite dmesg questo:
[ 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
esattamente dopo aver eseguito insmod cosa dice dmesg, ad esempio le ultime 10 righe? – fghj
Ho appena aggiornato la domanda per incollare qualche riga in più su ciò che esce da dmesg, ma credo che solo l'ultimo sia rilevante. – Bilthon
qui http://stackoverflow.com/questions/1738539/how-do-i-fix-no-symbol-version-for-module-layout? – fghj