Hallo,
ich habe letzte woche den linux kernel unter opensuse 11.1 compiliert.(was uebrigens sehr sehr lange dauerte 8h)
ich hatte da eine Anleitung im internet gefunden und somit lief alles ok.
im menuconfig oder makemenu weiss ich ned auswending, da stellt man die einstellungen fest ob sie im kernel eingebunden werden oder als module vorhanden sein soll.
Dabei stellte ich fest es gibt mittlerweile unglaubliche einstellungen wo ich nicht genau wusste "braucht man es ueberhaupt"
gibt es irgendwelche Einleitung mit kurze erklaerungen was diese Einstellungen bedeutet.??
Wenn ich die config des alten kernel im neuen lade waere das okay oder somit findet dein richtiger kernelupdate?
danke fuer eure hilfe.
logo_3
Linux 15.036 Themen, 107.107 Beiträge
Ich habe in der history die url gefunden
http://www.howtoforge.com/kernel_compilation_suse
falls ihr auch daran interessiert seid.
gruss
logo_3
Der selbstkompilierte Kernel sollte im Vergleich zu den "Standardkerneln" etwa so dastehen wie ein Maßanzug im Vergleich zum Anzug von der Stange.
Konkret bedeutet das aber auch, dass man sich im Vorfeld schon sehr eingehend mit der Frage beschäftigen muss, was man braucht.
Zuerst einmal ist die Hardware zu beachten. Man muss exakt wissen, welche Chips und Bausteine im Rechner verbaut sind. Nur dann kann man die exakt passenden Treiber einbauen und alle anderen außen vor lassen. Ich persönlich bevorzuge monolithische Treiber, das ist aber Geschmackssache.
Des weiteren werden ja auch "Treiber" für Schnittstellen (z.B. Netzwerkprotokolle) definiert. Auch hier gilt, dass ein eigener Kernel eigentlich nur sinnvoll ist, wenn man genau abgrenzen kann was man braucht und was nicht.
gibt es irgendwelche Einleitung mit kurze erklaerungen was diese Einstellungen bedeutet.??
Zu jedem Kernel gibt es afaik eine Dokumentation auf www.kernel.org oder unter http://kernelnewbies.org/
Ganz früher habe ich das auch mal gemacht, Kernel selbst compiliert. Mein letzter Versuch war dann mit Suse 10.2, nur ist es mir da nie gelungen, trotz Rauschmiss aller Routinen, die ich nicht brauchte, den Kernel schlanker als den Standardkernel zu bekommen.
Es hatte dann auch noch die unangenehmen Nebenwirkung, dass z.B. mein properitärer ATI Grafiktreiber (fglrx) händisch angepasst werden musst, was bei jedem neuen Update erfolgen musste. Auch gibt es diverse andere Software und Treiber, die bei ihrem eigenen Update bzw. bei einer Neucompilierung des Kernels jedesmal Handarbeit verlangten. Auch habe ich eigentlich nie einen Geschwindigkeitsvorteil zwischen meinen maßgeschneiderten Kernel und dem Standardkernel bemerkt.
Hallo logo_3,
es gibt heute eigentlich keinen vernünftigen Grund mehr seinen eigenen Kernel zu kompilieren, es sei denn,
die vorliegenden Kernel passen überhaupt nicht zur hardware (z. B. im Versuchsaufbau) oder es fehlen noch Module (z.B. bei neuster Grafikkarte, wlan etc.) oder anderen Sondersituationen eben.
Die Nachteile hat Repi schon ausführlich beschrieben! Jedes up-date zieht Handarbeit nach sich.
Der positive Lerneffekt bleibt unbestritten.
MfG.
violetta
>es gibt heute eigentlich keinen vernünftigen Grund mehr seinen eigenen Kernel zu kompilieren
Das sehe ich genau so, da die Vorgaben immer ausgereifter werden und sich auf die heutige Hardware anpassen. Sicherlich gibt es auch noch User, welche ganz spezielle Wünsche in Bezug auf ihren Kernel haben, aber Notwendig ist das in den meisten Fällen wohl kaum noch.
MFG Acader
Das sehe ich nicht so. Die Standardkernel sind mit nutzlosen Treibern überfüllt (kostet Performance) und die RAM Disk macht gelegentlich Problem. Außerdem sollte man einen monolitischen Kernel auf Internetserver installieren , weil rootkits modularisierte Kernel leichter angreifen können.
Wenn man Anfänger ist und nur einen Desktoprechner nutzt, dann kann man auch die Standardkernel nutzen.
>...kostet Performance und die RAM Disk macht gelegentlich Problem
Aber doch nicht bei der heutigen Hardware. Die Rechner sind so schnell geworden, so daß es da absolut keine Problem gibt.
MFG Acader
danke leute,
heisst das, wenn ich neuen kernel runterlade, bevor ich den in opensuse einspiele die Einstellungen des vorhandenen kernel (.config) abspeichere.
Kann ich diese (.config) datei fuer den neuen kernel laden un das wars?
dann haette ich neuen kernel mit alten konfig einstellung
danke
logo_3
Die .config Datei, welche mit makemenu geöffnet wird, hat nichts mit den Einstellungen des installierten Standardkernels zu tun. Man kann diesen ja auch betreiben, ohne die Kernelsourcen installiert zu haben.
Die Default-Einstellungen in der config Datei sind wohl so gehalten, dass zwar ein auf fast jeder Hardware funktionierender Kernel rauskommen sollte, ob dieser dann aber mit dem Standardkernel, welche die Distriersteller liefern übereinstimmt, glaube ich nicht.
Beachte auch, dass es schon beim Standardkernel mehre Varianten gibt.
Bei openSuse in der Regel:
kernel-default (Standardkernel für Single- und Multicore Prozessoren)
kernel-debug
kernel-pae (kernel für mehr als 64 GB Hauptspeicher)
kernel-rt (Kernel für Realtime Anwendungen)
kernel-rt_debug
kernel-vanilla (Standard-Kernel ohne SuSE Patches)
kernel-xen (Kernel zum Betreiben der VM Xen)
Hallo logo_3,
am besten gehen Sie wie folgt vor:
1. Alten Kernel über Konsole mit "uname -a" feststellen und notieren, wenn dieser fehlerfrei und sicher läuft.
Normalerweise sollten Sie dann eigentlich auch nichts ändern, es sei denn, es gibt wichtige Gründe!
Den Kernel brauchen Sie nicht zu sichern. Alle Kernel liegen notfalls auf Kernel.org vor.
2. Jetzt opensuse 11.1 installieren. Sie brauchen keinen Kernel vorweg zu installieren. Über yast liegen immer die neusten Kernel vor. Sie können zwischen diesen und älteren Kernel wählen. Der Kernel muß zur cpu und dem Betriebsystem passen. Also acht geben!!!
3. Nach der Installation von opensuse sollten Sie gleich ein online-up-date fahren. Hier wird Ihnen immer auch der neuste Kernel angeboten, sofern er gewünscht wird.
Alles immer über yast ausführen, installieren usw.!!!
Wenn Sie es noch aushalten, dann warten Sie bis Nov.2009 auf opensuse 11.2! Dann sind die meisten Kinken ausgebügelt.
MfG.
violetta
Selber kompilieren mach ich seit Jahren nur noch unter Gentoo. Da gibt's auch gute Doku zum Kernelbau, womit es sehr lehrreich wird, was man braucht, was man wie einstellen muss. Das gibt nen gewissen Einblick in die Systeminnereien eines Betriebssystems.
8h ist absolut übermässig lange. Hast du eine 200Mhz CPU?
Im gentoo Wiki gibt es eine gute Erklärung für verschiedene Kerneloptionen:
http://de.gentoo-wiki.com/wiki/Kernel/Manuell_kompilieren
8h für eine Übersetzung ist schon etwas viel.
Mein alter K6 500 Mhz braucht etwa 1,5 h für die Compilierung eines 2.6.18er Kernels.
Die .config Datei die du mit make menuconfig erstellt hast ist immer nur für die jeweilige Kernelversion gültig, die auch in der Datei .config steht:
Beispiel für den 2.6.26er kernel:
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.26
# Sun Feb 15 20:12:28 2009
Wenn du ein Sicherheitsupdate des 2.6.26er Kernels installierst, dann kannst du diese Datei .config wieder verwenden und mußt nur mit "make && make modules && make modules_install" den Kernel neu übersetzen.
Wenn du aber ein Update auf eine Version 2.6.28 machen solltest, dann muß auch diese .config Datei neu erstellt werden.
PS: Im Handbuch zu SUSE waren früher (SUSE 4.4, 5.x) auch die wichtigsten Kerneloptioen erklärt. Ich weiß nicht wie es jetzt ist , nachdem SUSE von NOVELL aufgekauft wurde.