Introduzione
Il kernel Linux è la base dei sistemi operativi simili a Unix. Il kernel è responsabile della comunicazione tra hardware e software e dell'allocazione delle risorse disponibili.
Tutte le distribuzioni Linux sono basate su un kernel predefinito. Ma se vuoi disabilitare diverse opzioni e driver o provare patch sperimentali, devi creare un kernel Linux.
In questa guida passo passo imparerai come creare e compilare un kernel Linux da zero.
Prerequisiti
- Un sistema che esegue Linux
- Accesso al terminale/riga di comando
- Un account utente con sudo/root privilegi
- 12 GB di spazio disponibile sul disco rigido
Costruzione del kernel Linux
Il processo di creazione di un kernel Linux richiede sette semplici passaggi per essere completato. Tuttavia, il completamento della procedura richiede una notevole quantità di tempo, a seconda della velocità del sistema.
Segui i passaggi seguenti per creare l'ultimo kernel Linux al momento della stesura di questo articolo.
Nota: Se la versione sul sito Web del kernel non corrisponde a quella dei passaggi seguenti, utilizzare questi comandi e sostituire il numero di versione del kernel.
Fase 1:scarica il codice sorgente
1. Visita il sito Web ufficiale del kernel e scarica l'ultima versione del kernel. Il file scaricato contiene un codice sorgente compresso.
2. Apri il terminale e usa il comando wget per scaricare il codice sorgente del kernel Linux:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz
L'output mostra il messaggio "salvato" al termine del download.
Fase 2:estrai il codice sorgente
Quando il file è pronto, esegui il comando tar per estrarre il codice sorgente:
tar xvf linux-5.9.6.tar.xz
L'output mostra il codice sorgente del kernel estratto:
Fase 3:installa i pacchetti richiesti
Installa pacchetti aggiuntivi prima di creare un kernel. Per farlo, esegui questo comando:
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
Il comando che abbiamo usato sopra installa i seguenti pacchetti:
Pacchetto | Descrizione del pacchetto |
git | Traccia e registra tutte le modifiche durante lo sviluppo nel codice sorgente. Consente inoltre di annullare le modifiche. |
fakeroot | Strumento di confezionamento che crea l'ambiente root falso. |
build-essential | Installa strumenti di sviluppo come C, C++, gcc e g++. |
ncurses-dev | Libreria di programmazione che fornisce API per i terminali testuali. |
xz-utils | Fornisce una rapida compressione e decompressione dei file. |
libssl-dev | Supporta SSL e TSL che crittografano i dati e rendono sicura la connessione Internet. |
bc (Calcolatrice di base) | Un linguaggio di scripting matematico che supporta l'esecuzione interattiva di istruzioni. |
flex (Generatore di analizzatori lessicali veloci) | Genera analizzatori lessicali che convertono i caratteri in token. |
libelf-dev | Emette una libreria condivisa per la gestione dei file ELF (file eseguibili, core dump e codice oggetto) |
bison | Generatore di parser GNU che converte la descrizione grammaticale in un programma C. |
Fase 4:Configura il kernel
Il codice sorgente del kernel Linux viene fornito con la configurazione predefinita. Tuttavia, puoi adattarlo alle tue esigenze. Per farlo, segui i passaggi seguenti:
1. Passare a linux-5.9.6. directory utilizzando il cd
comando:
cd linux-5.9.6
2. Copia il file di configurazione esistente utilizzando il cp
comando:
cp -v /boot/config-$(uname -r) .config
3. Per apportare modifiche al file di configurazione, esegui make
comando:
make menuconfig
Il comando lancia diversi script, che poi aprono il menu di configurazione:
4. Il menu di configurazione include opzioni quali firmware, file system, rete e impostazioni di memoria. Utilizza le frecce per effettuare una selezione o scegli AIUTO per saperne di più sulle opzioni. Al termine delle modifiche, seleziona SALVA e quindi uscire dal menu.
Nota: La modifica delle impostazioni per alcune opzioni può portare a un kernel non funzionante. Se non sei sicuro di cosa modificare, lascia le impostazioni predefinite.
Fase 5:crea il kernel
1. Inizia a creare il kernel eseguendo il seguente comando:
make
Il processo di compilazione e compilazione del kernel Linux richiede del tempo per essere completato.
Il terminale elenca tutti i componenti del kernel Linux:gestione della memoria, driver del dispositivo hardware, driver del filesystem, driver di rete e gestione dei processi.
2. Installa i moduli richiesti con questo comando:
sudo make modules_install
3. Infine, installa il kernel digitando:
sudo make install
L'output mostra fatto al termine:
Passaggio 6:aggiorna il Bootloader (opzionale)
Il bootloader GRUB è il primo programma che viene eseguito all'accensione del sistema.
Il make install
command esegue questo processo automaticamente, ma puoi anche farlo manualmente.
1. Aggiorna initramfs alla versione del kernel installata:
sudo update-initramfs -c -k 5.9.6
2. Aggiorna il bootloader GRUB con questo comando:
sudo update-grub
Il terminale stampa il processo e il messaggio di conferma:
Passaggio 7:riavvia e verifica la versione del kernel
Dopo aver completato i passaggi precedenti, riavviare la macchina.
All'avvio del sistema, verifica la versione del kernel utilizzando uname
comando:
uname -mrs
Il terminale stampa la versione corrente del kernel Linux.