
Ich folge den Anweisungen unterHierum meinen Server einzurichten. Darin steht, dass ich einen Patch anwenden muss, den ich auf den Rechner heruntergeladen habe. Meine Frage ist, dass im Artikel steht, dass ich den folgenden Befehl verwenden soll:
/usr/src/linux # patch -p1 < file.diff //note I replace file.diff w/ routes-2.6.36.16.diff
Dies gibt Folgendes zurück:
-bash: /usr/src/linux: No such file or directory
Ich gehe davon aus, dass dies /linux #
durch die aktuelle Linux-Kernelversion/das aktuelle Linux-Kernelverzeichnis ersetzt werden sollte. Ich habe dies mit dem folgenden Befehl versucht:
/usr/src/linux-headers-2.6.35.22 patch -p1 < file.diff
Dies gibt dasselbe zurück. Wenn ich den Inhalt von /usr/src ansehe, habe ich nur zwei Verzeichnisse linux-headers-2.6.35.22
und linux-headers-2.6.35.22-generic-pae
brauche eine Anleitung, wie ich einen Patch richtig auf den Kernel anwende.
Bearbeiten
Wenn ich es ausführe, /usr/src/linux-headers-2.6.35.22/ patch -p1 file.diff
erhalte ich -bash: /usr/src/linux-headers-2.6.35.22: is a directory
. Ich muss wissen, wie ich die spezifische Datei finde, die hier gepatcht werden muss ...
Antwort1
Sie müssen die Quelle herunterladen. Sie können dies über apt-src tun, aber ich würde (persönlich) einfach die neueste Version vonkernel.org, entpacke es, patche es (nur mit lokalen Pfaden wie dem Desktop, es muss nicht in /usr/src versteckt sein!) und folge den"unmodern"Anweisungen zum Kompilieren.
Beachten Sie, dass einige Patches nur für bestimmte Versionen des Kernels verfügbar sind (einschließlich Point Releases). Stellen Sie daher sicher, dass Ihr Patch mit der Quellversion funktioniert, bevor Sie 20 bis 30 Minuten mit dem Kompilieren verschwenden.
Ihr spezielles Problem besteht jedoch darin, dass Sie sich in dem Verzeichnis befinden müssen, in dem Sie den Patch anwenden möchten. In Ihrem Fall:
cd /usr/src/linux-headers-2.6.35.22/
patch -p1 < /path/to/file.diff
Ändern Sie natürlich den Pfad zum Patch (oder legen Sie ihn in dasselbe Verzeichnis). Wenn die Quelldateien root gehören, setzen Sie ein Präfix sudo
vor den Patch-Befehl oder führen Sie ihn aus sudo su
, um root zu werden, während Sie dies tun.
Antwort2
Um Frustration zu vermeiden, sollten Sie solche Dinge grundsätzlich auf Ubuntu-Art erledigen. Vollständige Anweisungen mit offiziellen Paketen finden Sie hier:
https://help.ubuntu.com/community/Kernel/Compile
Es bietet Listen mit Abhängigkeiten und Schritt-für-Schritt-Befehle zum Einrichten und Ausführen eines benutzerdefinierten Kernels.
Wenn Sie dieses Verfahren befolgen, erhalten Sie am Ende ein deinstallierbares Paket, das Ihren benutzerdefinierten Kernel enthält. Dies bedeutet, dass Sie in Zukunft bei Bedarf wieder zum offiziellen Kernel zurückkehren können.
Antwort3
Die Anweisungen, denen Sie folgen, zeigen Ihnen die Eingabeaufforderung der Befehlszeile /usr/src/linux #
, die Sie nicht als Teil des Befehls eingeben. Der Befehl, der den Patch anwendet, beginnt hier patch
und wird von dort aus fortgesetzt.