Un'ultima domanda.
Poniamo la seguente situazione:
abbiamo configurato, compilato e installato il kernel 4.0-smp e relativi moduli.
Poi per qualche motivo abbiamo rimosso i sorgenti, oppure abbiamo dato un "make clean" o "make mrproper" che ha riportato i sorgenti allo stato pulito.
Ora ci viene in mente di modificare il modulo "option" e testarne le modifiche: quindi dobbiamo modificarlo, ricompilarlo e installarlo.
Ma sta volta ci manca qualcosa, non avendo più i sorgenti del kernel lavorati disponibili.
Domanda:
Abbiamo qualche speranza di risparmiarci la compilazione dell'intero kernel oppure ci tocca?
Da come leggo nella documentazione servirebbe:
1- il ".config" relativo al nostro kernel in uso
2- gli headers relativi al nostro kernel in uso
3- file Module.symvers (immagino generato dalla compilazione del nostro kernel in uso)
Ecco il pezzo della documentazione che spiega cosa serve per compilare un modulo esterno.
Codice: Seleziona tutto
=== 2. How to Build External Modules
To build external modules, you must have a prebuilt kernel available
that contains the configuration and header files used in the build.
Also, the kernel must have been built with modules enabled. If you are
using a distribution kernel, there will be a package for the kernel you
are running provided by your distribution.
An alternative is to use the "make" target "modules_prepare." This will
make sure the kernel contains the information required. The target
exists solely as a simple way to prepare a kernel source tree for
building external modules.
NOTE: "modules_prepare" will not build Module.symvers even if
CONFIG_MODVERSIONS is set; therefore, a full kernel build needs to be
executed to make module versioning work.
se voglio modificare un modulo e testarlo, per compilarlo e installarlo in modo che funzioni devo compilare da capo il kernel.
La questione del "make modules_prepare" non l'ho capita: cosa farebbe questo comando esattamente?
Fa solo una verifica oppure scrive anche qualcosa?
Però a me viene in mente:
ma se io ho dopo che ho compilato la prima volta mi copio e conservo gli headers, il config, e anche il Modules.symvers dovrei poter ricreare la situazione di post compilazione del mio kernel in uso.... o no?
In ogni caso grazie ancora per la spiegazione!
