martie 4, 2022

pași pentru a contribui la nucleul Linux

unul dintre cele mai mari și mai rapide proiecte open source, nucleul Linux, este compus din aproximativ 53.600 de fișiere și aproape 20 de milioane de linii de cod. Cu peste 15.600 de programatori care contribuie la proiect la nivel mondial, nucleul Linux urmează un model de întreținere pentru colaborare.

în acest articol, vă voi oferi o listă de verificare rapidă a pașilor implicați în realizarea primei contribuții a kernel-ului și vă voi arăta ce ar trebui să știți înainte de a trimite un patch. Pentru o privire mai aprofundată asupra procesului de depunere pentru a contribui la primul dvs. patch, citiți tutorialul Kernelnewbies First Kernel Patch.

contribuția la nucleu

Pasul 1: Pregătiți-vă sistemul.

pașii din acest articol presupun că aveți următoarele instrumente pe sistemul dvs:

  • editor de Text
  • client de e-mail
  • sistem de control al versiunii (de exemplu, git)

Pasul 2: Descărcați depozitul de coduri kernel Linux:

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

copiați configurația curentă:

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

Pasul 3: Construiți / instalați kernel-ul.

make -jX
sudo make modules_install install

Pasul 4: Faceți o ramură și treceți la ea.

git checkout -b first-patch

Pasul 5: Actualizați-vă nucleul pentru a indica cea mai recentă bază de cod.

git fetch origin
git rebase origin/staging-testing

Pasul 6: efectuați o modificare a bazei de cod.

recompilați folosind comanda make pentru a vă asigura că modificarea dvs. nu produce erori.

Pasul 7: comite modificările și de a crea un patch.

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

subiectul constă în calea către numele fișierului separat de două puncte, urmată de ceea ce face patch-ul în timpul imperativ. După o linie goală vine descrierea de patch-uri și obligatoriu semnat off tag-ul și, în cele din urmă, un dif de patch-uri.

Iată un alt exemplu de patch simplu:

apoi, trimiteți patch-ul folosind e-mailul din linia de comandă (în acest caz, Mutt):

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

pentru a cunoaște lista administratorilor cărora să le trimită patch-ul, utilizați get_maintainer.pl scenariu.

ce trebuie să știți înainte de a trimite primul dvs. patch

  • Greg Kroah-Hartman ‘ s scheduling tree este un loc bun pentru a trimite primul dvs. patch, deoarece acceptă patch-uri ușoare de la noii contribuitori. Când vă familiarizați cu procesul de trimitere a corecțiilor, puteți trimite corecții specifice subsistemului cu o complexitate sporită.
  • de asemenea, puteți începe cu corectarea problemelor de stil de codare din cod. Pentru a afla mai multe, citiți documentația stilului de codificare a nucleului Linux.
  • scenariul checkpatch.pl detectează erori de stil de codificare pentru tine. De exemplu, rulați:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • ai putea completa TODOs lăsate incomplete de către dezvoltatori:
    find drivers/staging -name TODO 
  • Coccinelle este un instrument util pentru potrivirea modelelor.
  • citiți arhivele de corespondență kernel.
  • treceți prin linux.git log pentru a vedea comite de autori anteriori pentru inspirație.
  • Notă: Nu top-post pentru a comunica cu recenzent de patch-uri! Iată un exemplu:

    mod greșit:

    Chris,
    da să programăm întâlnirea mâine, la etajul al doilea.
    >Vineri, 26 aprilie 2013 la 9:25 am, Chris a scris:
    >Hei John, am avut câteva întrebări:
    > 1. Vrei să programezi întâlnirea de mâine?
    > 2. La ce etaj în birou?
    > 3. La ce oră ți se potrivește?

    (observați că ultima întrebare a fost lăsată neintenționat fără răspuns în răspuns.)

    mod corect:

    Chris,
    Vezi răspunsurile mele de mai jos…
    >Vineri, 26 aprilie 2013 la 9:25 am, Chris a scris:
    >Hei John, am avut câteva întrebări:
    > 1. Vrei să programezi întâlnirea de mâine?
    da mâine este bine.
    > 2. La ce etaj în birou?
    să-l păstrăm la etajul al doilea.
    > 3. La ce oră ți se potrivește?
    09: 00 am ar fi bine.

    (toate întrebările au fost răspuns, și în acest fel economisește timp de lectură.)

  • provocarea Eudyptula este o modalitate excelentă de a învăța elementele de bază ale nucleului.

pentru a afla mai multe, citiți tutorialul Kernelnewbies First Kernel Patch. După aceea, dacă mai aveți întrebări, întrebați pe lista de discuții kernelnewbies sau pe canalul IRC #kernelnewbies.

Lasă un răspuns

Adresa ta de email nu va fi publicată.