Ho un semplice oggetto kernel che ho creato per sondare la memoria del kernel.Modulo Kernel Linux (* .ko) compatibilità tra i kernel
Se lo compilo sulla mia macchina Ubuntu (3.2) a 64 bit, funziona bene su quella macchina. Ma non insmod sulla mia macchina Ubuntu (3.9) a 64-bit. E viceversa. Mi dà un errore "-1 modulo non valido" se cerco di eseguirlo su un Kernel rev diverso da quello su cui l'ho installato.
Ho pensato che insmod l'ha collegato dinamicamente alla tabella dei simboli esportata e la tabella dei simboli esportata non cambia tra le revisioni del kernel. (Viene aggiunto.)
Qualcuno può dirmi come posso creare un modulo del kernel (.ko) che sia compatibile con i kernel Linux futuri (o passati) senza dover essere ricostruito su quel kernel?
Ecco il mio file marca:
ccflags-y = -g
obj-m + = access_mem.o
tutto: make -C/lib/modules/$ (shell uname -r)/costruire M = $ (PWD) moduli
pulita: make -C/lib/modules/$ (shell uname -r)/costruire M = $ (PWD) puliti
La tua Ubuntu 3.2 è una versione a 32-bit o 64-bit? Stessa domanda con Ubuntu 3.9 – nouney
Entrambi a 64 bit. Grazie per avermi ricordato questo importante punto dati. –