possible de charger le module du kernel qui "n'est pas d'accord sur la version du symbole"

J'ai téléchargé les sources pour mon kernel, j'ai appliqué un patch et je l'ai reconstruit. J'ai maintenant un module kernel qui, quand j'essaie d' insmod , se plaint de "Unknown symbol in module" avec dmesg donnant l'erreur "désaccord sur la version du symbole. . ".

Sans avoir à chercher la source de ce module et à la rebuild contre mon kernel, est-il possible de forcer le kernel à accepter ce module?

Je réalise que ce serait dangereux mais je vais prendre le risque si c'est possible.

insmod n'est pas le meilleur outil pour charger des modules – utilisez modprobe place, c'est plus intelligent. Dans la page de man de modprobe , vous findez qu'il a une option --force qui pourrait charger un module avec des informations de version en conflit.

Comme vous l'avez dit, c'est dangereux et ne devrait jamais être utilisé. Vous prenez les pièces si votre système saute.

Si vous reconstruisez la même version du kernel et que vous obtenez cette erreur, il est probable que le patch que vous avez appliqué ait changé quelque chose dans le kernel référencé par le module. Cela garantit à peu près que ça va exploser. Vous devrez find la source pour ce module et le comstackr à nouveau contre votre nouveau kernel afin qu'il ait les references correctes.

Il y a aussi une chance qu'il ne réussisse pas à comstackr du tout et doivent être modifiés pour correspondre aux modifications apscopes par votre patch kernel.

faire un make clean, et refaire dans votre directory de module, puis insmod, vous ne recevrez pas cette erreur. ou l'autre cas pourrait être que vous manquez les en-têtes du kernel, installez-les en fonction de la dissortingbution que vous avez.