kroky pro přispění k jádru Linuxu
jeden z největších—a nejrychleji se pohybujících-open source projektů, Linuxové jádro, se skládá z asi 53,600 souborů a téměř 20 milionů řádků kódu. S více než 15 600 programátory přispívajícími do projektu po celém světě se Linuxové jádro řídí modelem údržby pro spolupráci.
v tomto článku vám poskytnu rychlý kontrolní seznam kroků spojených s prvním příspěvkem k jádru a podívejte se, co byste měli vědět před odesláním opravy. Chcete-li se podrobněji podívat na proces odesílání příspěvků pro první opravu, přečtěte si návod Kernelnewbies First Kernel Patch.
přispívání k jádru
Krok 1: Připravte svůj systém.
kroky v tomto článku předpokládají, že máte v systému následující nástroje:
- textový editor
- e-mailový klient
- systém řízení verzí (např.)
Krok 2: Stáhněte si úložiště kódu jádra Linuxu:
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
zkopírujte aktuální konfiguraci:
cp /boot/config-`uname -r`* .config
Krok 3: sestavení / instalace jádra.
make -jX
sudo make modules_install install
Krok 4: Vytvořte větev a přepněte na ni.
git checkout -b first-patch
Krok 5: Aktualizujte jádro tak, aby ukazovalo na nejnovější kódovou základnu.
git fetch origin
git rebase origin/staging-testing
Krok 6: proveďte změnu základny kódu.
překompilujte pomocí příkazu make
, abyste se ujistili, že vaše změna nevyvolává chyby.
Krok 7: odevzdejte změny a vytvořte opravu.
git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^
předmět se skládá z cesty k názvu souboru oddělené dvojtečkami, následované tím, co patch dělá v imperativním čase. Po prázdném řádku přichází popis opravy a povinná podepsaná značka a, konečně, rozdíl vaší opravy.
zde je další příklad jednoduché opravy:
dále odešlete opravu pomocí e-mailu z příkazového řádku (v tomto případě Mutt):
mutt -H /tmp/0001-<whatever your filename is>
Chcete-li znát seznam správců, kterým chcete opravu odeslat, použijte get_maintainer.pl scénář.
co je třeba vědět před odesláním první opravy
- Greg Kroah-Hartmanův staging tree je dobrým místem pro odeslání první opravy, protože přijímá snadné záplaty od nových přispěvatelů. Když se seznámíte s procesem odesílání oprav, můžete odesílat opravy specifické pro subsystém se zvýšenou složitostí.
- můžete také začít s opravou problémů se stylem kódování v kódu. Chcete-li se dozvědět více, přečtěte si dokumentaci stylu kódování jádra Linuxu.
- skript checkpatch.pl detekuje chyby ve stylu kódování pro vás. Například spustit:
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
- dalo by se dokončit TODOs vlevo neúplné vývojáři:
find drivers/staging -name TODO
- Coccinelle je užitečný nástroj pro porovnávání vzorů.
- Přečtěte si poštovní archivy jádra.
- projděte linux.git log vidět commit od předchozích autorů pro inspiraci.
- Poznámka: nepoužívejte top-post pro komunikaci s recenzentem vaší opravy! Zde je příklad:
špatně:
Chris,
Ano pojďme naplánovat schůzku zítra, ve druhém patře.
> v pátek 26. Dubna 2013 v 9: 25 napsal Chris:
> Ahoj Johne, měl jsem několik otázek:
> 1. Chcete naplánovat schůzku zítra?
> 2. Na kterém patře v kanceláři?
> 3. Jaký čas je pro vás vhodný?(Všimněte si, že poslední otázka byla v odpovědi neúmyslně nezodpovězena.)
správný způsob:
Chris,
Viz mé odpovědi níže…
> v pátek 26. Dubna 2013 v 9: 25 napsal Chris:
> Ahoj Johne, měl jsem několik otázek:
> 1. Chcete naplánovat schůzku zítra?
Ano zítra je v pořádku.
> 2. Na kterém patře v kanceláři?
necháme to ve druhém patře.
> 3. Jaký čas je pro vás vhodný?
09: 00 am by bylo v pořádku.(všechny otázky byly zodpovězeny a tímto způsobem šetří čas čtení.)
- Eudyptula challenge je skvělý způsob, jak se naučit základy jádra.
Chcete-li se dozvědět více, přečtěte si návod Kernelnewbies First Kernel Patch. Poté, pokud máte stále nějaké dotazy, zeptejte se na mailing listu kernelnewbies nebo na IRC kanálu #kernelnewbies.