Re: Kernel compiliert nicht mehr
Moin Thorsten
Thorsten Haude wrote:
Trotzdem würde ich gerne wissen, wie die Sache passieren konnte,
besonders:
- An welchen Stellen außer in /usr/src/linux werden Informationen über
den Kernel aufbewahrt, vor allem solche, die durch 'make dep', 'make
clean' und ihre Kumpels nicht beeinflußt werden?
- Wie ist der Zusammenhang zwischen /usr/src/linux und
/lib/modules/$version?
Ich verstehe zwar auch nicht viel von dem Thema, aber vielleicht fühlt
sich jemand, der davon etwas versteht, animiert, mein möglicherweise nur
so von Unsinn strotzenden Geschreibsel zu korrigieren. ;-)
Meines Wissens liegt - falls Du nicht in den verschiedenen makefiles
innerhalb des src-Verzeichnisses händisch eingegriffen hast - nichts
außerhalb dieses Verzeichnisses. Es landen dann nur die "Endprodukte" in
/usr/lib und Deinem boot-Verzeichnis (/ oder /boot normalerweise). Das
auch wieder mehr oder weniger automatisch. Abhängig davon, welchen Weg
du nimmst.
Allerdings bleiben alle "Zwischenprodukte" innerhalb des src-Verzeichnis
liegen. Diese Dateien werden beim nächsten Bauen des Kernels mitbenutzt,
obwohl du die entsprechenden Config-Parameter vielleicht schon wieder
deaktiviert hast. Um hier trotzdem einen sauberen Stand hinzubekommen,
gibt es die make-Parameter clean, mrpropper und was weiß ich noch, die
in verschiedener Gründlichkeit diese Zwischenprodukte löschen.
Möglicherweise gibt es noch eine andere Fehlerquelle. make *config ist
intelligent. Verschiedene Parameter hängen voneinander ab. Wenn Du die
Datei manuell bearbeitest, könntest Du diese Abhängigkeiten missachten
und "unresolved symbols" erzeugen.
Für den Namen des Kernels gibt es auch wieder verschiedene Parameter (s.
Makefile): VERSION, PATCHLEVEL, EXTRAVERSION, ..., die man (teilweise)
als Umgebungsvariablen setzen kann. Damit entsteht dann z.B. so ein
Kernelname:
Linux flinker 2.4.18-erno.005 #1 Tue Sep 24 21:44:13 CEST 2002 i686 unknown
^^^^^^^^^^^^^^^
Genau dieser Name bestimmt dann auch den Namen des zugehörigen
Modulverzeichnisses:
erno@flinker:/usr/src/linux$ ls -l /lib/modules
total 7
drwxr-xr-x 12 root root 1024 May 20 2002 2.2.19-ide
drwxr-xr-x 4 root root 1024 Sep 11 23:52 2.4.18
drwxr-xr-x 4 root root 1024 Aug 18 20:31 2.4.18-DMA
drwxr-xr-x 4 root root 1024 Sep 14 00:07 2.4.18erno0003
drwxr-xr-x 4 root root 1024 Sep 21 16:16 2.4.18-erno.004
drwxr-xr-x 5 root root 1024 Oct 6 19:36 2.4.18-erno.005
Wenn Du also Dein ursprüngliches config-file aus dem /usr/src/linux
wegsicherst, dann dort ein make mrproper clean ... (schau in die Doku,
was es alles gibt und was notwendig ist) machst, Dein lib-Verzeichnis
löschst (oder lieber erst einmal umbenennst), müsstest Du wieder einen
sauberen Ausgangszustand bekommen. Zu vergessen ist dabei natürlich auch
nicht, die notwendigen Schritte bzgl. Module durchzuführen.
Sorry, dass ich mich so allgemein ausgedrückt habe. Ich schreibe es
lieber so, als falsche Begriffe zu verwenden. Mein Gedächtnis... ;-)
Außerdem mache ich das mittlerweile alles mit make-kpkg. Dann dauert ein
Kernel zwar etwas länger (weil von Hause aus wohl gründlich aufgeräumt
und neu compiliert wird), aber man kann nicht so viel vergessen. Nur der
letzte Schritt (lilo) gefällt mir standardmäßig nicht so ganz. Das mach
ich lieber manuell, weil ich den bisherigen Kernel mit dem bisherigen
Namen dort eingetragen haben möchte.
Ab nach /dev/null ?
Gruß
Rüdiger
--
__________________________________________________________________
Gesendet von Yahoo! Mail - http://mail.yahoo.de
Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de
Reply to: