Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Fehlende Module nach Kernel-Compilierung?

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
Karsten Gorkow
Newbie
Newbie
Beiträge: 2
Registriert: 29. Mär 2006, 17:34

Fehlende Module nach Kernel-Compilierung?

Beitrag von Karsten Gorkow » 30. Mär 2006, 08:43

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

Werbung:
SP
Member
Member
Beiträge: 206
Registriert: 14. Mär 2004, 09:43

Beitrag von SP » 30. Mär 2006, 19:11

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
Die Optimisten glauben, dass wir auf der besten aller möglichen Welten leben;
Die Pessimisten befürchten, dass das stimmt.

openSUSE 10.3

spoensche
Moderator
Moderator
Beiträge: 7393
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Beitrag von spoensche » 31. Mär 2006, 11:46


Karsten Gorkow
Newbie
Newbie
Beiträge: 2
Registriert: 29. Mär 2006, 17:34

initrd / modules.conf

Beitrag von Karsten Gorkow » 31. Mär 2006, 12:41

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

Antworten