2016-06-20 52 views
5

Sto provando a creare un modulo del kernel semplice ed eseguirlo sul Raspberry Pi. Ho scaricato i sorgenti del kernel dal sito ufficiale del lampone, ma hanno una versione del kernel leggermente diversa da quella del mio raspbian. È necessario avere una versione del kernel completamente identica sulla macchina di origine e di destinazione per eseguire il modulo del kernel? Ho questo sulla mia Raspberry PiVersione kernel per target e per modulo

$ uname -a 
Linux raspberrypi 4.4.11+ #888 Mon May 23 20:02:58 BST 2016 armv6l GNU/Linux 

E questo per il mio modulo

$ modinfo ./threads.ko 
filename:  /lib/modules/4.4.11+/kernel/mymodules/./threads.ko 
version:  0.0.1 
description: Kernel threads example 
author:   xxxxxx 
license:  GPL 
srcversion:  C906582EC824D2D8DA76BFB 
depends:   
vermagic:  4.4.13+ mod_unload modversions ARMv6 

come vedete: "4.4.11+" vs "4.4.13 +" ... Perché sono chiedendo? Ho un errore quando il modulo di inserimento:

$ sudo insmod ./threads.ko 
insmod: ERROR: could not insert module ./threads.ko: Invalid module format 

E non capisco, è importante differenza di ultimo numero della versione del kernel o c'è un altro problema.

risposta

5

Is it necessary to have fully identical version of kernel on source and target machine to run kernel module?

Sì.

+0

Grazie! Quindi, come posso passare a questa versione? – artsin

+0

Ho fatto 'git fetch', quindi' git checkout v4.4.11' ma ho un errore: "errore: pathspec 'v4.4.11' non corrispondeva a nessun file noto per git." – artsin