Kernel patchen

Dieses Thema im Forum "Installation & Basiskonfiguration" wurde erstellt von stoerfang, 11.06.2007.

  1. #1 stoerfang, 11.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    hallo zusammen,

    bevor ich anfange einen Kernel neu zu kompilieren, dachte ich es wäre besser erst einmal mit dem Patchen anzufangen. ( muss ja üben :headup: ).

    habe einen Kernel 2.6.21.3 und habe mir den patch 2.6.21.4 geladen und nach /usr/src/linuxxxx/ kopiert.
    Dann erfolgt der Befehl:
    zcat patch-2.6.21.4.gz | patch -p0 2>&1 | tee patch.out

    Um festzustellen ob Fehler vorhanden sind: find . -name *.rej
    => keine Ausgabe. :)

    aber bei uname -a weiterhin 2.6.21.3

    So habe ich mir die Datei patch.out angesehen und festfestellt, dass da sehr oft die Fehlermeldung :
    " can't find file to patch at input line xxx" vorkommt.

    Was habe ich falsch gemacht ?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. towo

    towo Haudegen

    Dabei seit:
    16.05.2003
    Beiträge:
    649
    Zustimmungen:
    1
    Ort:
    Pößneck
    Patchen kann man nur die Sourcen, vor dem Kompilieren!
     
  4. #3 stoerfang, 11.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    ja erst patchen, dann erfolgt die normale Prozedur..

    make, make modules, make modules_install .. OK !!

    also kann ich trotz der Meldungen " can't ....." den oben genannten Befehl ausführen ?
     
  5. towo

    towo Haudegen

    Dabei seit:
    16.05.2003
    Beiträge:
    649
    Zustimmungen:
    1
    Ort:
    Pößneck
    Was willste denn patchen, wenn Du keine Sourcen hast, zum patchen?
    Du hast das nicht wirklich verstanden, oder?
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    davor kommt ein 'make menuconfig' oder 'make xconfig', welches die eigentliche Arbeit beim Kernel erstellen darstellt.
    Es gibt, soweit ich weiss, keine binaeren Flicken, zumindest nicht unter Linux. Der Patch, den Du angewendet hast, fuehrt die Quellen der Kernels der Version 2.6.121.3 in die Version 2.6.21.4 ueber. Da dies erst nur die Quellen sind, merkt das laufende Sustem daran nichts, erst, nachdem Du den neuen Kernel erstellt, installiert und (durch Neustart) aktiviert hast.

    Falls Du Dir unsicher beim anwenden des Patches bist, kannst Du Dir auch gleich die Quellen der aktuellen Version runterladen.
     
  7. #6 stoerfang, 12.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    danke erstmal,

    aber kann ich trotz der Meldungen in der patch.out:
    " can't find file to patch at input line xxx" mit den make-Befehlen anfangen ?
     
  8. towo

    towo Haudegen

    Dabei seit:
    16.05.2003
    Beiträge:
    649
    Zustimmungen:
    1
    Ort:
    Pößneck
    Nochmal langsam, zum Mitmeiseln:

    Du kannst Deinen laufenden, kompilierten Kernel nicht Patchen!
     
  9. #8 stoerfang, 12.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    ich habe einen Kernel und wollte diesen patchen.
    Nach dem Patchen konnte ich über find . -name *.rej keine Fehler finden !

    Aber in der patch.out ( zcat patch-2.6.21.4.gz | patch -p0 2>&1 | tee patch.out ) ist immer eine Zeile mit " can't find file to patch at input line xxx" .

    Ist diese Meldung ok und kann ich dann trotzdem mit dem kompilieren anfangen ?

    Was mache ich eigentlich, wenn ich beim find . -name *.rej auf Dateien mit *.rej
    treffe ?

    Und wenn ich mehrere Patches habe, muss ich dann erst jedes mal den Kernel neu kompilieren, bevor ich den nächsten Patch einspiele, oder reicht es, alle Patches nacheinander einzuspielen und dann einmal den Kernel neu zu kompilieren.

    Sorry für die vielen Fragen, aber jeder fängt mal klein an...

    Danke und Gruss
     
  10. #9 supersucker, 12.06.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Du hast die Kernel-Sources auch installiert?

    Die KERNEL-SOURCES wohlgemerkt!
     
  11. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Was steht denn in der Zeile 'xxx' deines Patches? Welche Datei ist dort angegeben?
    Ist der Quellcode, den Du flicken willst, ein Vanilla-Kernel oder der Deiner Distribution? Du musst naemlich streng darauf achten, dass Quelle und Patch zueinander passen, und viele Distributionen veraendern den Kernel.

    Letzteres ist der richtige Weg. Es bringt nichts, den Kernel zwischen zwei Patches zu kompilieren, da die dabei erzeugten Dateien von dem Path voellig unberuehrt lassen.
    (doch wie gesagt halte ich es fuer einfacher und sicherer, den vollen Quellcode neu runterzuladen).
     
  12. #11 Bâshgob, 12.06.2007
    Bâshgob

    Bâshgob freies Radikal

    Dabei seit:
    29.07.2004
    Beiträge:
    2.334
    Zustimmungen:
    0
    Ort:
    Hannover
    Um welche Distribution gehts hier eigentlich?
     
  13. #12 stoerfang, 12.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    ich habe die aktuelle zenwalk 4.6 installiert.

    habe beim Patchen ( zcat patch-2.6.21.4.gz | patch -p0 2>&1 | tee patch.out ) eine Pipe gesetzt, siehe Anhang.

    Wo gibt es denn Unterschiede zwischen dem Kernel der Distri und den von kernel.org ?
     

    Anhänge:

  14. #13 Bâshgob, 12.06.2007
    Bâshgob

    Bâshgob freies Radikal

    Dabei seit:
    29.07.2004
    Beiträge:
    2.334
    Zustimmungen:
    0
    Ort:
    Hannover
    Mitunter patchen die Distributoren gern mal ihr eigenes Zeugs in die Kernel. Aber so, wie das bei dir ausschaut... keine Kernelsourcen. Haben die anderen ja auch schon gesagt, aber patch mal schon deinen Kernel weiter...
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 stoerfang, 12.06.2007
    stoerfang

    stoerfang Doppel-As

    Dabei seit:
    11.10.2005
    Beiträge:
    125
    Zustimmungen:
    0
    Ort:
    Detmold
    ich habe meine Kernelsourcen installiert, also muss es doch einen anderen Grund haben ?????
     
  17. #15 oxcinsha, 12.06.2007
    Zuletzt bearbeitet: 12.06.2007
    oxcinsha

    oxcinsha Mitglied

    Dabei seit:
    25.08.2005
    Beiträge:
    44
    Zustimmungen:
    0
    Wenn du einen Patch auf Sourcen anwendest ist es wichtig das der Patch auch fuer die richtigen Sourcen ist.

    Also, es hat jemand Sourcen, macht davon eine Kopie, aendert die Kopie, und wenn seine Brust vor Stolz angeschwollen ist mach er mit dem Programm 'diff' eine Datei welche die Unterschiede zwischen Source und veraenderter Kopie listet.

    Ein Patch ist also eine Datei die den Unterschied festhaelt, der mit 'patch' auf die (gleichen) Sourcen angewendet werden kann um sie dahingehend zu veraendern das sie der (wie oben beschrieben) veraenderten Kopie entspraechen.

    Entscheidend ist das, speziell wenn ein Patch einen ganzen Sourcetree in Bezug nimmt, man entweder den Patch im richtigen Verzeichnis startet, oder dem Programm 'patch' das richtige Zielverzeichnis angibt.

    Jetzt kann es sein das, wenn z.B. zwei Patches verschiednen Ursprungs (zwei Aenderungen mit unterschiedlichem Zweck von vllt. unterschiedlichen Programmieren) angewendet werden soll die sich ueberschneiden, dann kann 'patch' eine Beschreibung im Patch (wie sie 'diff' erzeugt hat) in den Sourcen nicht finden, und uebergeht im Patchvorgang diese, aber schreibt das in eine reject-Datei.

    Manchmal funktioniert das kompilierte Programm aber hinterher trotzdem, ist also ein patch auch auf andere Versionen der Sourcen anwendbar - entscheidend ist das 'patch' die zu patchenden Dateien Vorfindet. Meiner Erfahrung nach sucht patch, wenn es die Dateien nicht in erwartetem Zustand vorfindet versucht die gesuchte Zeile ueber Pattern-Match zu finden und fragt nach ob es nach der Ihm (von koennern) beigebrachten Weisheit dem User eine Version vorlegen soll, mit dem er es auf gut Glueck ja mal Versuchen mag.

    Bei dir koennte ich mir vorstellen das du im falschen Verzeichnis bist, oder der Patch auf die falsche Version der Sourcen angewendet wird.
     
Thema:

Kernel patchen

Die Seite wird geladen...

Kernel patchen - Ähnliche Themen

  1. USB-Hub und Kyocera FS-820 Kernel patchen notwendig

    USB-Hub und Kyocera FS-820 Kernel patchen notwendig: Hallo Liste, mein erster Beitrag hier und eine Entschuldigung gleich vorweg: Ich bin Linux Newbie... Auf meinem Notebook Acer Travelmate LCI...
  2. vanilla kernel-source patchen

    vanilla kernel-source patchen: hallo! ich habe diese frage schon mal unter einer anderen (debian) rubrik gestellt, aber keine antwort bekommen. ich weiß auch nicht wie man...
  3. fehler beim patchen des kernels

    fehler beim patchen des kernels: guten abend! beim versuch, den kernel zu patchen mit dem folgenden befehl patch -p1 < /home/dramen/bootsplash-3.1.4-2.6.10.diff ..... kommt...
  4. Kernel 2.4.26 auf 2.6.6 patchen

    Kernel 2.4.26 auf 2.6.6 patchen: Hy, Ich hab im moment den Kernel 2.4.26 drauf, wie kann ich den jetzt auf 2.6.6 patchen? Ich will die alten Settings beibehalten, damit ich...
  5. kernel unter debian patchen

    kernel unter debian patchen: hi wie kann ich nen kernel patchen hab die sourcen vom 2.4.20 im usr/src verzeichnis da ich ext3 benutze wollte ich denn patch drüberziehen hab...