No se cargaron los modules kernel que se comstackron para otro kernel

Quiero cargar los modules kernel, ip_gre.ko y gre.ko , en un dispositivo integrado que ejecute embedded-linux para que el dispositivo sea compatible con el protocolo GRE. Como no quiero cambiar el kernel del dispositivo Embedded-linux, bash cargar modules kernel en lugar de volver a instalar kernel del dispositivo.

Afortunadamente, tengo el código fuente del kernel de ese dispositivo, así pude comstackr los modules ip_gre.ko y gre.ko Sin embargo, los modules de carga que utilizan insmod en el dispositivo fallaron con los siguientes posts:

 $ insmod gre.ko insmod: can't insert 'gre.ko': Resource temporarily unavailable $ insmod ip_gre.ko ip_gre: Unknown symbol gre_del_protocol ip_gre: Unknown symbol gre_add_protocol insmod: can't insert 'ip_gre.ko': unknown symbol in module, or unknown parameter $ dmesg GRE over IPv4 demultiplexor drvier gre: can't add protocol ip_gre: Unknown symbol gre_del_protocol ip_gre: Unknown symbol gre_add_protocol 

Mi dispositivo tiene suficiente memeory para cargar modules (los free mostraron 190700/239760 son gratuitos).

¿Podrías decirme por qué sucede esto y sus posibles soluciones?

ACTUALIZAR:

Estas son diferencias entre .config de ejecutar kernel (en el dispositivo) y el de kernel comstackdo para los dos modules anteriores.

 $ diff config_for_running_kernel config_for_kernel_compiled_for_modules 299c299, 301 < # CONFIG_NET_IPGRE_DEMUX is not set --- > CONFIG_NET_IPGRE_DEMUX=m > CONFIG_NET_IPGRE=m > CONFIG_NET_IPGRE_BROADCAST=y 963c965 < CONFIG_PPTP=y --- > CONFIG_PPTP=m 

Como CONFIG_PPTP depende de CONFIG_NET_IPGRE_DEMUX , tuve que convertirlo en un module para comstackr el kernel sin post de error.

¿Las diferencias causan los posts de error anteriores? Si es así, ¿podría decirme cómo puedo solucionarlo …? (Y si tiene references adicionales que pueden enseñarme acerca de estos problemas y soluciones, estaría muy agradecido)

Resolví el problema parsing y modificando el module kernel. Analizar el código fuente del module kernel indica que las opciones de kernel compatibles deberían preocuparse de cargar los modules kernel como comentó Gilles. Cargando el module pptp kernel causó el problema porque el module pptp existente usa el protocolo IPGRE_PROTO que es igual a la identificación del protocolo gre . Kernel sin module gre habilitado utiliza IPGRE_PROTO como ID de protocolo pptp .