március 4, 2022

lépések a Linux kernelhez való hozzájáruláshoz

az egyik legnagyobb—és leggyorsabban mozgó—nyílt forráskódú projekt, a Linux kernel körülbelül 53 600 fájlból és közel 20 millió sornyi kódból áll. Mivel világszerte több mint 15 600 programozó járul hozzá a projekthez, a Linux kernel az együttműködés fenntartói modelljét követi.

ebben a cikkben egy gyors ellenőrzőlistát adok az első kernel-hozzájárulás elvégzésének lépéseiről, és megnézem, mit kell tudni a javítás benyújtása előtt. Az első javítás hozzájárulásának benyújtási folyamatának részletesebb áttekintéséhez olvassa el a KernelNewbies első Kernel javítás oktatóanyagát.

hozzájárulás a kernelhez

1.lépés: készítse elő a rendszert.

a cikk lépései feltételezik, hogy a következő eszközök vannak a rendszeren:

  • szövegszerkesztő
  • e-mail kliens
  • verziókezelő rendszer (pl. git)

2. lépés: Töltse le a Linux kernel kódtárat:

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

másolja az aktuális konfigurációt:

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

3. lépés: Építsd / telepítse a kernelt.

make -jX
sudo make modules_install install

4.lépés: készítsen egy ágat, és váltson rá.

git checkout -b first-patch

5.lépés: frissítse a kernelt úgy, hogy a legújabb kódbázisra mutasson.

git fetch origin
git rebase origin/staging-testing

6.lépés: módosítsa a kódbázist.

fordítsd újra a make paranccsal annak biztosítására, hogy a módosítás ne okozzon hibákat.

7.lépés: Végezze el a módosításokat, és hozzon létre egy javítást.

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

a téma a fájlnév elérési útjából áll, kettőspontokkal elválasztva, majd azt, amit a javítás imperatív időben tesz. Egy üres sor után megjelenik a javítás leírása és a kötelező aláírt címke, végül pedig a javítás különbsége.

itt van egy másik példa egy egyszerű javításra:

ezután küldje el a javítást e-mailben a parancssorból (ebben az esetben Mutt):

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

a karbantartók listájának megismeréséhez, akiknek a javítást el kell küldeni, használja a get_maintainer.pl forgatókönyv.

mit kell tudni az első javítás benyújtása előtt

  • Greg Kroah-Hartman ‘ s staging tree jó hely az első javítás benyújtására, mivel elfogadja az új közreműködők egyszerű javításait. Amikor megismeri a javítás-küldési folyamatot, alrendszer-specifikus javításokat küldhet fokozott összetettséggel.
  • akkor is lehet kezdeni kijavítása kódolási stílus kérdések a kódot. További információkért olvassa el a Linux kernel kódolási stílusának dokumentációját.
  • a forgatókönyv checkpatch.pl érzékeli kódolási stílus hibákat az Ön számára. Például futtassa:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • lehet teljes TODOs maradt hiányos a fejlesztők:
    find drivers/staging -name TODO 
  • Coccinelle egy hasznos eszköz a minta megfelelő.
  • olvassa el a kernel levelezési archívumát.
  • menjen át a Linuxon.git log látni elköveti a korábbi szerzők inspirációt.
  • Megjegyzés: Ne top-post kommunikálni a véleményező a javítás! Íme egy példa:

    rossz út:

    Chris,
    Igen ütemezzük a találkozót holnap, a második emeleten.
    >a P, április 26, 2013 at 9:25 AM, Chris írta:
    >Hé John, volt néhány kérdésem:
    > 1. Be akarod ütemezni a találkozót holnapra?
    > 2. Melyik emeleten az irodában?
    > 3. Milyen idő alkalmas az Ön számára?

    (vegye figyelembe, hogy az utolsó kérdést akaratlanul megválaszolatlanul hagyták a válaszban.)

    helyes út:

    Chris,
    lásd a válaszokat alább…
    >a P, április 26, 2013 at 9:25 AM, Chris írta:
    >Hé John, volt néhány kérdésem:
    > 1. Be akarod ütemezni a találkozót holnapra?
    igen, holnap rendben van.
    > 2. Melyik emeleten az irodában?
    tartsuk a második emeleten.
    > 3. Milyen idő alkalmas az Ön számára?
    09: 00 am rendben lenne.

    (minden kérdésre választ kaptunk, így időt takaríthatunk meg az olvasással.)

  • az Eudyptula challenge egy nagyszerű módja annak, hogy megtanulják kernel alapjait.

további információkért olvassa el a KernelNewbies első Kernel javítás oktatóanyagát. Ezt követően, ha még mindig kérdése van, kérdezze meg a kernelnewbies levelezőlistán vagy a #kernelnewbies IRC csatornán.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.