2016-06-20 6 views
5

Ich versuche, ein einfaches Kernel-Modul zu bauen und es auf dem Raspberry Pi laufen. Ich habe Kernel-Quellen von der offiziellen Himbeer-Seite heruntergeladen, aber sie haben eine etwas andere Kernel-Version als mein Raspbian an Bord. Ist es notwendig, eine vollständig identische Version des Kernels auf der Quell- und Zielmaschine zu haben, um das Kernel-Modul auszuführen? Ich habe diese auf meinem Raspberry PiKernel-Version für Target und für Modul

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

Und das über mein Modul

$ 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 

Wie Sie sehen: "4.4.11+" vs "4.4.13 +" ... Warum bin ich fragen? Ich habe einen Fehler bei der Einsatzmodul:

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

Und nicht verstehen, es wertvollen Unterschied in der letzten Reihe der Version des Kernels ist, oder es ist ein anderes Problem.

Antwort

5

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

Ja.

+0

Vielen Dank! Wie kann ich zu dieser Version wechseln? – artsin

+0

Ich habe 'git fetch' gemacht, dann' git checkout v4.4.11' aber habe einen Fehler: "error: pathspec 'v4.4.11' hat keine Datei (en) gefunden, die git bekannt sind." – artsin