Ecco i passaggi. Questa procedura si basa su nixCraft 'il Procedura: Compilare Linux Kernel 2.6 --ma modernizzato considerevolmente.
Scarica ed estrai il codice sorgente del kernel che desideri compilare.
Puoi ottenere il codice sorgente del kernel upstream su kernel.org . Qui verrà utilizzata la versione 3.16.1 (l'ultimo kernel stabile al momento della stesura). Quindi potrebbe essere necessario modificare questi comandi se si utilizza una versione diversa.
Il codice sorgente del kernel è attualmente fornito in. tar . xz archives, quindi fai clic sul link "tar.xz" in base alla versione che desideri:
Dopo aver effettuato cd
l'accesso alla directory in cui è stato scaricato l'archivio, è possibile estrarlo con tar
:
tar xf linux-3.16.1.tar.xz
Installa gli strumenti di compilazione necessari ed esegui la configurazione del kernel.
Per ottenere la toolchain di Ubuntu ( gcc
, make
e così via) installare il metapacchetto build-essential :
sudo apt-get update
sudo apt-get install build-essential
Le make
destinazioni xconfig
e forniscono due modi ragionevolmente facili da usare per configurare ciò che va nel kernel menuconfig
.
xconfig
esegue un'utilità di configurazione grafica, mentre menuconfig
è basata su testo (ovvero, la sua interfaccia appare completamente all'interno del tuo terminale). Ognuno richiede alcuni software aggiuntivi non forniti da build-essential .
Per configurare graficamente , installa libqt4-dev e pkg-config ed eseguimake xconfig
:
sudo apt-get install libqt4-dev pkg-config
make xconfig
Per configurare nel terminale , installarelibncurses5-dev
(grazie a Hannu per queste informazioni) ed eseguiremake menuconfig
:
sudo apt-get install libncurses5-dev
make menuconfig
Compilare il kernel configurato.
Per prima cosa esegui questo per compilare il kernel e creare vmlinuz
:
make
vmlinuz
è "il kernel". In particolare, è l'immagine del kernel che verrà decompressa e caricata in memoria da GRUB o da qualsiasi altro boot loader in uso.
Quindi compilare i moduli del kernel caricabili :
make modules
Installa il tuo kernel appena creato.
Supponendo che tali make
comandi siano stati completati correttamente, è tempo di installare il nuovo kernel. Innanzitutto installa i moduli:
sudo make modules_install
Quindi installare il kernel stesso:
sudo make install
Ciò inserisce vmlinuz-3.16.1
(una copia di vmlinuz
), config-3.16.1
(un file di testo che memorizza i parametri di configurazione del kernel) e System.map-3.16.1
(la tabella di ricerca dei simboli del kernel ) /boot
. Per maggiori dettagli, vedi questo post di comp.os.linux.misc di Hadron e man installkernel
.
Installazione finale, quindi il kernel può essere avviato e avviare il sistema:
Questa sezione si basa in parte sulle informazioni in Kernel / Compile .
Con il kernel ora dove deve essere, ha bisogno di:
Genera i tuoi initramfs conmkinitramfs
:
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
Quando aggiorni la configurazione del boot loader GRUB2 - che è stato il predefinito in Ubuntu dal 9.10 - dovrebbe rilevare automaticamente il nuovo kernel e aggiungere un'opzione per l'avvio da esso.
sudo update-grub
Prova il tuo kernel.
Ora puoi riavviare per testare il tuo nuovo kernel. Potrebbe essere necessario tenere premuto Shifto premere Escdurante l'avvio per visualizzare il menu di avvio di GRUB in cui è possibile selezionare tra i diversi kernel installati.
Per rendere il tuo kernel (o un altro) predefinito, vedi Come posso cambiare l'ordine di avvio di GRUB?