Kernel 2.6......

  • Hallo!
    Hab seit kurzem Slackware und mir den 2.6.23.1 Kernel runtergeladen, konfiguriert....usw.
    Mein Problem: Wenn ich den computer starte, kann ich gottseidank zwischen altem u. neuem kernel wählen. Wenn ich den 2.6er Kernel wähle, seh ich aber nichts. Ich kann aber "blind" meinen namen + passwort eingeben und mit startx die grafische Oberfläche starten, das haut also hin. Ich würde aber gerne auch ohne grafische oberfläche arbeiten können...
    Also: hat jemand eine ahnung was ich bei der konfiguration falsch gemacht haben könnte, und kann ich das auch ändern ohne den ganzen kernel neu konfigurieren zu müssen?
    lg cremlin

  • Sowas hab ich beim Update von Kubuntu 7.04 auf 7.10 erlebt, allerdings mit einem 2.6.22-Kernel. Abhilfe hat hier, wenn ich mich richtig erinnere, geschafft, die Module fbcon und vesafb in die initrd einzubauen.

  • einfach in der lilo.conf vga=normal setzen (default is glaub ich vga=773) dann sollts hinhauen.

    Und eine Stimme aus dem Chaos sprach zu mir:
    lächle und sei froh, es könnte schlimmer kommen.
    Und ich lächelte und war froh, und es kam schlimmer!

  • soha. Hab erst mal das in der lilo.conf geaendert, da hat sich aber nix getan. Danach hab ich versucht die 2 module in die initrd einzubauen (laut der README-Datei im /boot verzeichnis). Dann ist so eine Meldung erschienen (weiss sie nichtmehr wortwoertlich) dass fbcon nicht vorhanden ist, hab also wahrscheinlich vergessen die mitzucompilieren wie ich den Kernel uebersetzt hab. Naja, auf jeden fall ist mir auch eingefallen, dass ich vergessen hab lilo in die kommandozeile zu tippen, nachdem ich die lilo.conf veraendert hab, was ich dann auch gemacht hab. Wenn ich jetzt mit dem 2.6er Kernel boote, kann ich mich zwar anmelden, es erscheint aber eine Meldung, dass kein home-verzeichnis fuer den user vorhanden ist und als home-verzeichnis wird einfach/standardmaessig '/' gesetzt. Und startx haut auch nichtmehr hin. Beim login steht auch nix von 2.6.23.1-kernel, sondern von 2.6.13. Haengt sehr wahrscheinlich damit zusammen, dass ich die initrd mit kernel-generic-2.6.13* und 2 anderen programmen erstellen wollte.

    Hab auf jeden fall das gefuehl, dass ich da bald nichtmehr durchblicke, rutsche von einem problem ins naechste. Hab gehoert, dass die neueren slackware-versionen standardmaessig den 2.6er-Kernel verwenden. Ich denke, ich werd mir einfach mal eine neuere version besorgen. Ausser es hat jemand eine ahnung was ich da falsch gemacht habe und wie ich's mit ein paar handgriffen wieder in ordnung bringe. Waere mir auf jeden fall lieber, als wieder von vorne beginnen - damit ich mal ein erfolgserlebnis in zusammenhang mit linux haben kann =)
    lg

  • Anstatt die Module in die init.rd für den alten Kernel einzubauen hast du 2 Möglichkeiten, falls du es doch noch versuchen möchtest, ohne Neuinstallation:

    Alternative 1) Kompiliere den Kernel erneut (wenn du die Quellen schon übersetzt hast und nicht "make clean" gemacht hast, sollte das recht flott gehen.
    Kleiner Tipp am Rande mit der Taste "/" kann man sogar im Textmodus nach "make menuconfig" (zum konfigurieren des Kernels - ausgeführt aus dem Kernelquellordner) nach bestimmten Modulnamen(Textmustern) suchen.
    Findest so leicht deine benötigten Module.
    Das Modul fbcon hat den Namen "FRAMEBUFFER_CONSOLE".
    Achtung da du noch LiLo verwendest, nicht vergessen nach "make modules_install" und "make install" lilo erneut aufzurufen.
    Es ist ganz normal, das man ein paar Module zuwenig im Kernel hat und nachdem du keine Kernel Panic hattest hast du zumindest notwendigsten Dateisystem, IDE/SATA module integriert, kann also nicht mehr allzuviel fehlen ;)

    Alternative 2) Erzeuge die Initrd für den richtigen Kernel
    Kontrolliere dass der "Link" /usr/src/linux auf das Verzeichnis deiner neuen Kernelquellen verweist - das kann auch für andere Kompiliervorgänge von Bedeutung sein.

    Code
    # cd /usr/src; rm linux; ln -s <linux quellordner> linux

    Falls du "mkinitrd" installiert hast, solltest du dann leicht mittels "mkinitrd <Initramdisk-dateiname> <Kernelversion>" also z.B.:

    Code
    mkinitrd /boot/initrd-2.6.23-r1 2.6.23-1

    die Initrd mit den Modulen für den richtigen Kernel generieren können (evtl. in /etc/lilo.conf die initrd angeben).
    Oder mit welchen Kommandos hast du deine initrd erzeugt ?

    mfg
    hagbard

    "1.6 Definition: Undefined behavior -- behavior, upon use of a nonportable or erroneous program construct, ... for which the standard imposes no requirements. Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to having demons fly out of your nose.
    In short, you can't ... and if you do, demons may fly out of your nose.
    OK, OK; so the Standard doesn't *ACTUALLY* mention demons or noses. Not as such, anyway." from Usenet:comp.std.c 26 Feb.1992

  • hallo! Ich waer ja fuer die 2. Alternative. Kann mich nichtmehr genau erinnern, aber ich glaub ich habs mit "mkinitrd -k 2.6.23.1 -m fbcon vesafb" versucht. Ich hab im /boot verzeichnis keine spezielle initrd-datei sondern ein initrd-tree verzeichnis. In /usr/src zeigt linux auf linux-2.6.23.1 (das sich im gleichen verzeichnis befindet), das sollte ja passen, oder? Hab nach diesem framebuffermodul gesucht, aber nix gefunden (find / -name *FRAMEBUFFER* -print - hab ich da eh richtig gesucht?). Komm ich trotzdem um ein neukompilieren/konfigurieren herum? Bis ich da wieder das richtige zeug ausgewaehlt hab, vergeht 3mal so viel zeit wie das kompilieren dauert =(. Kann man sich die module auch einzeln irgendwo besorgen/runterladen, oder in welchem verzeichnis sollten die sich denn befinden? lg

  • In /usr/src zeigt linux auf linux-2.6.23.1 (das sich im gleichen verzeichnis befindet), das sollte ja passen, oder?

    ja.


    Hab nach diesem framebuffermodul gesucht, aber nix gefunden (find / -name *FRAMEBUFFER* -print - hab ich da eh richtig gesucht?).

    nein.

    Code
    egrep FRAMEBUFFER /usr/src/linux/.config

    bzw solltest du das machen:

    Code
    cd /usr/src/linux
    make menuconfig

    in dieser GUI kannst du dann mit '/' eine suche starten.

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • Also alle deine installierten Module für die entsprechende Kernelversion kannst du unter "/lib/modules/<Kernelversion>" finden.
    2.6-er Kernelmodule haben die Endung .ko (Kernelobject oder so).
    Der Name vom Modul das du suchst sollte also "fbcon.ko" sein.
    Du müsstest also mit "find /lib/modules -name 'fbcon.ko' -print" suchen können (print kannst weglassen ist standard).
    Und beim erneuten kompilieren musst du NICHT alle Optionen nochmal auswählen, sondern falls dus nicht gelöscht hat wird nach der Kernelkonfigrationsphase die Datei ".config" angelegt, falls du diese gelöscht hast siehe unten.

    Um zu sehen ob du die Option im Kernel überhaupt aktiviert hast gibt es zwei Möglichkeiten:

    1) Im Kernelquellordner in der Konfigurationsdatei, die du mit "make config"/"make menuconfig" oder wieauchimmer erstellt hast falls noch nicht entfernt.
    Kernelquellordner sollte unter /usr/src/linux zu finden sein, also um genau zu sein sollte dieser Link auf den eigentlichen Ordner /usr/src/linux-<Kernelversion> verweisen.
    Name der Datei ist .config. Kannst in dieser Datei suchen mittels:

    Code
    grep CONSOLE /usr/src/linux/.config

    2) Seit ein paar Jahren gibt es eine Kerneloption, die die Möglichkeit bietet aus /proc in gzip komprimierter Form die Konfiguration des laufenden Kernels auszulesen.
    Sehr praktisch wenn man einen laufenden Kernel aktualisieren möchte.
    Deine Kernelkonfigurationsoption heisst: CONFIG_FRAMEBUFFER_CONSOLE
    Also versuch mal:

    Code
    gunzip -c /proc/config.gz | grep CONSOLE

    Sofern du die Option die das erlaubt aktiviert hast.
    Wenn du deine Konfiguration(.config im Kernelquellordner) nicht mehr hast, kannst du so die Konfiguration wieder erzeugen mit z.b.:

    Code
    gunzip -c /proc/config.gz > /usr/src/linux/.config

    Initrd-tree:
    Uhm sowas hab ich noch nie gesehen, sicher dass der Baum auch verwendet wird ?
    Üblicherweise ist das eine komprimierte Datei - habe grade mein mkinitrd überprüft das kennt keine Option "-k" sondern verlangt "mkinitrd [-m Module, ..] <Imagename> <Kernelversion>" als Parameter.
    Versuch mal mit mkinitrd eine Datei als Imagename zu machen - siehe man mkinitrd - aber das ist nicht dein eigentlich problem irgendwo hast du gepostet, dass er da sagte fbcon nicht vorhanden.
    Baus fix in den Kernel dann brauchst keine initrd mehr.

    mfg
    hagbard

    "1.6 Definition: Undefined behavior -- behavior, upon use of a nonportable or erroneous program construct, ... for which the standard imposes no requirements. Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to having demons fly out of your nose.
    In short, you can't ... and if you do, demons may fly out of your nose.
    OK, OK; so the Standard doesn't *ACTUALLY* mention demons or noses. Not as such, anyway." from Usenet:comp.std.c 26 Feb.1992

  • ok, die .config datei hab ich noch. Beim suchen nach framebuffer (mit menuconfig) werden da gleich mehrere eintraege angezeigt, welcher is denn da der richtige? Wenn ich fbcon eingebe, wird nix gefunden. Menuconfig bringt mir aber im moment nicht viel, weil ich immer, nachdem ich was geaendert hab, die meldung "Error during writing of the kernel configuration. Your kernel configuration changes were NOT saved" bekomme. Ich kann die Konfiguration doch auch direkt ueber .config aendern, oder? Wenn ja, was genau sollte ich da reinschreiben?

  • Zitat


    ok, die .config datei hab ich noch. Beim suchen nach framebuffer (mit menuconfig) werden da gleich mehrere eintraege angezeigt, welcher is denn da der richtige? Wenn ich fbcon eingebe, wird nix gefunden.

    Wie ich bereits gepostet habe CONFIG_FRAMEBUFFER_CONSOLE ist der Eintrag der das MODUL fbcon.ko erzeugt, deshalb wirst du fbcon nur durch Zufall mit "make menuconfig" finden können ...

    Der Eintrag den du suchst heißt Framebuffer Console Support und ist unter: Device Drivers - Graphics Support - Console Display Driver Support

    Zitat


    Menuconfig bringt mir aber im moment nicht viel, weil ich immer, nachdem ich was geaendert hab, die meldung "Error during writing of the kernel configuration. Your kernel configuration changes were NOT saved" bekomme.

    Vermutlich führst du "make menuconfig" nicht als root aus, bzw. falls du einen normalen Benutzer vewendest hat dieser Schreib- und Lesenrechte auf die Datei .config ?

    Du kannst theoretisch die .config von Hand ändern, solltest aber nicht, da durchaus abhängigkeiten zwischen einzelnen Kernelmodulen besteht die "make config" und alle Varianten berücksichtigen.

    "1.6 Definition: Undefined behavior -- behavior, upon use of a nonportable or erroneous program construct, ... for which the standard imposes no requirements. Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to having demons fly out of your nose.
    In short, you can't ... and if you do, demons may fly out of your nose.
    OK, OK; so the Standard doesn't *ACTUALLY* mention demons or noses. Not as such, anyway." from Usenet:comp.std.c 26 Feb.1992

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!