Hallo!
In ein paar Beiträgen habe ich gelesen, dass es die Möglichkeit des Kernelupdates gibt. Was bringt das? Gibt es innerhalb der Rel. 4.10 neue Kernelversionen? Wie funktioniert so ein Update?
LG, Wolfgang
|
Anmeldungsdatum: Beiträge: 342 |
Hallo! In ein paar Beiträgen habe ich gelesen, dass es die Möglichkeit des Kernelupdates gibt. Was bringt das? Gibt es innerhalb der Rel. 4.10 neue Kernelversionen? Wie funktioniert so ein Update? LG, Wolfgang |
|
Anmeldungsdatum: Beiträge: 2159 |
Du gehst einfach auf www.kernel.org Es gibt auch die Möglichkeit über apt-get dir einen neuen Kernel zu installieren. Jedoch muss dafür dann erstmal ein paket existieren. Wenn solch ein Paket existiert dann müsste ein Zur Zeit existiert aber noch nicht solch ein Paket. Dürfte sich mit stable auch nicht ändern. Höchstens erst wieder in Hoary. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 342 |
Aha, also nix mit installieren über Synaptic. Ich denke, ich werde mich langsam an einen eignen Kernel wagen. Wozu habe ich ein zweites Ubuntu als Eval-System auf der Platte?
Da finde ich nichts, was auf Vanille hinweist. Was ist der Vanilla-Kernel?
Wie kriege ich raus, was ich alles einkompilieren muß, damit mein System mit der gleichen Funktionalität läuft, wie es das jetzt tut? Ich meine, da ist sicher vieles aktiviert, was ich nicht brauche, aber wie komme ich da dahinter?
Das würde ich hinkriegen. Ich habe eine Anleitung im Suse-Forum gefunden, die mir recht brauchbar erscheint http://www.linux-club.de/viewtopic.php?t=10810 Da wird auf diese Anleitung aufgebaut: http://www.thomashertweck.de/kernel26.html Meinstu Du, damit könnte ich was anfangen? LG, Wolfgang |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 342 |
Doppelpost löschen geht nicht mehr, aber verkleinern.... |
|
Anmeldungsdatum: Beiträge: 2159 |
Also ein Post kanst du ruhig löschen. 😉
ähm. Ich weiß nicht warum immer die ganze Welt hier von Synaptic spricht. Also nochmal einen kurzen aufbau. "dpkg" ist das Paketmanagment von Debian. Wenn ich also "apt-get" anspreche, kannst du also auch Synaptic dafür benutzen. Ich denke eine Anleitung zum ganzen Paketmanagment ist hier mal langsam dringend erforderlich. \^^
Vanilla bezeichnet den ungepatchen Kernel. Manche Distributionen wie Suse oder Red Hat erweitern manchmal den Kernel, oder ändern selber etwas ab. Vanilla ist die bezeichnung für den Original unveränderten Kernel.
Ausprobieren. \^^ Wenn du ohne ramdisk booten möchtest ist es wichtig das du IDE/SCSI Treiber fest im Kernel einkompilierst und nicht als Modul. Weiterhin muss das Dateisystem z.B. ext3 auch fest im Kernel einkompiliert sein. Ansonsten empfehle ich dir dich einfach langsam heran zu tasten. Immer Schrittweise Sachen aus dem Kernel entfernen, kompilieren, und versuchen zu starten. So habe ich das gelernt, zwar ist das ganze am Anfang vielleicht etwas stressig, wenn man es einmal kann geht es recht fix, und würde sagen es lohnt sich. Allerdings wenn du eine NVidia Karte hast, lohnt es sich noch nicht auf den Linux 2.6.9 Kernel upzudaten. Den Nvidia hat schlampig gearbeitet, und der Treiber lässt sich in 2.6.9 nicht mehr laden. Es gibt zwar einen Dirty Workaround womit du im Kernel etwas Patchen kannst, damit der Treiber doch wieder geht, aber davon halte ich mich noch fern. Zur Zeit heißt es dann noch warten bis Nvidia einen neueren Treiber als den 6111 heraus bringt. \––– Ansonsten zum Kernel bauen ist eigentlich wenig zu sagen, ob du dafür ein Howto brauchst bezweifle ich. Ich habe mir jedenfalls noch nie ein HowTo angeschaut dazu. Einfach Kernel herunterladen, für Sourcen wird immer standartmäßig /usr/src genommen. Dann das Paket entpacken, und in das verzeichnis wechseln. Dort gibst du dann Danach hast du verschiedene Kategorien und Treiber die im Kernel enthalten sind. Mit "Y" wählst du einen Eintrag aus, das er fest einkompiliert werden soll, mit "N" wird mit den Treiber nichts gemacht. Und mit "M" steht der Treiber später als ladbares Modul später zur Verfügung. Nachdem du dann alles eingestellt hast, einfach auf exit gehen. Du wirst gefragt ob config überschrieben wird, und wählst logischerweise "JA" aus. Danach machst du ein einfaches Danach musst du unter Umständen nochmal die Module kompilieren. Eigentlich sollte das schon in make sein, hatte aber schonmal gehabt das irgendwas doch fehlte. Jedenfalls gibst du dafür Danach noch die Module an der richtigen Stelle hinkopieren. Nach dem "make" befindet sich im Pfad eine "System.map" die du nach /boot kopierst. Und z.B. so nennst. "System.map-2.6.8.1" Weiterhin befindet sich nach dem "make" im Pfad unter "./arch/i386/boot" die Datei "bzImage" Das ist dein Kernel, den du dann nach /boot kopierst und z.B. "vmlinuz-2.6.8.1" nennst. Dann noch LILO und GRUB anpassen und fertig. Die einzigen Sachen die schwierig sind, ist unter Umständen das du zu viel entfernst, oder etwas vergisst, oder du manche Sachen nicht fest einkompilierst etc. |
|
Anmeldungsdatum: Beiträge: 492 |
Kann ich dann theoretisch auch 2 Kernel haben die ich durch Grub/LILO booten kann? Falls mein eigener nicht booten will, kann ich dann sozusagen einfach den von Ubuntu nehmen? mfg |
|
Anmeldungsdatum: Beiträge: 2159 |
n0bbi hat geschrieben:
Ja das geht ohne Probleme. Du kopierst den Kernel ja zusätzlich einfach in /boot hinein. Und in LILO bzw. Grub erstellst du einen neuen Eintrag. Dann kannst du beim Booten auswählen mit welchen Kernel du booten möchtest. Wenn der neue nicht geht, einfach wieder zum alten wechseln, und schauen was man falsch gemacht hat, oder vergessen hat. Solange du nicht deinen alten Kernel löscht, überschreibst, oder den Boot Eintrag in LILO/GRUB entfernst geht das ohne Probleme. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 342 |
@ Sid: Herzlichen Dank für Deine ausführliche Antwort, damit kann ich gut was anfangen. ☺ Da werde ich mich mal ans Werk machen. Ich habe mir schon überlegt, ob es nicht eine gute Idee wäre, innerhalb des Forums einen Workshop zum Bau eines Kernels einzurichten. Vielleicht wird aus dem Thread so was.
Geht leider nicht mehr, ich habe nur mehr den "Bearbeiten" Button zur Verfügung. Hatte gestern zu viele Fenster offen und die Übersicht verloren. Unter WIN im Büro. LG, Wolfgang |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 342 |
Ich habe mir nun die Kernelquellen runtergeladen, momentan wird entpackt, das ist ja eine mächtige Prozedur! Auf der HP kernel.org gibt es am oberster Stelle einen Patch für 2.6.9, muß ich den vorher einspielen? Wenn ja, wie geht das bitte. LG, Wolfgang |
|
Anmeldungsdatum: Beiträge: 2159 |
Du kannst dir auch sofort die 2.6.9er Quellen herunterladen.
Musst nur auf www.kernel.org gehen, dort hast du daneben so kleine Buchstaben. Das "F" steht für Full und damit lädst du den kompletten neuen Kernel herunter. Wenn du trotzdem Patchen möchtest, dann lädst du den Patch herunter. Und legst ihn z.B. in /usr/src ab. Der Kernel selber muss dann auch z.B. in /usr/src/linux-2.6.9 z.B. liegen. jedenfalls unter /usr/src Dann wechselst du ins Linux Quellarchiv. und gibst dort folgendes ein: bzip2 -dc ../patch-2.6.9.bz2 | patch -p1 Danach einfach fortfahren wie oben beschrieben. Übrigens findest du die Informationen wie das Patchen geht auch in der README Datei wenn du den Linuc Kernel entpackt hast. unter ./Documentation findest du noch mehr Texte, Anleitung etc. Hatte sogar mal eine Anleitung gesehn wie man JAVA fest im Kernel einkompiliert, und somit Java wie Binär Dateien ausführen kann. Naja wer sowas brauch... Ist aber Interessant was alles so geht. |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 342 |
Danke! LG, Wolfgang |
|
Anmeldungsdatum: Beiträge: 2159 |
initrd ist ein Verfahren das auf LiveCDs Verwendung findet. Und mitlerweile auch jede Distribution als Standart Kernel benutzt. Der Sinn dahinter ist, das nichts mehr fest einkompiliert wird. Jedenfalls an Device Treibern. Den nicht jeder hat z.B. das gleiche Motherboard etc. und alles einfach fest einkompilieren wäre recht groß. Daher werden alle Treiber sozusagen in einer einzigen Datei gepackt. Beim Booten wird eine RamDisk erstellt, die diese Datei dann in den RAM kopiert, und von dort dann Module lädt. Das musst du so machen, weil du bis dahin ja noch keine Treiber geladen hast, um überhaupt auf die Festplatte zuzugreifen. Du kannst also nicht einfach die selbe initrd Datei nehmen. Diese muss natürlich extra für deinen Kompilierten Kernel sein. Die Kernel Panic Meldung war bestimmt bei dir. "VFS: Unable to mount root fs: on ..." schätze ich mal? Das liegt halt daran das er das vorhandene img nicht nehmen kann, weil es für einen anderen Kernel ist, somit auch keine Treiber laden kann um überhaupt auf deine Festplatte zuzugreifen, geschweige den sie überhaupt zu erkennen und zu mounten. Du kannst das ganz einfach umgehen, indem du deine IDE/SCSI Treiber für deine Hardware fest im Kernel einkompilierst. Vor dem modul darf also nicht mehr ein "M" stehen, dort muss ein "*" stehen, was bedeutet das du es fest im Kernel einkompilierst. Weiterhin musst du das verwendete Dateisystem, z.B. ext3 auch fest einkompilieren. Wenn du das notwendige fest einkompilierst brauchst du gar kein initrd Kernel mehr. Was ich dir auch empfehle lieber zu machen. Den wenn du ein initrd Kernel haben willst, dann brauchst du nicht versuchen dir den Kernel neu zu kompilieren, den du benutzt ja schon standartmäßig einen. Jedoch würde ich auch ext2 komplett im Kernel fest einkompilieren. ext3 ist ja in dem Sinne nur eine erweiterung zu ext2, und es geht nicht ohne ext2. Jedenfalls war es bei mir mal so der Fall. Wenn du IDE/SCSI Treiber, und Dateisystem Treiber für deine Hardware fest einkompilierst sollte das Booten auch klappen. Bei der Auswahl welches Modul jetzt genau für deine Hardware zuständig ist, kannst du 2 Möglichkeiten benutzen. Einmal "lspci" womit du unter Umständen eine genaue übereinstimmung mit ein Modul findest. Weiterhin kannst du dir mit "lsmod" die bereits geladenen Module anschauen lassen. In der Hilfe zu den einzelnen Auswahl steht meist wie dann das Modul heißt. Was dir unter umständen dann hilft. Zu Anfang wird das jedenfalls etwas Mühselig sein, hast du es aber irgendwann mal geschafft, und machst es öfter, sollte es nachher kein Problem mehr sein, und geh recht flott, und du weißt auch sofort was du brauchst und was nicht. |
|
Anmeldungsdatum: Beiträge: 58 |
Sid Burn hat geschrieben:
Ausprobieren war einmal, ab den 2.6er Kernel gibt es unter /proc/??? (Ich hab hier gerade keinen Linux Rechner) die Konfiguration des gerade laufenden Kerrnels. Die kann man einfach kopieren und hat schon mal einen guten Startpunkt. |
|
Anmeldungsdatum: Beiträge: 2159 |
tobias hat geschrieben:
/proc/config.gz kannst du auscatten. Stimmt schon, hilft dir aber nicht bei dem Problem. Wenn ich die configdatei auscatte vom initrd Kernel, was habe ich dann davon? Dann weiß man immer noch nciht welche Pakete, für meine Hardware zuständig sind. Klar könnte ich mit dieser Information den selben Kernel nochmal selber neu kompilieren. Jedoch welchen effekt soll es dann haben? Der Kernel wäre ja dann identisch zu den bereits installierten. Die config.gz hilft dir nur, wenn du selber schon einen Kernel erstellt hast, und nachträglich dazu die config datei auslesen möchtest. Zum Lernen hilft dir das auch nicht weiter. Da heißt es immer noch ausprobieren, oder alles durchlesen. Weiterhin nur weil es 2.6er Kernel ist, heißt nicht das du auch unbedingt sofort unter /proc/ die config.gz hast. Den das ist ein Optionales Feature. Beim Vanilla Kernel, ist diese Option z.B. Defaultmäßig ausgeschaltet.
Was ist dir den daran nicht gelungen? Unter Ist doch alles selbsterklärend. -.- Wenn du ein A64 hast, wählst du eben. "Opteron/Athlon64/Hammer/k8" aus, hast du einen alten K6 wählst du eben "K6/K6-II/k6-III" aus, ist finde ich eigentlich selbsterklärend. ... |
|
Anmeldungsdatum: Beiträge: 58 |
Sid Burn hat geschrieben:
Das Hilft dir auch, wenn du eine neue Kernelversion mit den gleichen einstellungen einer älteren Kernelversion bauen möchtest. |