GNU/Linux >> Linux Esercitazione >  >> Linux

Come costruire il kernel Linux da zero {Guida passo passo}

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.


Linux
  1. Come aggiornare il kernel su desktop Linux

  2. Come controllare la versione del kernel su Linux

  3. Linux:come eseguire un bootloader da Linux?

  4. Come caricare i moduli del kernel Linux dal codice C?

  5. Come funziona internamente copy_from_user dal kernel di Linux?

Come accedere alle partizioni Linux da Windows 10

Come rimuovere un comando dalla cronologia in Linux

Come installare il software dal sorgente in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come costruire il kernel Linux da zero

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