Probleme beim Kernel kompilieren

Mindmaster

Lt. Junior Grade
Registriert
Apr. 2001
Beiträge
332
Ich hab da so ein Problem.
Wenn ich einen neuen Kernel kompilieren will und make xconfig eingebe, bekomme ich eine Menge Fehlermeldungen ala comparison between solved and unresolved und er bricht am Ende ab. Mache ich make menuconfig bring er auch solche Fehler, ich kann mir aber den Kernel zusammenbauen. Wenn ich allerdings danach make dep clean BzImage ... mache bringt er wieder diese Fehler und bricht ab. Ich habe Suse Linux 8.2 mit allen Updates und alle benötigten Programme installiert. Wo liegt also jetzt der Fehler?
P.S. Der zu kompilierende Kernel ist 2.5.70 und ich habe im Moment 2.4.20.
 
mach mal nur "make dep" und sag dann was für eine fehlermeldung kommt.
wenn dabei keine kommt, dann gib "make clean bzImage" ein und schreib hier die fehlermeldung rein.
 
hallo :)
also, ich habe suse 8.2 und den kernel 2.5.70 :D
auch bei mir geht xconfig leider nicht, aber wie du schon sagtest läuft menuconfig. nachdem du deine einstellungen gespeichert hast, musst du einfach nur make bzImage machen. make dep fällt bei den entwicklerkerneln weg.
falls er bei bzImage irgendwo hängen bleibt und nen fehler ausspuckt, musst du versuchen in dem ganzen compiler-output die stelle zu finden, wo er hängen geblieben ist. da dann nochmal die einstellungen etwas ändern. mit ein wenig glück läuft er dann beim nächsten versuch durch. danach make modules und make modules_install, änderungen am bootmanager und es sollte gehen.

mfg
aki
 
@aki
Danke, werds mal so versuchen.

Ging, aber leider nur bis zu ntfs. Ging nicht als Kernel oder Modul.
 
Zuletzt bearbeitet:
find ich merkwürdig, weil ich auch ntfs integriert hab. hast du nur den lesezugriff eingebaut, oder den schreibzugriff ? den hab ich nämlich nicht getestet.
 
hab noch nie nen kernel kompiliert. wie macht man das? (sorry, anfänger). gibts irgendwo ne anleitung?
 
das kompilieren des kernels ist im grunde gar nicht so schwer wie man es sich vorstellt. man besorgt sich den quellcode des gewünschten kernels, startet ein programm mit welchem man den kernel an sein system anpasst und übersetzt ihn dann schließlich.

den quellcode erhälst du von kernel.org
der wird nun einfach nach /usr/src entpackt. öffne eine console und wechsel in das verzeichnis in dem sich der quellcode befindet (z.B. /usr/src/linux-2.4.21)

die grundlegenden befehle die man nun braucht sind:

make xconfig
make dep
make bzImage
make modules
make modules_install

mit make xconfig wird ein grafisches programm gestartet, womit du die gesamten einstellungen des kernels vornehmen kannst. hierfür musst du natürlich etwas über dein system wissen. was du für hardware hast, was du schließlich mit dem pc machen willst usw.

ich bin ehrlich.. was make dep macht weiß ich nicht wirklich :) ich rate einfach mal, dass es abhängigkeiten prüft. was nun genau gemacht wird ist im grunde auch egal, wenn du einen 2.4.x kernel übersetzt wird dir direkt nach dem speichern der einstellungen gesagt, dass du diesen befehl als nächstes ausführen solltest.

make bzImage übersetzt schließlich den kernel mit all den eigenschaften die du in den einstellungen festgelegt hast. den fertigen kernel findest du nach dem kompilieren in /usr/src/linux-2.4.21/arch/i386/boot unter dem namen bzImage.

make modules erstellt module (treiber) die bei bedarf geladen werden können. ob ein treiber nun direkt in den kernel eingebaut wird, oder eben als module kompiliert werden soll, kannst du während der einstellungen festlegen.

make modules_install installiert die module schließlich nach /lib/modules/2.4.21 (ich gehe jetzt einfach mal davon aus, dass du diese version nimmst).


so, der kernel und alles was man braucht ist fertig. nun muss er eingebaut werden. hierfür kopierst du die datein bzImage und system.map (findest du direkt in /usr/src/linux-2.4.21) nach /boot.
jetzt muss der bootmanager angepasst werden. falls du als distribution SuSE benutzt geht das ganz einfach per yast2. falls du die änderungen manuell machen möchtest, findest du die config datein unter /etc (grub.conf bzw. lilo.conf). nach den manuellen änderungen "grub" bzw. "lilo" in einer console ausführen, damit die änderungen übernommen werden.

neustarten, kernel im bootmanager auswählen und hoffen, dass alles gut geht :)


falls sich fehler eingeschlichen haben, wäre es doch sehr schön wenn ich korrigiert werde :)

mfg
aki
 
Zuletzt bearbeitet:
Hmm, das ist so gut beschrieben, dass man es glatt zu einem "Sticky" Thread machen könnte. Soll also bedeuten: Falls mal etwas schief gelaufen ist, oder man einfach nur Tipps benötigt, könnte man ja einfach schnell "nachschlagen".
 
wäre möglich, nur dann würde ich gerne auch make dep erklären können, also lasst mal hören wofür es da ist :)
 
das war mal ne antwort! DANKE! Noch ne Frage: Wie lange dauert so was denn? Hört sich ja recht schnell an!
 
@aki
"make dep builds dependency lists in makefile"
"dep: makedepend
$(CPPFLAGS) *.c will remake all dependencies when make dep is called"

hilft dir das weiter?;)
 
Zuletzt bearbeitet:
ich habe da auch ein Problem, und zwar habe ich den Kernel (2.4.21) nach aki's Anleitung gebaut, die Module kompiliert und installiert und die entsprechenden Dateien ins Verzeichnis /boot kopiert. Grub hab ich von Hand editiert (den Eintrag vom alten Kernel kopiert und angepasst), er springt wohl auch zum Kernel aber dann bleibt der Bildschirm dunkel. Allerdings geht er nicht aus, was er in so einem Fall normalerweise tut, nur die Caps-Lock-LED blinkt. Die config habe ich vom alten Kernel übernommen, das stand in der c't.

Habt Ihr irgendwelche Ideen woran das liegen könnte?
 
Original erstellt von Morgoth
ich habe da auch ein Problem, und zwar habe ich den Kernel (2.4.21) nach aki's Anleitung gebaut, die Module kompiliert und installiert und die entsprechenden Dateien ins Verzeichnis /boot kopiert. Grub hab ich von Hand editiert (den Eintrag vom alten Kernel kopiert und angepasst), er springt wohl auch zum Kernel aber dann bleibt der Bildschirm dunkel. Allerdings geht er nicht aus, was er in so einem Fall normalerweise tut, nur die Caps-Lock-LED blinkt. Die config habe ich vom alten Kernel übernommen, das stand in der c't.

Habt Ihr irgendwelche Ideen woran das liegen könnte?

das kam bei mir als der kernel falsch angegeben war(aber bei lilo)
ich kenne mich mit grub nicht so gut aus, hast du nach dem ändern auch grub ausgeführt?
sind die root und boot angaben richtig?
 
Zurück
Oben