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.