Kernel patchen/kompilieren = dasselbe?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Tetsuo
Beiträge: 75
Registriert: 02.06.2006 09:19:56
Wohnort: Soest

Kernel patchen/kompilieren = dasselbe?

Beitrag von Tetsuo » 31.07.2006 06:33:12

Hallo,

also ich habe jetzt mehr oder weniger ein Problem, wollte mich mal an das erstellen eines Kernels dran wagen und weiß jetzt nicht, da ich mehrere Tutorials zur Auswahl habe welches das richtige ist.
In dem einen kommt "patchen" vor, dann wieder "kompilieren".. ist das dasselbe?

Achja beim booten bekomme ich eine Möglichkeit zwischen zwei Kernel (??) auszuwählen.. lieg ich damit richtig das auch Kernel gemeint sind oder ist das wieder was anderes?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.07.2006 09:15:28

Also, unter Patchen versteht man, dass man den Quellcode eines Programms oder wie bei dir des Kernels veraendert. Im Prinzip schaut das so aus, dass da jemand mit Tools wie diff eine Patchfile erzeugt hat, in der festgehalten wird, an welchen Stellen welche Datei veraendert werden muss um die gewuenschte Funktion oder ein Update einzuspielen.

Das Kompilieren ist der eigentliche Vorgang des Uebersetzens von Quellcode in maschinenlesbaren Code. Wenn du also z.B. die Kernelquellen gepatchet hast, dann musst du danach den Kernel neu kompilieren und installieren und deinen Rechner neu starten, damit deine Aenderungen auch wirksam werden koennen. Im Debian-Anwenderhandbuch gibt es zum richtigen Kompilieren auch eine Anleitung, mit der dein eigener Kernel dann auch als Debian-Paket gebaut wird und du ihn dann mittels dpkg installieren kannst und er so auch in der Debian-eigenen Paketverwaltung enthalten ist.

Beim Booten bietet dir der Bootmanager (LILO oder GRUB) verschiedene Kernel-Images an, sprich, verschiedene Kernels bzw. gleiche Kernels mit unterschiedlichen Parametern. Wenn du einen eigenen Kernel als Debianpaket baust, so wird z.B. die Auswahldatei (/boot/grub/menu.lst) automatisch um deinen eigenen Kernel erweitert.

Tetsuo
Beiträge: 75
Registriert: 02.06.2006 09:19:56
Wohnort: Soest

Beitrag von Tetsuo » 31.07.2006 15:55:16

Ah okay, ich verstehe.
Wenn nach den Anleitungen im Handbuch gehe (http://debiananwenderhandbuch.de/) läuft der Kernel nachher auch oder muss ich noch einige Sachen beachten die da vielleicht nicht drin stehen? Hab gehört das dass sehr schwer ist und schwerwiegende Konsequenzen, wie z.B. nicht mehr botten können, nach sich ziehen kann..??
Hab ich jetzt persönlich nicht so die Lust drauf?
Als ich das letzte Mal einen weiteren Kernel installiert habe, weil ich die Kernel nicht gepinnt hatte, konnte ich nicht mehr booten..

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 31.07.2006 16:14:39

Hm, also sagen wirs mal so: du solltest schon wissen, was du beim Kernelkonfigurieren so einstellst. Wobei du z.B. die Config des Debian-Kernels mal als Basis nehmen kannst und dich von da aus weiter vorarbeiten koenntest.

Prinzipiell solltest du in etwa wissen, welche Hardware du drin hast, damit du die richtigen Treiber einbauen kannst. Prinzipiell kannst du beim Kernel das meiste als Modul bauen, mal abgesehen von den Dingen, die du zum Booten brauchst also z.B. den Treiber fuer deinen IDE-Controller, das Modul fuer dein root-Filesystem und aehnliches.

Wenn du den Kernel als Debian-Paket baust wird der normal parallel zu deinem alten installiert, das heisst, wenn der neue nicht mehr booted, dann nimmst halt wieder den Default-Kernel und schaust, was an deinem selbstgebauten Kernel nicht passt.

Zu dem Thema "Kernel kompilieren" sollten sich auch einige HowTos finden lassen.

Gehts denn um was spezielles, das du da machen willst?

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 31.07.2006 16:15:22

Tetsuo hat geschrieben:Als ich das letzte Mal einen weiteren Kernel installiert habe, weil ich die Kernel nicht gepinnt hatte, konnte ich nicht mehr booten..
Wenn der neue Kernel nicht läuft, kannst du auch noch mit deinem alten Kernel hochfahren. Beim kompilieren wird der ja nicht gelöscht, sondern steht weiterhin zur Verfügung. Wenn du grub als Bootmanager hast, bietet er dir den neuen und den alten zur Auswahl an. Und als Rettungsanker: mach zuerst eine Sicherheitskopie der /boot/grub/menu.lst, dann kannst du, falls etwas schiefgehen sollte, immer noch mit einer Live-CD dieses Backup wieder einspielen und der Rechner bootet wie gehabt.

Übrigens gibt es hier im Wiki auch eine gute Anleitung zu diesem Thema.

Gruß, garibaldi

Tetsuo
Beiträge: 75
Registriert: 02.06.2006 09:19:56
Wohnort: Soest

Beitrag von Tetsuo » 01.08.2006 01:04:51

nepos hat geschrieben:Gehts denn um was spezielles, das du da machen willst?
Nein im Prinzip nicht. Wollt / würde nur mal gerne wissen wollen ob ich es auch kann, ob es schwer ist und mein Wissen bez. Linux erweitern, kann ja nicht schlecht sein sowas zu wissen.

Bez. Kernel via Apt installieren, da der mir den nicht angezeigt also den alten muss ich da irgendwas beachten?

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 01.08.2006 01:18:15

Tetsuo hat geschrieben:Bez. Kernel via Apt installieren, da der mir den nicht angezeigt also den alten muss ich da irgendwas beachten?
Wenn du via Apt einen Kernel installierst, wird automatisch aktualisiert, dh. das Programm update-grub wird ausgeführt, welches die menu.lst aktualisiert. Eine Sicherheitskopie von dieser Datei würde ich machen, aber ansonsten wüsste ich nicht, was schiefgehen kann, ausser du nimmst den falschen kernel, der für deine Architektur nicht geeignet ist. Aber dann einfach mit dem alten booten und einen anderen nehmen.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 01.08.2006 09:09:03

Deswegen sollte wenn man sich ans Kernelkompilieren wagt immer den Ursprungskernel drauflassen. Und wenn ich dafür sorge das der neue kernel den alten nicht überschreibt kann ich immer noch auf den ersten zurückgreifen. Es wäre eine ganz schlechte Idee wenn ich einen Kernel 2.6.15-1-386 installiert habe , den neuen genauso zu nennen. Dann ist eventuell Ärger vorprogrammiert. Dannk make.kpkg läßt sich das ja beinflussen ohne Probleme.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Tetsuo
Beiträge: 75
Registriert: 02.06.2006 09:19:56
Wohnort: Soest

Beitrag von Tetsuo » 03.08.2006 23:41:52

Laufen die nötigen Programme dann auch weiterhin oder muss ich vorm Neustart irgendwas nochmal überprüfen vial apt sachen nachinstallieren oder so?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 04.08.2006 10:30:37

Ja, da sollte sich normal nichts aendern, wenn du einen neuen Kernel einspielst.

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 26.08.2006 07:27:32

Hallo Tetsuo,

sofern Du einen 2.4.xx-Kernell hast, würde ich nur einen 2.4.xxx-Kernel kompilieren und die vorhandene Konfiguration als Basis nehmen um dann "ein wenig" zu verändern :wink:
...gleiches gilt für einen 2.6.xx-Kernel, sofern nicht installiert, würde ich den erst mit apt-get, aptitude oder ähnlichen Programmen installieren und dann einen "leicht veränderten" 2.6.xxx-Kernel selber kompilieren.

Ich würde Dir diese Methode empfehlen.
http://wiki.debianforum.de/DebianizedLinuxKernel

...hier noch allgemeine Tipps zum Kernelbauen
http://wiki.debianforum.de/KernelKompilieren
http://wiki.debianforum.de/KernelsourcenPatchen

Gruß fuzzy

Antworten