GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine Checkliste zum Einreichen Ihres ersten Linux-Kernel-Patches

Eines der größten – und sich am schnellsten bewegenden – Open-Source-Projekte, der Linux-Kernel, besteht aus etwa 53.600 Dateien und fast 20 Millionen Codezeilen. Mit mehr als 15.600 Programmierern, die weltweit zu dem Projekt beitragen, folgt der Linux-Kernel einem Betreuermodell für die Zusammenarbeit.

In diesem Artikel werde ich eine kurze Checkliste der Schritte zur Verfügung stellen, die mit Ihrem ersten Beitrag zum Kernel verbunden sind, und einen Blick darauf werfen, was Sie wissen sollten, bevor Sie einen Patch einreichen. Für einen detaillierteren Einblick in den Einreichungsprozess zum Beitragen Ihres ersten Patches lesen Sie das KernelNewbies First Kernel Patch Tutorial.

Beitrag zum Kernel

Schritt 1:Bereiten Sie Ihr System vor.

Die Schritte in diesem Artikel gehen davon aus, dass Sie die folgenden Tools auf Ihrem System haben:

  • Texteditor
  • E-Mail-Client
  • Versionskontrollsystem (z. B. Git)

Schritt 2:Laden Sie das Linux-Kernel-Code-Repository herunter:

git clone -b staging-testing 
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

Kopieren Sie Ihre aktuelle Konfiguration:

cp /boot/config-`uname -r`* .config

Schritt 3:Erstellen/installieren Sie Ihren Kernel.

make -jX 
sudo make modules_install install

Schritt 4:Erstellen Sie eine Verzweigung und wechseln Sie dorthin.

git checkout -b first-patch

Schritt 5:Aktualisieren Sie Ihren Kernel, sodass er auf die neueste Codebasis verweist.

git fetch origin
git rebase origin/staging-testing

Schritt 6:Nehmen Sie eine Änderung an der Codebasis vor.

Mit make neu kompilieren Befehl, um sicherzustellen, dass Ihre Änderung keine Fehler erzeugt.

Schritt 7:Übernehmen Sie Ihre Änderungen und erstellen Sie einen Patch.

git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^

Der Betreff besteht aus dem Pfad zum Dateinamen, getrennt durch Doppelpunkte, gefolgt von dem, was der Patch im Imperativ tut. Nach einer Leerzeile kommt die Beschreibung des Patches und das obligatorische Abmelde-Tag und zuletzt ein Diff Ihres Patches.

Hier ist ein weiteres Beispiel für einen einfachen Patch:

Senden Sie als Nächstes den Patch per E-Mail von der Befehlszeile aus (in diesem Fall Mutt):

mutt -H /tmp/0001-<whatever your filename is>

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Verwenden Sie das Skript get_maintainer.pl, um die Liste der Betreuer zu erfahren, an die der Patch gesendet werden soll.

Was Sie wissen sollten, bevor Sie Ihren ersten Patch einreichen

  • Der Staging-Baum von Greg Kroah-Hartman ist ein guter Ort, um Ihren ersten Patch einzureichen, da er einfache Patches von neuen Mitwirkenden akzeptiert. Wenn Sie sich mit dem Patch-Sendeprozess vertraut gemacht haben, können Sie subsystemspezifische Patches mit erhöhter Komplexität senden.
  • Sie könnten auch damit beginnen, Probleme im Codierungsstil im Code zu korrigieren. Um mehr zu erfahren, lesen Sie die Dokumentation zum Linux-Kernel-Codierungsstil.
  • Das Skript checkpatch.pl erkennt für Sie Programmierstilfehler. Führen Sie beispielsweise Folgendes aus:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • Du könntest TODOs vervollständigen, die von Entwicklern unvollständig gelassen wurden:
    find drivers/staging -name TODO 
  • Coccinelle ist ein hilfreiches Tool für den Musterabgleich.
  • Lesen Sie die Kernel-Mailing-Archive.
  • Gehen Sie durch das linux.git-Protokoll, um Commits früherer Autoren zur Inspiration zu sehen.
  • Hinweis:Posten Sie nicht oben, um mit dem Prüfer Ihres Patches zu kommunizieren! Hier ist ein Beispiel:

    Falscher Weg:

    Chris,

    Ja, lass uns das Meeting morgen im zweiten Stock ansetzen.

    > Am Freitag, den 26. April 2013 um 9:25 Uhr schrieb Chris:

    > Hey John, ich hatte einige Fragen:

    > 1. Möchten Sie das Meeting morgen planen?

    > 2. In welcher Etage des Büros?

    > 3. Welche Zeit passt für Sie?

    (Beachten Sie, dass die letzte Frage in der Antwort unbeabsichtigt unbeantwortet gelassen wurde.)

    Richtiger Weg:

    Chris,

    Siehe meine Antworten unten...

    > Am Freitag, den 26. April 2013 um 9:25 Uhr schrieb Chris:

    > Hey John, ich hatte ein paar Fragen:

    > 1. Möchtest du das Treffen morgen planen?

    Ja, morgen ist in Ordnung.

    > 2. Auf welcher Etage im Büro?

    Lass es im zweiten Stock bleiben.

    > 3. Welche Zeit passt zu dir?

    09:00 Uhr wäre in Ordnung.

    (Alle Fragen wurden beantwortet, das spart Lesezeit.)

  • Die Eudyptula-Herausforderung ist eine großartige Möglichkeit, Kernel-Grundlagen zu lernen.

Um mehr zu erfahren, lesen Sie das KernelNewbies First Kernel Patch Tutorial. Wenn Sie danach noch Fragen haben, stellen Sie sie auf der Kernelnewbies-Mailingliste oder im IRC-Kanal #kernelnewbies.


Linux
  1. 9 Dinge, die Sie in den ersten 10 Minuten auf einem Linux-Server tun sollten

  2. Kontinuierliche Integrationstests für den Linux-Kernel

  3. Die 5 besten GNOME-Shell-Erweiterungen für Ihren Linux-Desktop

  4. Linux-Kernel für Nintendo Wii?

  5. Hat der Linux-Kernel eine Hauptfunktion?

So bearbeiten Sie Ihre Kernel-Boot-Parameter unter Linux

20 Schritte, um Ihren PC für die Linux-Installation vorzubereiten

So finden Sie heraus, welche Version des Linux-Kernels auf Ihrem PC läuft

Verwandeln Sie Ihren Linux-PC in Bluetooth-Lautsprecher für Ihr Telefon

Patchen Sie den Raspberry Pi Linux Kernel mit KernelCare KOSTENLOS!

Beste KDE-Linux-Distributionen für Ihren Desktop