Hallo, beim Kompilieren des 2.6er Kernels fiel mir letztens auf dass man auf meinem System(4 Jahre alt, keine ausgefallende Hardware) mit der default-config keinen lauffaehigen Kernel erhaelt da einige Optionen für die Verwendung von IDE-Geräten fehlen. Gleichzeitig sind aber viele Optionen für Geräte die nicht zwingend für ein lauffaehiges System noetig sind aktiviert(Soundkarten, Videokarten uvm.). Sogar Optionen wie "Kernel debugging/SysRq Key", bei denen im Hilftext "don't say Y unless you really know what this hack does" steht sind per default aktiviert. Ist das Absicht oder hat sich nur noch niemand die Arbeit gemacht eine fuer die Masse der Systeme sinnvolle Konfiguration zu erstellen?
Gruss Jens
On 19.08.05 Jens Herrmann (jemihe@gmx.de) wrote:
Moin,
default-config keinen lauffaehigen Kernel erhaelt da einige Optionen für die Verwendung von IDE-Geräten fehlen.
So blöd es klingt, aber das kann ich mir kaum vorstellen. Der default Kernel läuft doch mit der Config, oder nicht? Wenn Du mit der Config einen aktuelleren Kernel bauen willst, mußt Du erst "make oldconfig" tippen (zumindest war das bis 2.4.x so).
Gleichzeitig sind aber viele Optionen für Geräte die nicht zwingend für ein lauffaehiges System noetig sind aktiviert(Soundkarten, Videokarten uvm.).
man featuritis
Sogar Optionen wie "Kernel debugging/SysRq Key", bei denen im Hilftext "don't say Y unless you really know what this hack does" steht sind per default aktiviert.
Nun, gerade SysRq ist ein extrem nützliches Feature, was ich in den ersten Versionen von 2.4 ab und zu gebraucht habe. Du kannst via Keyboard Shortcuts Befehle direkt an den Kernel senden, z.B. "sync", "remount ro", "boot". Das ist nützlich wenn die Kiste (bis auf den Kernel) tot ist.
Ist das Absicht oder hat sich nur noch niemand die Arbeit gemacht eine fuer die Masse der Systeme sinnvolle Konfiguration zu erstellen?
Steht im DBTS was?
H.
Hallo Jens!
Jens Herrmann jemihe@gmx.de:
beim Kompilieren des 2.6er Kernels fiel mir letztens auf dass man auf meinem System(4 Jahre alt, keine ausgefallende Hardware) mit der default-config keinen lauffaehigen Kernel erhaelt da einige Optionen fu:r die Verwendung von IDE-Gera:ten fehlen. Gleichzeitig sind aber viele Optionen fu:r Gera:te die nicht zwingend fu:r ein lauffaehiges System noetig sind aktiviert(Soundkarten, Videokarten uvm.). Sogar Optionen wie "Kernel debugging/SysRq Key", bei denen im Hilftext "don't say Y unless you really know what this hack does" steht sind per default aktiviert.
Bitte beschreibe dein System detailierter: Wo baust du den Kernel? Debian? Woher hast du die Kernelquellen? kernel.org oder Distribution? Woher ist die config? Mit welchen Befehlen baust du? Was fehlt genau?
Erik
Erik Schanze wrote:
Bitte beschreibe dein System detailierter: Wo baust du den Kernel? Debian?
Debian/testing
Woher hast du die Kernelquellen? kernel.org oder Distribution?
Distribution
Woher ist die config?
Ich hatte erst den Standard-Kernel benutzt und dann mit make menuconfig eine Neue erstellt.
Mit welchen Befehlen baust du?
make-kpkg kernel_image --append-to-version=.versX
Was fehlt genau?
Hab jetzt die Bezeichnung der Option nicht mehr parat da es schon 2 Wochen her ist. Der Fehler beim Booten des neuen Kernels trat jedenfalls beim Einhaengen der root-partition auf.
Interessanterweise bekam ich gerade auf 'make menuconfig' folgende Fehlermeldung:
### scripts/kconfig/mconf.c:91: error: static declaration of 'current_menu' follows non-static declaration scripts/kconfig/lkc.h:63: error: previous declaration of 'current_menu' was here make[1]: *** [scripts/kconfig/mconf.o] Fehler 1 make: *** [menuconfig] Fehler 2 ###
Beheben laesst sichs mit Enfernen von 'static' in ersterem Script. Bei meiner Kernel-Kompilierorgie vor ein paar Wochen trat dieser Fehler nicht auf. Warum aber jetzt?
Gruss Jens
Am Samstag, 20. August 2005 18:48 schrieb Jens Herrmann:
Beheben laesst sichs mit Enfernen von 'static' in ersterem Script. Bei meiner Kernel-Kompilierorgie vor ein paar Wochen trat dieser Fehler nicht auf. Warum aber jetzt?
$ echo "void foo();static void foo(){}" > foo.c
$ gcc-4.0 -Wall -c foo.c foo.c:1: error: static declaration of ‘foo’ follows non-static declaration foo.c:1: error: previous declaration of ‘foo’ was here $ echo $? 1
$ gcc-3.4 -Wall -c foo.c foo.c:1: aviso: la declaración static de 'foo' a continuación de una no static foo.c:1: aviso: la declaración previa de 'foo' estaba aquí $ echo $? 0
Da hat wohl ein Heinzelmännchen den Compiler ausgewechselt...
Josef
Jens Herrmann wrote:
Hallo,
Hi,
beim Kompilieren des 2.6er Kernels fiel mir letztens auf dass man auf meinem System(4 Jahre alt, keine ausgefallende Hardware) mit der default-config keinen lauffaehigen Kernel erhaelt da einige Optionen für die Verwendung von IDE-Geräten fehlen. Gleichzeitig sind aber viele Optionen für Geräte die nicht zwingend für ein lauffaehiges System noetig sind aktiviert(Soundkarten, Videokarten uvm.). Sogar Optionen wie "Kernel debugging/SysRq Key", bei denen im Hilftext "don't say Y unless you really know what this hack does" steht sind per default aktiviert. Ist das Absicht oder hat sich nur noch niemand die Arbeit gemacht eine fuer die Masse der Systeme sinnvolle Konfiguration zu erstellen?
AFAIK wird bei make menuconfig oder sonstigem die config aus /boot/config-`uname -r` geparsed. Wenn man einen aelteren Kernel verwendete (wie irgendeinen 2.4er), kann es sein, dass bestimmte Optionen in der config datei anders heissen oder es neue Optionen gibt. Diese finden keine Entsprechung in der neuen Kernelversion und werden verworfen.
Dies ist nicht distributionsspezifisch. YMMV
MfG -Dimitri aka Tristan-777
Nein, bei 'make menuconfig' wird die .config im root-Verzeichnis der Kernel-Quellen geparsed.
aber nach make mrproper gibts keine .config dort.
Dann wird bei make menuconfig eine neue mit default-Werten erzeugt. Benutzt man dagen make cloneconfig wird die des aktuellen kernels verwendet die unter /proc/config.gz zu finden ist (bei oldconfig möglicherweise auch). Zumindest bei 2.6. Oder man kopiert die vom Distributor unter /boot.
MfG, Silvio
lug-dd@mailman.schlittermann.de