Jeden z největších – a nejrychleji se rozvíjejících – open source projektů, linuxové jádro, se skládá z přibližně 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 správce pro spolupráci.
V tomto článku poskytnu rychlý kontrolní seznam kroků spojených s vytvořením vašeho prvního příspěvku do jádra a podívám se na to, co byste měli vědět, než odešlete opravu. Chcete-li se podrobněji podívat na proces odesílání pro přispění vaší první opravy, přečtěte si tutoriál KernelNewbies First Kernel Patch.
Přispívání do jádra
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 kontroly verzí (např. git)
Krok 2:Stáhněte si úložiště kódu jádra Linux:
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
Zkopírujte svou aktuální konfiguraci:
cp /boot/config-`uname -r`* .config
Krok 3:Sestavte/nainstalujte své jádro.
make -jX
sudo make modules_install install
Krok 4:Vytvořte větev a přepněte se na ni.
git checkout -b first-patch
Krok 5:Aktualizujte své 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 v základně kódu.
Překompilujte pomocí make
příkaz, abyste zajistili, že vaše změna nezpůsobí chyby.
Krok 7:Potvrďte 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 a následuje, co oprava dělá v imperativním čase. Po prázdném řádku následuje popis opravy a povinná značka odhlášení a nakonec 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>
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Chcete-li znát seznam správců, kterým poslat opravu, použijte skript get_maintainer.pl.
Co byste měli vědět před odesláním prvního patche
- Stagingový strom Grega Kroaha-Hartmana je dobrým místem pro odeslání vašeho prvního patche, protože přijímá snadné patche od nových přispěvatelů. Když se seznámíte s procesem odesílání záplat, můžete posílat záplaty specifické pro subsystém se zvýšenou složitostí.
- Můžete také začít 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 za vás zjistí chyby ve stylu kódování. Spusťte například:
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
- Mohli byste dokončit úkoly, které vývojáři nedokončili:
find drivers/staging -name TODO
- Coccinelle je užitečný nástroj pro vyhledávání vzorů.
- Přečtěte si poštovní archivy jádra.
- Projděte si protokol linux.git a podívejte se na potvrzení předchozích autorů pro inspiraci.
- Poznámka:Nepřidávejte příspěvky jako první, abyste mohli komunikovat s recenzentem vašeho patche! Zde je příklad:
Špatný způsob:
Chrisi,
Ano, domluvme si schůzku zítra, ve druhém patře.
> V pátek, 26. dubna 2013 v 9:25, Chris napsal:
> Ahoj Johne, mám pár otázek:
> 1. Chcete si naplánovat schůzku na zítra?
> 2. Na kterém patře v kanceláři?
> 3. Jaký čas vám vyhovuje?(Všimněte si, že poslední otázka zůstala 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, Chris napsal:
> Ahoj Johne, měl bych pár otázek:
> 1. Chcete naplánovat schůzku na zítra?
Ano, zítra je v pořádku.
> 2. Ve 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 by bylo v pořádku.(Všechny otázky byly zodpovězeny, což šetří čas při čtení.)
- Výzva Eudyptula 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 výukový program KernelNewbies First Kernel Patch. Poté, pokud máte ještě nějaké otázky, zeptejte se na mailing listu kernelnewbies nebo na #kernelnewbies IRC kanálu.