Karl Sinn wrote:
Am Mittwoch, 14. Juli 2004 08:36 schrieb Thomas Hertweck:
Das wird so nicht gehen: nach einem "make mrproper" ist keine .config mehr vorhanden, wie Du auch selbst geschrieben hast. Ein "make oldconfig" erwartet aber eine existierende .config Datei, die dann fuer den neuen Kernel angepasst wird. Nach einem "make mrproper" muss man also entweder eine alte Konfigurationsdatei von Hand nach .config kopieren und danach "make oldconfig" ausfuehren, oder aber man benutzt "make cloneconfig" (geht nicht bei Vanilla-Kerneln), das uebernimmt die noetigen Schritte alle gleich mit.
Ups....
Ich bin gerade dabei mir einen Kernel zu kompilieren. Dass make mrproper die .config löscht habe ich nach ein paar versuchen rausgefunden. Aber: Ein make oldconfig erstellt bei mir eine .config
Das ist korrekt. Ich habe mich oben nicht praezise genug ausgedrueckt. Lass es mich so formulieren: Wenn Du nach einem "make mrproper" ein- fach ein "make oldconfig" ausfuehrst, dann ist die Konfiguration evtl. nicht wie Du erwarten wuerdest. Existiert keine .config Datei und es wird "make oldconfig" aufgerufen, so wird als Grundlage fuer die Kon- figuration die Datei arch/$ARCH/defconfig verwendet (bei Dir duerfte $ARCH vermutlich i386 entsprechen). Existiert eine .config und es wird "make oldconfig" aufgerufen, so wird die bereits existierende .config als Grundlage fuer die Konfiguration des neuen Kernels verwendet. Das kann ein _grosser_ Unterschied sein und ob die Grundlage aus defconfig fuer Dein System passt, ist fraglich. Es ist vermutlich besser, eine fuer sein System bereits als funktionierend bekannte Konfiguration her- zunehmen, diese nach .config zu kopieren und dann "make oldconfig" auf- zurufen statt auf die Default-Konfiguration zu vertrauen. Deswegen mein erster Hinweis, den ich allerdings etwas ungluecklich bzw. unpraezise formuliert habe. Ein "make cloneconfig" kopiert bei einem SuSE-Kernel exakt die Konfi- guration des laufenden Kernels. Hast Du also einen funktionierenden Kernel am Laufen, so sollte dann auch die neue Konfiguration im Prinzip funktionieren (wenn Du bei zusaetzlichen Fragen, die gestellt werden, da ja evtl. neue Features im neuen Kernel sind, keinen Unsinn antwor- test). Nochmal zur Verdeutlichung der Unterschide: o Ein "make cloneconfig" entspricht einem "zcat /proc/config.gz > .config && make oldconfig". Hier wird exakt die Konfiguration des laufenden Kernels auf die neuen Quellen uebertragen. o Ein "make oldconfig" bei einer _fehlenden_ .config entspricht auf einem i386 System einem "cp arch/i386/defconfig .config && make oldconfig". Hier wird exakt die Default-Konfiguration auf die Quellen uebertragen. o Bei einem "cp /irgendeine/Konfiguration .config && make oldconfig" uebertraegt man genau die von irgendwoher kopierte Konfiguration auf die Kernel-Quellen. In den allermeisten Faellen schafft ein "make cloneconfig" (gibt es nur bei SuSE-Kernelquellen) bzw. ein "zcat /proc/config.gz > .config && make oldconfig" (geht auch bei Vanilla-Kernelquellen, solange es die config.gz in /proc gibt) eine gute Grundlage fuer eigene Versuche zum Kernelerstellen. HTH, Thomson