In particolare, il problema è che quando hai compilato il tuo modulo, probabilmente nella struttura ad albero del kernel mancava il file Modules.symvers. Il sistema kbuild in realtà ti avverte di questo quando compili il tuo modulo. Se manca Modules.symvers, vedrai:
Avvertenza: manca la versione del simbolo dump /usr/src/linux-2.6.34-12/Modules.symvers; i moduli non avranno dipendenze e modifiche.
Se il tuo kernel è CONFIG_MODVERSIONS
abilitato, durante la fase modpost della costruzione del tuo driver eseguirà script / mod / modpost con l'opzione -m. Se sei coraggioso e dai un'occhiata al sorgente script / mod / modpost.c , vedrai che l'opzione -m aggiunge il simbolo _module_layout_ da vmlinux, tuttavia se non hai Modules.symvers dal tuo kernel, non otterrai il valore CRC per questo simbolo e finirai con questo messaggio di errore.
Quindi ci sono due modi per aggirare questo.
1) eseguire una build completa del kernel in esecuzione per generare Modules.symvers, quindi ricostruire il modulo. [Http://www.mjmwired.net/kernel/Documentation/kbuild/modules.txt][1]
51 === 2. How to Build External Modules
52
53 To build external modules, you must have a prebuilt kernel available
54 that contains the configuration and header files used in the build.
55 Also, the kernel must have been built with modules enabled. If you are
56 using a distribution kernel, there will be a package for the kernel you
57 are running provided by your distribution.
58
59 An alternative is to use the "make" target "modules_prepare." This will
60 make sure the kernel contains the information required. The target
61 exists solely as a simple way to prepare a kernel source tree for
62 building external modules.
63
64 NOTE: "modules_prepare" will not build Module.symvers even if
65 CONFIG_MODVERSIONS is set; therefore, a full kernel build needs to be
66 executed to make module versioning work.
2) L'altra opzione è quella di dire allo stupido modprobe di ignorare tutta quella merda e caricare comunque il modulo:
modprobe -f <module>
Tendo a favorire l'opzione 2 :)