GNU/Linux >> Znalost Linux >  >> Linux

Jak zkompilovat jádro Linuxu ze zdroje a vytvořit vlastní jádro

Linuxové jádro je životní silou všech linuxových operačních systémů včetně Ubuntu, CentOS a Fedory.

Z velké části nemusíte kompilovat jádro, protože se instaluje ve výchozím nastavení při instalaci operačního systému. Také, když je provedena kritická aktualizace jádra, můžete použít yum nebo apt-get k aktualizaci jádra na vašem systému Linux.

Můžete se však setkat s určitou situací, kdy kompilovat jádro ze zdrojového kódu. Následuje několik situací, kdy možná budete muset zkompilovat jádro na vašem systému Linux.

  • Chcete-li povolit experimentální funkce, které nejsou součástí výchozího jádra.
  • Chcete-li povolit podporu pro nový hardware, který není aktuálně podporován výchozím jádrem.
  • Ladění jádra
  • Nebo, abyste se dozvěděli, jak jádro funguje, možná budete chtít prozkoumat zdrojový kód jádra a zkompilovat jej sami.

V tomto tutoriálu vysvětlíme, jak kompilovat linuxové jádro ze zdrojového kódu.

Upozorňujeme také, že pokud chcete pouze zkompilovat ovladač, nemusíte kompilovat jádro. Potřebujete pouze balíček linux-headers jádra.

1. Stáhněte si nejnovější stabilní jádro

Prvním krokem je stažení nejnovějšího stabilního jádra z kernel.org.

# cd /usr/src/

# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz

2. Rozbalte zdrojový kód jádra

Druhým krokem je rozbalit zdrojový soubor jádra pro kompilaci.

# tar -xvJf linux-3.9.3.tar.xz

3. Nakonfigurujte jádro

Jádro obsahuje téměř 3000 konfiguračních voleb. Aby bylo jádro používané většinou lidí na většině hardwaru, bude linuxové distro jako Ubuntu, Fedora, Debian, RedHat, CentOS atd. obecně zahrnovat podporu pro nejběžnější hardware. Můžete převzít jakoukoli konfiguraci z distribuce a navíc můžete přidat svou vlastní konfiguraci, nebo můžete nakonfigurovat jádro od začátku, nebo můžete použít výchozí konfiguraci, kterou poskytuje jádro.

# cd linux-3.9.3

# make menuconfig

Make menuconfig spustí textové uživatelské rozhraní s výchozími možnostmi konfigurace, jak je znázorněno na obrázku. Aby tento příkaz fungoval, měli byste mít nainstalované balíčky „libncurses a libncurses-devel“.

Použijeme výchozí konfiguraci poskytovanou jádrem. Vyberte tedy „Save“ a uložte konfiguraci pod názvem souboru „.config“.

Následuje ukázka souboru „.config“:

CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y

4. Zkompilujte linuxové jádro

Zkompilujte hlavní jádro:

# make

Zkompilujte moduly jádra:

# make modules

Nainstalujte moduly jádra:

# make modules_install

V tomto okamžiku byste měli ve vašem systému vidět adresář s názvem /lib/modules/3.9.3/.

5. Nainstalujte nové jádro

Nainstalujte nové jádro do systému:

# make install

Příkaz make install vytvoří v adresáři /boot následující soubory.

  • vmlinuz-3.9.3 – skutečné jádro
  • System.map-3.9.3 – Symboly exportované jádrem
  • initrd.img-3.9.3 – obraz initrd je dočasný kořenový souborový systém používaný během procesu spouštění
  • config-3.9.3 – konfigurační soubor jádra

Příkaz „make install“ také ve výchozím nastavení aktualizuje soubor grub.cfg. Nemusíme tedy ručně upravovat soubor grub.cfg.

6. Spusťte Linux na nové jádro

Chcete-li použít nové jádro, které jste právě zkompilovali, restartujte systém.

# reboot

Protože v grub.cfg je nové jádro přidáno jako výchozí zaváděcí systém, systém se zavede z nového jádra. Pro případ, že byste měli problémy s novým jádrem, můžete během bootování vybrat staré jádro z nabídky grub a můžete systém používat jako obvykle.

Jakmile je systém spuštěn, použijte příkaz uname k ověření, že je nainstalována nová verze linuxového jádra.

$ uname -r
3.9.3

Linux
  1. Jak zkompilovat a nainstalovat software ze zdrojového kódu na Linuxu

  2. Jak načíst moduly jádra Linuxu z kódu C?

  3. Jak zkompilovat vlastní standardní knihovnu glibc C ze zdroje a použít ji?

  1. Jak zkompilovat Brotli ze zdroje na Ubuntu 18.04 LTS

  2. Jak zkompilovat Brotli ze zdroje na CentOS 7

  3. Jak vytvořit minimální zaváděcí linux (pouze s terminálem) ze zdrojového kódu jádra?

  1. Jak sestavit balíčky ze zdroje pomocí CheckInstall

  2. Jak nainstalovat a nakonfigurovat Nginx ze zdroje na Linuxu

  3. Je možné zkompilovat Darwin Distro ze zdroje, jako můžete sestavit Linux Distro?