März 4, 2022

Schritte, um zum Linux-Kernel beizutragen

Eines der größten — und am schnellsten wachsenden — 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 zum Projekt beitragen, folgt der Linux-Kernel einem Betreuermodell für die Zusammenarbeit.

In diesem Artikel stelle ich eine kurze Checkliste der Schritte zur Verfügung, die mit der Erstellung Ihres ersten Kernel-Beitrags verbunden sind, und schaue mir an, was Sie wissen sollten, bevor Sie einen Patch einreichen. Einen ausführlicheren Einblick in den Einreichungsprozess für den Beitrag Ihres ersten Patches erhalten Sie im KernelNewbies First Kernel Patch Tutorial.

Beitrag zum Kernel

Schritt 1: Bereiten Sie Ihr System vor.

Schritte in diesem Artikel angenommen, Sie haben die folgenden Tools auf Ihrem System:

  • 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 zu dieser.

git checkout -b first-patch

Schritt 5: Aktualisieren Sie Ihren Kernel, um auf die neueste Codebasis zu verweisen.

git fetch origin
git rebase origin/staging-testing

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

Kompilieren Sie erneut mit dem Befehl make, 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, der durch Doppelpunkte getrennt ist, gefolgt von dem, was der Patch im Imperativ tut. Nach einer Leerzeile kommt die Beschreibung des Patches und das obligatorische Signed Off-Tag und schließlich ein Diff Ihres Patches.

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

Als nächstes senden Sie den Patch per E-Mail über die Befehlszeile (in diesem Fall Mutt):

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

Um die Liste der Betreuer zu kennen, an die der Patch gesendet werden soll, verwenden Sie die get_maintainer.pl skript.

Was Sie wissen sollten, bevor Sie Ihren ersten Patch einreichen

  • Greg Kroah-Hartmans Staging-Baum 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önnen auch mit der Korrektur von Problemen mit dem Codierungsstil im Code beginnen. Um mehr zu erfahren, lesen Sie die Linux Kernel Coding Style Dokumentation.
  • Das Skript checkpatch.pl erkennt codierung stil fehler für sie. Zum Beispiel run:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • Sie können Aufgaben erledigen, die von Entwicklern unvollständig gelassen wurden:
    find drivers/staging -name TODO 
  • Coccinelle ist ein hilfreiches Werkzeug für den Mustervergleich.
  • Lies die Kernel-Mailing-Archive.
  • Gehen Sie durch das Linux.git log, um Commits früherer Autoren zur Inspiration zu sehen.
  • Hinweis: Verwenden Sie keinen Top-Post, um mit dem Rezensenten Ihres Patches zu kommunizieren! Hier ist ein Beispiel:

    Falscher Weg:

    Chris,
    Ja, planen wir das Meeting morgen im zweiten Stock.
    > Auf Fr, April 26, 2013 bei 9:25 BIN, Chris schrieb:
    > Hey John, ICH hatte einige fragen:
    > 1. Möchten Sie das Treffen morgen planen?
    > 2. Auf welcher Etage im Büro?
    > 3. Welche Zeit ist für Sie geeignet?

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

    Korrekter Weg:

    Chris,
    Siehe meine Antworten unten…
    > Auf Fr, April 26, 2013 bei 9:25 BIN, Chris schrieb:
    > Hey John, ICH hatte einige fragen:
    > 1. Möchten Sie das Treffen morgen planen?
    Ja, morgen ist gut.
    > 2. Auf welcher Etage im Büro?
    Lass es uns im zweiten Stock behalten.
    > 3. Welche Zeit ist für Sie geeignet?
    09:00 Uhr wäre in Ordnung.

    (Alle Fragen wurden beantwortet, und auf diese Weise spart Lesezeit.)

  • Die Eudyptula Challenge ist eine großartige Möglichkeit, die Grundlagen des Kernels zu erlernen.

Um mehr zu erfahren, lesen Sie das KernelNewbies First Kernel Patch Tutorial. Wenn Sie danach noch Fragen haben, wenden Sie sich an die Mailingliste kernelnewbies oder an den IRC-Kanal #kernelnewbies.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.