mars 4, 2022

Trinn for å bidra Til Linux—Kjernen

En av De største—og raskest bevegelige-åpen kildekode-prosjekter, Linux-kjernen, består av ca 53 600 filer og nesten 20 millioner linjer med kode. Med mer enn 15 600 programmerere som bidrar til prosjektet over hele verden, Følger Linux-kjernen en vedlikeholdsmodell for samarbeid.

I denne artikkelen vil jeg gi en rask sjekkliste over trinn som er involvert i å lage ditt første kjernebidrag, og se på hva du bør vite før du sender inn en oppdatering. For en mer grundig titt på innsendingsprosessen for å bidra med din første patch, les KernelNewbies First Kernel Patch tutorial.

Bidra til kjernen

Trinn 1: Klargjør systemet.

Trinnene i denne artikkelen antar at du har følgende verktøy på systemet:

  • Tekst editor
  • E-postklient
  • Versjonskontrollsystem (f. eks git)

Trinn 2: Last Ned Linux kernel code repository:

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

Kopier din nåværende config:

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

Trinn 3: Bygg / installer kjernen din.

make -jX
sudo make modules_install install

Trinn 4: Lag en gren og bytt til den.

git checkout -b first-patch

Trinn 5: Oppdater kjernen slik at den peker til den nyeste kodebasen.

git fetch origin
git rebase origin/staging-testing

Trinn 6: Gjør en endring i kodebasen.

Rekompilere ved hjelp av make kommando for å sikre at endringen ikke produserer feil.

Trinn 7: Legg inn endringene dine og opprett en oppdatering.

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

emnet består av banen til filnavnet skilt av kolon, etterfulgt av hva oppdateringen gjør i imperativ tid. Etter en tom linje kommer beskrivelsen av plasteret og den obligatoriske signert av tag og, til slutt, en diff av plasteret.

her er et annet eksempel på en enkel patch:

Send deretter oppdateringen ved hjelp av e-post fra kommandolinjen (i dette tilfellet Mutt):

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

for å vite listen over vedlikeholdere til hvem du skal sende lappen, bruk get_maintainer.pl manus.

Hva du må vite før du sender inn din første patch

  • Greg Kroah-Hartmans staging tree er et bra sted å sende inn din første patch, da Han aksepterer enkle oppdateringer fra nye bidragsytere. Når du blir kjent med patchsendingsprosessen, kan du sende delsystemspesifikke patcher med økt kompleksitet.
  • Du kan også starte med å korrigere kodestilproblemer i koden. For å lære mer, les Dokumentasjonen For Linux kernel coding style.
  • skriptet checkpatch.pl oppdager koding stil feil for deg. For eksempel, kjør:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • du kan fullføre TODOs venstre ufullstendig av utviklere:
    find drivers/staging -name TODO 
  • Coccinelle er et nyttig verktøy for mønstermatching.
  • Les kjernepostarkivene.
  • Gå gjennom linux.git logg for å se forpliktelser av tidligere forfattere for inspirasjon.
  • Merk: ikke topp-post for å kommunisere med korrekturleseren av oppdateringen din! Her er et eksempel:

    Feil vei:

    Chris,
    Ja, la oss planlegge møtet i morgen, i andre etasje.
    > På Fre, April 26, 2013 på 9:25 AM, Chris skrev:
    > Hei John, jeg hadde noen spørsmål:
    > 1. Ønsker du å planlegge møtet i morgen?
    > 2. I hvilken etasje på kontoret?
    > 3. Hvilken tid passer for deg?

    (Legg Merke til at det siste spørsmålet utilsiktet var ubesvart i svaret.)

    Riktig måte:

    Chris,
    Se svarene mine nedenfor…
    > På Fre, April 26, 2013 på 9:25 AM, Chris skrev:
    > Hei John, jeg hadde noen spørsmål:
    > 1. Ønsker du å planlegge møtet i morgen?
    ja i morgen er bra.
    > 2. I hvilken etasje på kontoret?
    la oss holde det i andre etasje.
    > 3. Hvilken tid passer for deg?
    09: 00 ville være greit.

    (alle spørsmål ble besvart, og på denne måten sparer lesetid.)

  • Den Eudyptula challenge er en fin måte å lære kjernen grunnleggende.

For å lære mer, les KernelNewbies Første Kernel Patch tutorial. Etter det, hvis du fortsatt har noen spørsmål, spør på kernelnewbies mailingliste eller i # kernelnewbies IRC kanal.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.