Wo kann man von Ubuntu bereitgestellte Patches für Gerätetreiber von Drittanbietern erhalten, um sie auf Vanillekerne anzuwenden?

7

Zu Testzwecken lade ich normalerweise den von git erhältlichen Ubuntu-Kernel herunter und erstelle ihn für meinen PC. Normalerweise ist die stabile Version des Ubuntu-Kernels jedoch nicht immer mit dem neuesten stabilen Vanille-Kernel synchronisiert.

Der Unterschied besteht auch darin, dass auf den Vanillekern einige Patches angewendet werden, die auf die Ubuntu-Distribution zugeschnitten sind. Sie können einen Ubuntu-Kernel unterscheiden, wenn Sie in den Quellordner schauen, in dem 3 zusätzliche Ordner angezeigt werden:

  • Debian
  • debian.master
  • Ubuntu

Die Packing-Patches (Debian-Patches) sind im Mainline-Kernel PPA erhältlich (zB für Vanillekern v3.3.3 hier ). Das Problem ist, dass ich auch den von Ubuntu gelieferten Patch für Treiber von Drittanbietern nicht finden kann, damit ich sie auf den neuesten stabilen Kernel von kernel.org anwenden kann

Vermisse ich etwas Sollte kein separater Patch sein, der heruntergeladen und auf den Vanillekern angewendet werden kann, damit er "Ubuntu'fied" sein kann.

Salih Emin
quelle

Antworten:

6

Der Ubuntu-Kernel verwendet keine Debian-Verpackung, um Patches auf die Kernelquelle anzuwenden, wie es die meisten Debian-Pakete tun. In Bezug auf die Debian-Verpackung gibt es für jede Kernel-Version einen ganz neuen Upstream-Tarball.

Dies geschieht, weil das Ubuntu-Kernel-Team git verwendet, um Kernel-Änderungen aufrechtzuerhalten. Dies stimmt uns mit den Upstream-Kernel-Praktiken überein und ist transparenter als die Debian-Verpackung für andere Kernel-Entwickler, die die (Git-) Patches sehen möchten, aus denen unser Kernel besteht.

Die Ubuntu Git Repositorys für die Kernel finden Sie hier:

http://kernel.ubuntu.com/git

Freigegebene Kernel finden Sie in ubuntu / ubuntu-.git

Anweisungen zum Erstellen eines Kernels finden Sie hier:

https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

Verwenden Sie den Abschnitt zum Klonen des Git-Repos und überprüfen Sie dann die Git-Protokolle, um die Patches für den gewünschten Treiber zu finden. Verwenden Sie dann git, um sie zu extrahieren und auf Ihren Basiskernel anzuwenden, und erstellen Sie diese.

Sconklin
quelle
Vielen Dank für Ihre Zeit und Antwort. Kurz gesagt, es gibt keinen separaten Ort, an dem ich eine Art "Ubuntu-3.3.3.patch" herunterladen kann, das ich dann von kernel.org auf Linus 'Kernel v3.3.3-Baum anwenden kann. Ich muss den Kernel verwenden, der über Ubuntu git bereitgestellt wird (z. B. ubuntu / ubuntu-quantal.git). Hab ich recht ?
Salih Emin
2
Das ist richtig. Die Möglichkeit hierfür ist die Verwendung von git: Extrahieren Sie die Änderungen aus dem oberen Bereich des Ubuntu-Kernelbaums, die seit der Baseline der Upstream-Kernelversion für diese Version angewendet wurden. Dazu gehören stabile Upstream-Fixes, Änderungen der Ubuntu-Konfiguration und Dinge, von denen wir wissen, dass sie Upstream nicht akzeptieren. Nehmen Sie dann die zutreffenden (dh stabile Upstream-Patches für einen vorherigen Kernel werden dies wahrscheinlich nicht tun) und wenden Sie sie auf den Upstream-Kernel Ihrer Wahl an. Hier werden einige Konventionen für Festschreibungstexte beschrieben: wiki.ubuntu.com/KernelTeam/KernelMaintenance unter " Festschreibungsvorlagen ".
Sconklin