GNU/Linux >> Znalost Linux >  >> Linux

Kontrolní seznam pro odeslání vaší první opravy linuxového jádra

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.


Linux
  1. 9 věcí, které musíte udělat během prvních 10 minut na serveru Linux

  2. Průběžné testování integrace linuxového jádra

  3. 5 nejlepších rozšíření prostředí GNOME pro vaši plochu Linuxu

  1. Jaký je váš oblíbený nástroj pro nahrávání obrazovky pro Linux?

  2. Linuxové jádro pro Nintendo Wii?

  3. Má jádro Linuxu hlavní funkci?

  1. Vytvářejte záložky pro PDF pomocí pdftk

  2. Linuxové nástroje pro zlepšení řízení vašeho času

  3. Začněte s Luminou pro váš počítač se systémem Linux