Kernel backen

Silvos

Silvos

Eroberer
Hallo Zusammen,
ich wollte mir mal einen eigenen Kernel zusammenstellen.
Ich habe mir die Sourcen runtergeladen, habe alles schön konfiguriert, habe den Kernel kompiliert und alle Dateien an ihren Platz kopiert.

Als ich das ganze nun ausprobieren wollte, also vom neuen Kernel booten wollte, gung gar nichts.

Ich ändere die Konfiguration, mache alles noch einmal.
Wieder nichts.
Das ganze ein paar mal.

Dann hatte ich keine Lust mehr und wollte die alte Kernelkonfiguration mit "make oldconfig" nehmen. Ich habe also alles neue eingestellt, aber danach in mit "make xconfig" hatte ich nur die Einstellungen des alten Kernels.

Könnt ihr mir irgendwie helfen?
Wie kann ich die alte Konfigurationsdatei richtig übernehmen?

Alter kernel: huge-smp-2.6.21.5-smp
Neuer Kernel: 2.6.23.12
Distribution: Slackware 12.0

Ich bedanke mich schonmal für eventuelle Antworten.
 
den alten kernel laden; in /usr/src/ einen symlink namens linux auf die neuen kernelsourcen anlegen, oder den bestehenden ändern; in das verzeichniss linux wechseln; make oldconfig; fertig

edit: also fertig mit der übernahme der alten config
 
Also make oldconfig ist nicht unbedingt perfekt. Ich habe schon oft erlebt, daß nicht alle Einstellungen übernommen wurden.
Deshalb mache ich immer make oldconfig && make menuconfig und überprüfe die Einstellungen.

Im Gentoo-Wiki gibts einen wirklich guten Eintrag zum Thema. Schau ihn dir am besten mal an.

http://de.gentoo-wiki.com/Kernel_manuell_kompilieren
 
Also nach meiner erfahrung gibt es da nur probleme, wenn man sich die fragen, die das script gelegentlich bei grösseren änderungen stellt, nicht genau durchliest, und einfach immer nur return drückt ;)

Aber das gentoowiki is mit sicherheit ein sehr guter tip ...
 
Das Problem ist nicht der Kernel nach make oldconfig, sonder dass es danach mit make menuconfig oder make xconfig usw. manche Einstellungen, die der neue Kernel eigentlich haben sollte, einfach nicht gibt.
 
einige funktionen werden erst sichtbar, wenn andere an sind ...

was genau vermisst du denn ?

bau doch einfach mal den kernel nach make oldconfig - teste ihn und dann kannst immer noch weitertweaken, bzw den alten laden wenns nicht läuft
 
Ich habe gerade die alte config-Datei mit make oldconfig übernommen.
Danach fiel mir auf, dass es beim Kernel-Hacking nur 7 Optionen gibt anstatt viel mehr dies beim 2.6.23.12er Kernel eigentlich geben sollte.

das habe ich einfach mal ignoriert und habe mit
Code:
cd /usr/src/linux-2.6.23.12 && make all && make modules_install && cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.23.12 && cp System.map /boot/System-2.6.23.12.map && cp .config /boot/config-2.6.23.12 && make clean && make mrproper && echo "Hat geklappt!";
den neuen Kernel kompiliert usw.

Nun wollte ich von diesem Kernel booten doch es kam wieder nur ein schwarzer Bildschirm.

Habe ich irgendwas vergessen oder was mache ich vielleicht falsch?
 
Entschuldigung, die habe ich auch erstellt.

Ich habe einfach die des alten Kernels kopiert und umbenannt.
 
Da mein neuer Kernel dem alten extrem ähnlich ist, bin ich davon ausgegangen, dass diese Dateien gleich sein sollten.

Oder was muss ich sonst machen?
 
Extrem ähnlich?

Und die 2 Versionen, die zwischen 2.6.21 und 2.6.23 liegen?

Erstelle eine initrd, wie es in der Dokumentation zu Deiner Distribution beschrieben ist.

Greetz,

RM
 
Als ich das ganze nun ausprobieren wollte, also vom neuen Kernel booten wollte, gung gar nichts.

Nun wollte ich von diesem Kernel booten doch es kam wieder nur ein schwarzer Bildschirm.

das sind keine fehlermeldungen!

ich bezweifel, das genau das passiert, nach einem fehlerhaften kernelbuild kommt normalerweise die ausgabe "kernel panic", also tippe ich mal einfach, das der graphische login nicht läuft, was nix mit dem kernel zu tun hat.

ich denke du musst einfach nach dem kernelbuild deine graka treiber neu installieren.
boote mal im single modus, wenn das geht, liegt der fehler bei den graka treibern.

desweiteren, wie ich bereits beschrieben habe, würde ich einen symlink namens linux erstellen und auf die aktuellen kernelsourcen zeigen lassen. ich weiss zwar nich ob das heute noch nötig ist, aber schaden kanns nich, und es gibt eine fehlerquelle weniger.

edit: ahh die initrd -- die vergesse ich immer -- wozu is die eigentlich gut ?
 
Zuletzt bearbeitet:
Wenn ich versuche zu booten bleibt mein Bildschirm einfach schwarz.
Ich kann nichteinmal mit Strg+Alt+Entf neu starten sonder es hilft nur der Reset Knopf.

den symlink habe ich schon erstellt bzw. geändert, dass er auf den neuen Kernel zeigt.
 
Wenn ich versuche zu booten bleibt mein Bildschirm einfach schwarz.
Ich kann nichteinmal mit Strg+Alt+Entf neu starten sonder es hilft nur der Reset Knop

Jetzt nochmal:

-> Du wählst in grub deinen neuen Kernel aus, right?
-> Und dann kommt deiner Aussage nach nicht eine einzige Zeile an Meldungen auf dem screen?

Weil das wäre bestenfalls sehr merkwürdig....
 
-> Du wählst in grub deinen neuen Kernel aus, right?

*Klingeling*

Das bringt mich noch auf eine weitere potentielle Fehlerquelle (zusätzlich zur nicht vorhandenen/falschen initrd).

Nutzt Slack nicht per default lilo oder hat sich dahingehend in der 12.0 etwas geändert?

Muß man lilo nicht nach jedem Kernelupdate bzw. Anpassen der lilo.conf einmal ausführen?
 
Jetzt nochmal:

-> Du wählst in grub deinen neuen Kernel aus, right?
-> Und dann kommt deiner Aussage nach nicht eine einzige Zeile an Meldungen auf dem screen?

Weil das wäre bestenfalls sehr merkwürdig....

Ich wähle in lilo meinen neuen Kernel aus.

Und dann kommt nichtmal eine einzige Zeile.

Und ich habe die lilo.conf editiert und dann lilo ausgeführt.

Ich glaube auch nicht dass es an den Grafiktreibern liegt, da ich ohne X boote und das bis jetzt immer ohne diese ging.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ich habe in /boot die Links config und System.map auf die neuen Dateien erstellt und es funktioniert.

Danke an alle.
 
Zuletzt bearbeitet:
Es geht auch ohne, bei Gentoo IIRC default

das war auch mehr oder weniger ne rethorische frage, und ich würde eher sagen: "es geht auch mit initrd", weil mir der konkrete nutzen(zumindest für mich) nich klar is.

Und bei gentoo wird standardmässig auch eine initrd erstellt, wenn ich mich recht entsinne.

übrigens: wenn man "make install" ausführt nach der compilierung wird der kernel automatisch installiert und die symlinks richtiggesetzt, sowie der bootloader aktualiesiert. den letzten schritt sollte man aber auf jedenfall kontrollieren, und auch das make install mal testen bevor man sich drauf verlässt.
 
.............. ich würde eher sagen: "es geht auch mit initrd", weil mir der konkrete nutzen(zumindest für mich) nich klar is.

Mehr Flexibilität, da z.B. nicht alle unbedingt zum Booten benötigten (Dateisystem)Treiber fest in den Kernel eingebacken werden müssen.

Erkauft wird das dann eben durch zusätzliche Komplexität, also

"Choose your poison"
 

Ähnliche Themen

neuer kernel - /lib/modules... no such file or directory

Kernel 2.6.14 will nicht

Problem nach Installation des Kernels 2.6

WLan: Prism54 - USB

Zurück
Oben