maart 4, 2022

stappen voor het bijdragen aan de Linux Kernel

een van de grootste—en snelst bewegende—open source projecten, de Linux kernel, bestaat uit ongeveer 53.600 bestanden en bijna 20 miljoen regels code. Met meer dan 15.600 programmeurs die wereldwijd bijdragen aan het project, volgt de Linux kernel een onderhouder model voor samenwerking.

in dit artikel geef ik een snelle checklist met stappen die te maken hebben met het maken van je eerste kernelbijdrage, en kijk wat je moet weten voordat je een patch instuurt. Lees de KernelNewbies First Kernel Patch tutorial voor een meer diepgaande kijk op het aanmeldingsproces voor het bijdragen van je eerste patch.

bijdragen aan de kernel

Stap 1: Uw systeem voorbereiden.

stappen in dit artikel gaan ervan uit dat u de volgende tools op uw systeem hebt:

  • teksteditor
  • e-mailclient
  • versiebeheersysteem (bijv. git)

Stap 2: Download de Linux kernel code repository:

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

Kopieer uw huidige configuratie:

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

Stap 3: Bouw / installeer je kernel.

make -jX
sudo make modules_install install

Stap 4: Maak een branch en wissel ernaar.

git checkout -b first-patch

Stap 5: Werk uw kernel bij om naar de nieuwste codebasis te verwijzen.

git fetch origin
git rebase origin/staging-testing

Stap 6: verander de basiscode.

hercompileren met het commando make om ervoor te zorgen dat uw wijziging geen fouten veroorzaakt.

Stap 7: Commit uw wijzigingen en maak een patch aan.

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

het onderwerp bestaat uit het pad naar de bestandsnaam gescheiden door dubbele punten, gevolgd door wat de patch doet in de imperatieve tijd. Na een lege regel komt de beschrijving van de patch en de verplichte afgemelde tag en, als laatste, een diff van je patch.

hier is een ander voorbeeld van een eenvoudige patch:

vervolgens stuurt u de patch met behulp van e-mail vanaf de commandoregel (in dit geval Mutt):

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

om de lijst van onderhouders te kennen aan wie de patch moet worden verzonden, gebruik je de get_maintainer.pl script.

wat u moet weten voordat u uw eerste patch instuurt

  • Greg Kroah-Hartman ‘ s staging tree is een goede plek om uw eerste patch in te dienen omdat hij eenvoudige patches van nieuwe bijdragers accepteert. Wanneer u vertrouwd raakt met het proces voor het verzenden van patches, kunt u subsysteemspecifieke patches met een grotere complexiteit verzenden.
  • u kunt ook beginnen met het corrigeren van problemen met codering in de code. Voor meer informatie, lees de Linux kernel codering stijl documentatie.
  • het script checkpatch.pl detecteert codering stijl fouten voor u. Bijvoorbeeld, uitvoeren:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • je zou Todo ‘ s kunnen voltooien die door ontwikkelaars incompleet zijn gelaten:
    find drivers/staging -name TODO 
  • Coccinelle is een handig hulpmiddel voor het matchen van patronen.
  • lees de kernel mailingarchieven.
  • ga door de linux.git log om commits van vorige auteurs te zien voor inspiratie.
  • Opmerking: Niet bovenaan plaatsen om te communiceren met de recensent van uw patch! Hier is een voorbeeld:

    verkeerde weg:

    Chris,
    ja laten we de vergadering morgen plannen, op de tweede verdieping.
    > op vr 26 April 2013 om 9: 25 uur schreef Chris:
    > Hey John, I had some questions:
    > 1. Wil je de vergadering morgen plannen?
    > 2. Op welke verdieping in het kantoor?
    > 3. Hoe laat is geschikt voor u?

    (merk op dat de laatste vraag onbedoeld onbeantwoord werd gelaten in het antwoord.)

    juiste manier:

    Chris,
    Zie mijn antwoorden hieronder…
    > op vr 26 April 2013 om 9: 25 uur schreef Chris:
    > Hey John, I had some questions:
    > 1. Wil je de vergadering morgen plannen?
    ja morgen is prima.
    > 2. Op welke verdieping in het kantoor?
    laten we het op de tweede verdieping houden.
    > 3. Hoe laat is geschikt voor u?
    09: 00 am zou in orde zijn.

    (alle vragen werden beantwoord, en op deze manier bespaart u leestijd.)

  • de eudyptula challenge is een geweldige manier om kernel basics te leren.

lees de kernelnewbies First Kernel Patch tutorial voor meer informatie. Als je daarna nog vragen hebt, stel dan op de kernelnewbies mailinglijst of in het # kernelnewbies IRC kanaal.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.