• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Fehlende Module nach Kernel-Compilierung?

Hallo,
ich bin neu hier, daher erstmal ein krachendes "Grüss Gott" an alle.

Mein Problem:
Ich möchte einen LAN-Zugang über OpenVPN unter Linux einrichten. Ich habe SUSE Linux 7.2, Kernel 2.4.4. Da die TUN/TAP-option nicht aktiviert war, habe ich habe die Konfiguration des Kernels mittels make menuconfig (vorher: make clean && make mrproper) erledigt und dabei, so weit ich es nachvollziehen konnte, die Optionen aus der alten ".config" übernommen und zusätzlich die TUN/TAP Option aktiviert. Anschließend habe ich alle nötigen Schritte ausgeführt und den Kernel kompiliert (make dep, make bzImage, make modules, make modules_install). Die Kompilierung ging auf dem 1GHz Pentium 3 zielsystem mit 256MB RAM erstaunlich schnell (< 5 Minuten) - lt. meinen Informationen kann das nicht realistisch sein. Ein neuer Kernel wurde erzeugt, den habe ich über lilo auch korrekt installiert, er bootet sogar! Aber: Ich habe kein Netzwerk-Interface (ifconfig zeigt nur "lo", normalerweise [mit altem Kernel] aber eth0 und eth1). Beim Booten sind einige Fehlermeldungen in boot.msg zu finden (z.B.: "modprobe: can't locate module eth0" und Folgefehler bei div. TCP/IP Protokollen etc.). Wenn ich unter /lib/modules nachsehe, finde ich 2 Verzeichnisse:

/lib/modules/2.4.4
und
/lib/modules/2.4.4-4GB

Das erstere enthält einige Verzeichnisse mit dem aktuellen Tagesdatum, d.h. ich nehme an, es wurde beim letzten Kernelbuild erstellt, das andere ist älteren Datums und darin finden sich wesentlich mehr Verzeichnisse und Unterverzeichnisse etc..
Meine Vermutung ist: Es wurden mit dem letzten Kernel-Rebuild nicht alle notwendigen Module übersetzt, daher auch die kurze Compilierzeit. Vermutlich ist das Übersetzen aller Module auch nicht nötig, da ich ja nur eine "klitzekleine" Option verändert habe.

Liege ich mit obiger Annahme richtig? Wenn ja, dann habe ich offensichtlich etwas falsch gemacht, wie geht's denn richtig? Meine Anleitungen zum Kernelrebuild helfen mir leider nicht weiter. Wie kann ich meinen neuen Kernel korrekt zum Laufen kriegen?

Gruß,
Karsten
 

SP

Member
Erstmal herzlich willkommen!

Hast du beim Übersetzen auch eine neue initrd erstellt, falls du eine benutzt? Sonst musst du das noch mit mkinitrd nachholen. Normalerweise wird der Treiber für die Netzwerkkarte ja nicht in den Kernel einkompiliert, muss also noch geladen werden. Das passiert entweder in der initrd oder im Normalfall durch einen Eintrag in /etc/modules.conf (heißt bei SuSE evtl. anders, bewirkt aber das gleiche).

Gruß sp
 
Danke für den Link. Ich möchte den Kernel eigentlich nicht updaten, sondern lediglich eine Option verändern - IMHO ist die veränderte Version ja auch fertig, die Module machen Probleme. Oder irre ich?
Wie kann ich denn erkennen, ob initrd überhaupt verwendet wird? Ich habe hier noch einen zweiten Entwicklungsrechner, in dessen lilo.conf sind "initrd"-Verweise drin, im eigentlichen Zielsystem findet sich dahingegen nix dergleichen. Kann ich davon ausgehen, daß mein Zielsystem die Module nicht über RAM-Disk lädt (so habe ich die Funktion von initrd verstanden)? Oder gibt's da noch andere Hinweise?

(Nachtrag: in /boot/initrd existiert bei mir nicht, weder als link noch als file)

modules.conf: Da muß ich mich erstmal einlesen!

(Nachtrag: modules.conf enthält bzgl. eth0 lediglich "alias eth0 3c59x", ok. Der einzige weitere Eintrag bzgl 3c59x ist auskommentiert. Hier scheint auch nix weiter einstellbar zu sein.)

Ich verstehe folgenden Sachverhalt nicht ganz: Ich habe IMHO lediglich in meiner Kernelkonfiguration etwas verändert, warum kann der neu kompilierte Kernel, der ja die identische Version hat wie der alte Kernel, nicht einfach die Module der alten Kernelvariante mitverwenden? Ich habe mal aus
/etc/modules/2.4.4-4GB
alles was nicht bereits vorhanden war nach
/etc/modules/2.4.4
Es funktioniert trotzdem nicht, da war ich wohl zu naiv.

Ich wollte doch für OpenVPN nur TUN im Kernel haben ... schnüff.

Gruß,
Karsten
 
Oben