Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Kernel Modul Problem

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
funkybooster
Gast





BeitragVerfasst am: 13. Jan 2003 15:20   Titel: Kernel Modul Problem

Hallo zusammen

Ich bin dabei ein Kernelmodul (für einen PCI Acclerator) zu kompilieren. Das Embedded-Linux-Zielsystem ist selbst gestrickt (mit Kernel 2.4.18, glibc, busybox, tinylogin).

Ich habe die Makefiles vom Kernelmodul so verbogen, dass die Pfade zu meinem Embedded-Linux-Kernel (Name: 2.4.1Cool zeigen und nicht zu den Sourcen dess Entwicklungsrechners (Name (SuSE Kernel): 2.4.18-4GB) zeigen. Mein Embeddedkernel hat Unterstützung für Module, bis jetzt habe ich aber kein "make modules" durchgeführt weil ich alle benötigten Treiber gerade in den Kernel hineinkompiliert habe. Das Modul für den PCI Acclerator fügt sich nicht in die Kernelsourcen ein sondern bringt eigene Makefles mit.
Das Modul wird einwandfrei kompliert. Versuche ich das Ding auf dem Embeddedrechner mit
#insmod <modulname.o>
zu laden, erscheint folgender Output:
insmod: unresolved symbol remap_page_range
insmod: unresolved symbol __wake_up
insmod: unresolved symbol printk
insmo.....
Das Modul wird also nicht geladen.

Versuche ich das Modul auf dem Entwicklungsrechner zu laden wird mir gesagt, dass die Versionen (Modul für 2.4.18 aber Kernel 2.4.18-4GB) nicht übereinstimmen. Finde ich OK.
Ein
#insmod -f <modulname.o>
bricht dann in init_module mit der Meldung ab, dass keine Karte gefunden wurde. Das stimmt auch, also OK.

Ein
#nm <modulname.o> | grep printk
liefert
U printk

Eigendlich habe ich hinten eine Zahl erwartet. Aber jedoch scheint das Modul auf dem Entwicklungsrechner doch zu funktionieren (da erst in init_module abgebrochen wird).

Meine Frage:
o Weshalb scheint das Ding auf dem Entwickungsrechner geladen zu werden (keine unresolved symbols) und auf dem Embedded Rechner nicht?
o Wieso spuckt nm keine Zahl aus?
o Was für Voraussetzungen müssen erfüllt sein, dass ich erfolgreich ein Modul laden kann?
o Woher kriegt der Linker die Info, wo die Funktionen (wie prinkt....) zu finden sind?
o Was kann ich noch probieren/überprüfen?

Vielen Dank

David
 

Jochen
Gast





BeitragVerfasst am: 14. Jan 2003 8:22   Titel: Re: Kernel Modul Problem

Aus Deiner Schilderung heraus kann ich nur ein mögliches Problem erkennen. Nur ist das so eine simple Sache, dass Du wahrscheinlich selbst schon daran gedacht hast:

Wenn der Embedded-Kernel alle Treiber fix im Kernel eingebunden hat - hast Du dann die Modul-Untterstützung überhaupt aktiviert? "Kernel Module Loader" (kmod, CONFIG_KMOD) und "Set version information on all module symbols" (CONFIG_MODVERSIONS) sind nicht notwendig, aber "Enable loadable module support" (CONFIG_MODULES) muss schon aktiv sein. Dass printk() beim Laden nicht als Symbol gefunden werden kann, scheint ein Hinweis in diese Richtung zu sein.

Vielleicht hilft's ja ein bisschen.

Jochen
 

tj
Gast





BeitragVerfasst am: 14. Jan 2003 11:32   Titel: Re: Kernel Modul Problem

Hi,

soweit ich das verstehe, fehlt in deinem embedded Kernel was (die unresolved symbols) um das modul zu laden.

Ist dein PCI Acclerator modul das einzige? Wenn ja, bringt dich modprobe ja auch nicht weiter...

Ich wuerde den Kernel-sourcecode mal nach der definition von z.B. remap_page_range durchgucken und sichergehen, dass das mitkompiliert wird.

Viel Glueck, tj
 

funkybooster
Gast





BeitragVerfasst am: 15. Jan 2003 22:20   Titel: Re: Kernel Modul Problem

DIE LÖSUNG

Danke für Eure Antworten. Das Problem lag an der Einstellung CONFIG_MODVERSIONS. Der Entwicklungspckernel hatte die Einstellung "n" und der Embeddedkernel die Einstellung "y". Beim kompilieren wurde auf die Einstellungen des Entwicklungspckernels gegriffen (obwohl ich meinte, alle Pfade im Makefile anzupassen an den Embeddedkernel....). Die Lösung: Embeddedkernel auch mich CONFIG_MODVERSIONS kompilieren....

Merci & Tschüss

fb
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy