Compatibilidad del módulo del kernel de Linux (* .ko) entre los kernels

Tengo un objeto de kernel simple que construí para probar en la memoria del kernel.

Si lo construyo en mi máquina Ubuntu (3.2) de 64 bits, funciona bien en esa máquina. Pero no está en mi máquina Ubuntu de 64 bits (3.9). Y viceversa. Me da un error de "-1 Formato de módulo no válido" si intento ejecutarlo en una versión de Kernel diferente a la que había creado.

Pensé que InMod lo vinculaba dinámicamente con la tabla de símbolos exportada y la tabla de símbolos exportada no cambia entre las revisiones del kernel. (Se anexa.)

¿Puede alguien decirme cómo puedo construir un módulo de kernel (.ko) que sea compatible con los kernels de Linux futuros (o pasados) sin tener que ser reconstruido en ese kernel?

Aquí está mi archivo make:

ccflags-y = -g

obj-m + = access_mem.o

all: make -C / lib / modules / $ (shell uname -r) / build M = módulos (PWD)

limpio: haga -C / lib / modules / $ (shell uname -r) / compilación M = $ (PWD) limpio

Respuestas a la pregunta(2)

Su respuesta a la pregunta