2012-04-24 11 views
5

Wenn ich ein insmod Kernel-Objekt. Es fehlschlägt wegen einiger unbekannter Symbole in diesem Modul.Insmod schlägt fehl, weil aus unbekanntes Symbol im Modul

Aber aus irgendwelchen Gründen zeigt es mir nicht die Symbole (die es als unbekannt bezeichnet).

Wie auch immer, das zu finden? Bitte beraten.

+1

Das Systemprotokoll enthält möglicherweise Informationen zu diesen Symbolen. Sehen Sie sich die entsprechenden Einträge in '/ var/log/messages','/var/log/kmesg' an oder welche Datei das Systemprotokoll auf Ihrem System enthält. Dort sollte eine Nachricht sein, über welche genau Symbole nicht gefunden wurden. – Eugene

+1

Sie haben wahrscheinlich die Ausgabe von 'dmesg' angesehen, nachdem der Versuch, das Modul einzufügen, fehlgeschlagen ist. Gab es etwas Verdächtiges? – Eugene

+1

Danke Eugene !! Ich habe es etwas tiefer gegraben und das proc/Kallsyms sah auch eine gute Option für mich aus, ein schneller Vergleich von EXPORT SYMBOLS in der Quelldatei und Symbolen, die tatsächlich exportiert wurden, wie durch diese Datei dargestellt, ergibt ein besseres Bild. Es hat mir geholfen, das Problem zu lösen. –

Antwort

1

Das kann passieren, wenn Ihr Linux-Kernel und Ihre Module nicht übereinstimmen. Fälle wie Sie tun eine Insmod in eine andere Kernel-Version als die, für die Sie das Modul erstellt haben.

Stellen Sie sicher, dass Sie die Kernel-Version ausführen, auf der Ihr Modul erstellt wurde. Ich nehme an, Sie haben die falsche Version der Kernel-Header verwendet. Versuchen Sie das zu ändern.

Verwandte Themen