GNU/Linux >> Linux Esercitazione >  >> Linux

Come compilare il kernel Linux dal sorgente per creare un kernel personalizzato

Il kernel Linux è la forza vitale di tutta la famiglia di sistemi operativi Linux, inclusi Ubuntu, CentOS e Fedora.

Per la maggior parte, non è necessario compilare il kernel, poiché viene installato per impostazione predefinita quando si installa il sistema operativo. Inoltre, quando viene eseguito un aggiornamento critico del kernel, puoi usare yum o apt-get per aggiornare il kernel sul tuo sistema Linux.

Tuttavia potresti incontrare determinate situazioni, in cui potresti avere per compilare il kernel dal sorgente. Le seguenti sono alcune situazioni in cui potresti dover compilare il kernel sul tuo sistema Linux.

  • Per abilitare funzionalità sperimentali che non fanno parte del kernel predefinito.
  • Per abilitare il supporto per un nuovo hardware che non è attualmente supportato dal kernel predefinito.
  • Per eseguire il debug del kernel
  • Oppure, solo per imparare come funziona il kernel, potresti voler esplorare il codice sorgente del kernel e compilarlo da solo.

In questo tutorial, spiegheremo come compilare il kernel Linux dal sorgente.

Inoltre, tieni presente che se vuoi semplicemente compilare un driver, non è necessario compilare il kernel. Hai solo bisogno del pacchetto linux-headers del kernel.

1. Scarica l'ultimo kernel stabile

Il primo passo è scaricare l'ultimo kernel stabile da kernel.org.

# cd /usr/src/

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

2. Decomprimi la sorgente del kernel

Il secondo passo è decomprimere il file sorgente del kernel per la compilazione.

# tar -xvJf linux-3.9.3.tar.xz

3. Configura il kernel

Il kernel contiene quasi 3000 opzioni di configurazione. Per rendere il kernel utilizzato dalla maggior parte delle persone sulla maggior parte dell'hardware, la distribuzione Linux come Ubuntu, Fedora, Debian, RedHat, CentOS, ecc., generalmente includerà il supporto per l'hardware più comune. Puoi prendere una qualsiasi delle configurazioni dalla distribuzione, e per di più puoi aggiungere la tua configurazione, oppure puoi configurare il kernel da zero, oppure puoi usare la configurazione predefinita fornita dal kernel.

# cd linux-3.9.3

# make menuconfig

Il make menuconfig avvierà un'interfaccia utente basata su testo con opzioni di configurazione predefinite come mostrato nella figura. Dovresti aver installato i pacchetti "libncurses e libncurses-devel" affinché questo comando funzioni.

Useremo la configurazione predefinita fornita dal kernel. Quindi seleziona "Salva" e salva la configurazione nel nome del file ".config".

Quello che segue è un esempio del file “.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. Compila il kernel Linux

Compila il kernel principale:

# make

Compila i moduli del kernel:

# make modules

Installa i moduli del kernel:

# make modules_install

A questo punto, dovresti vedere una directory denominata /lib/modules/3.9.3/ nel tuo sistema.

5. Installa il nuovo kernel

Installa il nuovo kernel sul sistema:

# make install

Il comando make install creerà i seguenti file nella directory /boot.

  • vmlinuz-3.9.3 – Il kernel vero e proprio
  • System.map-3.9.3 – I simboli esportati dal kernel
  • initrd.img-3.9.3 – l'immagine initrd è un file system radice temporaneo utilizzato durante il processo di avvio
  • config-3.9.3 – Il file di configurazione del kernel

Il comando "make install" aggiornerà anche grub.cfg per impostazione predefinita. Quindi non è necessario modificare manualmente il file grub.cfg.

6. Avvia Linux con il nuovo kernel

Per utilizzare il nuovo kernel appena compilato, riavvia il sistema.

# reboot

Poiché, in grub.cfg, il nuovo kernel viene aggiunto come avvio predefinito, il sistema si avvierà dal nuovo kernel. Nel caso in cui dovessi avere problemi con il nuovo kernel, puoi selezionare il vecchio kernel dal menu di grub durante l'avvio e puoi usare il tuo sistema come al solito.

Una volta che il sistema è attivo, usa il comando uname per verificare che sia installata la nuova versione del kernel Linux.

$ uname -r
3.9.3

Linux
  1. Come compilare Brotli dal sorgente su Ubuntu 18.04 LTS

  2. Come compilare Brotli dal sorgente su CentOS 7

  3. Come installare e configurare Nginx dal sorgente su Linux

  4. Come compilare la mia libreria standard C glibc dal sorgente e usarla?

  5. È possibile compilare una Darwin Distro dal sorgente, come si può costruire una Linux Distro?

Come costruire Nginx dal sorgente su CentOS 7

Come installare un programma da Source su Linux

Come creare pacchetti Debian dal sorgente

Come installare il software dal sorgente in Linux

Come compilare PHP7.0/PHP7.1 dal sorgente su Arch Linux

Come costruire il kernel Linux da zero