<Precedenti | Contenuti | Succ.>
8.3.1. Installazione del kernel
La compilazione del kernel richiede alcuni passaggi: configurazione, compilazione e installazione. Leggi il README file nell'albero dei sorgenti del kernel per metodi alternativi al modo in cui questo libro configura il kernel.
Prepararsi per la compilazione eseguendo il comando seguente:
rendere il mrproprio
rendere il mrproprio
Ciò garantisce che l'albero del kernel sia assolutamente pulito. Il team del kernel consiglia di inviare questo comando prima di ogni compilazione del kernel. Non fare affidamento sul fatto che l'albero di origine sia pulito dopo l'eliminazione del tar.
Configurare il kernel tramite un'interfaccia guidata da menu. Per informazioni generali sulla configurazione del kernel, vedere http://www. linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. BLFS ha alcune informazioni riguardanti particolari requisiti di configurazione del kernel dei pacchetti al di fuori di LFS su http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index. Ulteriori informazioni sulla configurazione e la compilazione del kernel possono essere trovate su http://www.kroah.com/lkn/
Note:
Un buon punto di partenza per impostare la configurazione del kernel è eseguire crea defconfig. Ciò imposterà la configurazione di base su un buono stato che tenga conto dell'attuale architettura del sistema.
Assicurati di abilitare/disabilitare/impostare le seguenti funzionalità o il sistema potrebbe non funzionare correttamente o avviarsi del tutto:
Driver di dispositivo --->
Opzioni driver generiche --->
[ ] Supporto per uevent helper [CONFIG_UEVENT_HELPER]
[*] Mantieni un filesystem devtmpfs da montare su /dev [CONFIG_DEVTMPFS]
Hacking del kernel --->
Scegli kernel unwinder (frame pointer unwinder) ---> [CONFIG_UNWINDE
Ci sono molte altre opzioni che possono essere desiderate a seconda dei requisiti del sistema. Per un elenco delle opzioni necessarie per i pacchetti BLFS, vedere l'indice BLFS delle impostazioni del kernel (http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index).
Note:
Se l'hardware del tuo host sta usando UEFI, allora il 'make defconfig' sopra dovrebbe aggiungere automaticamente alcune opzioni del kernel relative a EFI.
Per consentire l'avvio del kernel LFS dall'ambiente di avvio UEFI del tuo host, il kernel deve avere questa opzione selezionata:
Tipo di processore e caratteristiche
[*]
--->
[CONFIG_EFI_STUB]
Tipo di processore e caratteristiche
[*]
Supporto stub EFI
Supporto stub EFI
Una descrizione più completa della gestione degli ambienti UEFI dall'interno di LFS è trattata dal suggerimento lfs-uefi.txt su
http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.
La logica per gli elementi di configurazione di cui sopra:
Supporto per uevent helper
L'impostazione di questa opzione può interferire con la gestione dei dispositivi quando si utilizza Udev/Eudev.
Mantenere un devtmpfs
Questo creerà nodi di dispositivi automatizzati che vengono popolati dal kernel, anche senza Udev in esecuzione. Udev viene quindi eseguito su questo, gestendo le autorizzazioni e aggiungendo collegamenti simbolici. Questo elemento di configurazione è richiesto per tutti gli utenti di Udev/Eudev.
Fare menuconfig
Fare menuconfig
Il significato delle variabili di ambiente make facoltative:
LINGUA= LC_ALL=
Ciò stabilisce l'impostazione locale su quella utilizzata sull'host. Questo potrebbe essere necessario per un corretto disegno della linea dell'interfaccia di menuconfig ncurses su una console di testo Linux UTF-8.
Se utilizzato, assicurarsi di sostituire dal valore di $ LANG variabile dal tuo host. In alternativa puoi usare invece il valore dell'host di $LC_TUTTI or $LC_CTYPE.
Alternativamente, crea oldconfig può essere più appropriato in alcune situazioni. Vedi il README file per ulteriori informazioni.
Se lo si desidera, saltare la configurazione del kernel copiando il file di configurazione del kernel, .config, dal sistema host (supponendo che sia disponibile) al decompresso Linux-5.2.8 directory. Tuttavia, non consigliamo questa opzione. Spesso è meglio esplorare tutti i menu di configurazione e creare la configurazione del kernel da zero.
Compila l'immagine del kernel e i moduli:
make
make
Se si utilizzano moduli del kernel, la configurazione del modulo in /etc/modprobe.d potrebbe essere richiesto. Le informazioni relative ai moduli e alla configurazione del kernel si trovano nella Sezione 7.3, «Panoramica sulla gestione dei dispositivi e dei moduli» e nella documentazione del kernel nella linux-5.2.8/Documentazione directory. Anche, modprobe.d(5) Può essere di interesse.
Installa i moduli, se la configurazione del kernel li usa:
make module_install
make module_install
Al termine della compilazione del kernel, sono necessari passaggi aggiuntivi per completare l'installazione. Alcuni file devono essere copiati nel /avvio directory.
Attenzione
Se il sistema host ha una partizione /boot separata, i file copiati di seguito dovrebbero andare lì. Il modo più semplice per farlo è associare /boot sull'host (al di fuori di chroot) a /mnt/lfs/boot prima di procedere. Come utente root nel sistema host:
Attenzione
Se il sistema host ha una partizione /boot separata, i file copiati di seguito dovrebbero andare lì. Il modo più semplice per farlo è associare /boot sull'host (al di fuori di chroot) a /mnt/lfs/boot prima di procedere. Come utente root nel sistema host:
mount --bind /boot /mnt/lfs/boot
mount --bind /boot /mnt/lfs/boot
Il percorso dell'immagine del kernel può variare a seconda della piattaforma utilizzata. Il nome del file di seguito può essere modificato in base ai propri gusti, ma la radice del nome del file dovrebbe essere vmlnuz per essere compatibile con l'impostazione automatica del processo di avvio descritto nella sezione successiva. Il comando seguente presuppone un'architettura x86:
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0
System.map è un file di simboli per il kernel. Mappa i punti di ingresso delle funzioni di ogni funzione nell'API del kernel, nonché gli indirizzi delle strutture dati del kernel per il kernel in esecuzione. Viene utilizzato come risorsa durante l'analisi dei problemi del kernel. Immetti il seguente comando per installare il file mappa:
cp -iv System.map /boot/System.map-5.2.8
cp -iv System.map /boot/System.map-5.2.8
Il file di configurazione del kernel .config prodotto dal Fare menuconfig il passaggio precedente contiene tutte le selezioni di configurazione per il kernel appena compilato. È una buona idea conservare questo file per riferimento futuro:
cp -iv .config /boot/config-5.2.8
cp -iv .config /boot/config-5.2.8
Installa la documentazione per il kernel Linux:
installa -d /usr/share/doc/linux-5.2.8
cp -r Documentazione/* /usr/share/doc/linux-5.2.8
installa -d /usr/share/doc/linux-5.2.8
cp -r Documentazione/* /usr/share/doc/linux-5.2.8
È importante notare che i file nella directory dei sorgenti del kernel non sono di proprietà di radice. Ogni volta che un pacchetto viene decompresso come utente radice (come abbiamo fatto all'interno di chroot), i file hanno gli ID utente e di gruppo di qualunque cosa si trovassero sul computer del packager. Questo di solito non è un problema per qualsiasi altro pacchetto da installare perché l'albero dei sorgenti viene rimosso dopo l'installazione. Tuttavia, l'albero dei sorgenti di Linux viene spesso mantenuto per molto tempo. Per questo motivo, c'è la possibilità che qualsiasi ID utente utilizzato dal packager venga assegnato a qualcuno sulla macchina. Quella persona avrebbe quindi accesso in scrittura al sorgente del kernel.
Note:
In molti casi, la configurazione del kernel dovrà essere aggiornata per i pacchetti che verranno installati successivamente in BLFS. A differenza di altri pacchetti, non è necessario rimuovere l'albero dei sorgenti del kernel dopo l'installazione del kernel appena compilato.
Se l'albero dei sorgenti del kernel verrà mantenuto, esegui chown -R 0:0 sul canale Linux-5.2.8 directory per garantire che tutti i file siano di proprietà dell'utente radice.
Note:
In molti casi, la configurazione del kernel dovrà essere aggiornata per i pacchetti che verranno installati successivamente in BLFS. A differenza di altri pacchetti, non è necessario rimuovere l'albero dei sorgenti del kernel dopo l'installazione del kernel appena compilato.
Se l'albero dei sorgenti del kernel verrà mantenuto, esegui chown -R 0:0 sul canale Linux-5.2.8 directory per garantire che tutti i file siano di proprietà dell'utente radice.
Avvertenza
Alcuni documenti del kernel consigliano di creare un collegamento simbolico da /usr/src/linux che punta alla directory dei sorgenti del kernel. Questo è specifico per i kernel precedenti alla serie 2.6 e non deve essere creato su un sistema LFS in quanto può causare problemi per i pacchetti che potresti voler creare una volta che il tuo sistema LFS di base è completo.
Avvertenza
Alcuni documenti del kernel consigliano di creare un collegamento simbolico da /usr/src/linux che punta alla directory dei sorgenti del kernel. Questo è specifico per i kernel precedenti alla serie 2.6 e non deve essere creato su un sistema LFS in quanto può causare problemi per i pacchetti che potresti voler creare una volta che il tuo sistema LFS di base è completo.
Avvertenza
Le intestazioni nel sistema includere rubrica (/ usr / include) dovrebbero sempre essere quelli contro cui è stato compilato Glibc, cioè gli header sterilizzati installati in Sezione 6.7, «Linux-5.2.8 API Headers». Pertanto, dovrebbero mai essere sostituito dalle intestazioni del kernel non elaborate o da qualsiasi altra intestazione sterilizzata dal kernel.
Avvertenza
Le intestazioni nel sistema includere rubrica (/ usr / include) dovrebbero sempre essere quelli contro cui è stato compilato Glibc, cioè gli header sterilizzati installati in Sezione 6.7, «Linux-5.2.8 API Headers». Pertanto, dovrebbero mai essere sostituito dalle intestazioni del kernel non elaborate o da qualsiasi altra intestazione sterilizzata dal kernel.