[linux-l] Unresoved Symbols bei slackware

Jan-Benedict Glaw jbglaw at lug-owl.de
Do Mär 2 15:47:54 CET 2006


On Thu, 2006-03-02 15:23:57 +0100, Winfried Wendler <W.Wendler at Online.de> wrote:
> ich habe ein Problem mit dem Übersetzen eines Kernelmoduls. Unter SuSE laeufs,
> unter Slackware, wo es laufen soll, klappt es nicht. Das Uebersetzen
> funktioniert, aber beim Landen des Modules bleiben die Referenzen unaufgeloest

Hast Du das Modul auch mit der Slackware-Installation kompiliert oder
auf SuSE kompiliert und dann auf das Slackware-System kopiert?
Letzteres geht nämlich nicht, solange beide Systeme nicht exakt
denselben Kernel benutzen.

> "insmod ti_usb"
> meldet unresolved symbols. Zum Beispiel das Symbol
> "usb_deregister_Rsmp_2f9423f1"
> 
> In in /proc/ksyms finde ich bei:
> SuSE:   c2340230 usb_deregister_R8f12827e [usbcore]
> Slack:  c893d270 usb_deregister           [usbcore]
> 
> Ich denke, der Grund ist, dass bei Slackware die Labels kein Suffix besitzen,
> beim Uebersetzen des Moduls aber ein solcher Suffix erzeugt wird.

Das Modul muß mit den passenden Kernel-Header-Files kompiliert werden;
die beinhalten auch die komplette Konfiguration des Kernels. Hier ist
ein Unterschied bei der Konfiguration: Das Modul ist mit
CONFIG_MODVERSION=y gebaut worden, aber der Slackware-Kernel ohne. Das
_kann_ nicht laufen.

> Ich habe die Optionen beider Distributionen beim Kernelkompilieren verglichen,
> aber das Richtige noch nicht gefunden. Hat jemand eine Idee, welche Option ich
> beim Uebersetzen oder Linken setzen muss, damit es klappt?

Du mußt das Modul mit den Kernel-Header-Files des (laufenden)
Slackware-Kernels kompilieren; am einfachsten direkt auf dem
Slackware-System. Wenn Du zwingend auf dem SuSE-System bauen mußt,
dann mußt Du die Kernel-Sourcen (bzw. zumindest die Kernel-Headers)
des Slackware-Systems vorher kopieren.

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 für einen Freien Staat voll Freier Bürger"  | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20060302/7c7f12e1/attachment.sig>


Mehr Informationen über die Mailingliste linux-l