Una delle più grandi attrattive da usare Linux è la sua facile personalizzazione e una delle cose più divertenti da personalizzare è il kernel stesso, il cuore della Sistema operativo Linux. È probabile che molto probabilmente non dovrai mai compilare il tuo kernel. Quello fornito con la tua distribuzione e gli aggiornamenti tramite il tuo sistema di gestione dei pacchetti di solito è abbastanza buono, ma ci sono momenti in cui potrebbe essere necessario ricompilare il kernel.
Alcuni di questi motivi potrebbero essere speciali hardware esigenze, il desiderio di creare un kernel monolitico invece di a modularizzato uno, ottimizzando il kernel rimuovendo i driver inutili, eseguendo un kernel di sviluppo o semplicemente per saperne di più Linux. In questo caso, compileremo un nuovo rilascio Kernel 3.12, sopra Debian Wheezy. Il nuovo rilascio Kernel 3.12 ha diverse nuove funzionalità, inclusi alcuni nuovi driver per il NVIDIA Optimus, e il Driver di grafica del kernel Radeon
. Offre anche enormi miglioramenti al EST4 filesystem e alcuni aggiornamenti a XFS e Btrfs.Per iniziare, avremo bisogno di alcuni pacchetti, vale a dire fakeroot e pacchetto-kernel:
# apt-get install fakeroot kernel-package
Ora, prendiamo un tarball dei sorgenti più recente da www.kernel.org oppure puoi usare il seguente comando wget per scaricarlo.
# wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
Ora scompattiamo l'archivio.
# tar -xvJf linux-3.12.tar.xz
Dopo l'estrazione, verrà creata una nuova directory dei sorgenti del kernel.
# cd linux-3.12
Ora, vorremo configurare il kernel. È meglio iniziare con una configurazione che stai attualmente utilizzando e lavorare da lì. Per fare ciò, copieremo la configurazione corrente dal /boot directory nella directory di lavoro corrente e salvarla come .config.
# cp /boot/config-`uname –r`.config
Per iniziare con la configurazione effettiva, hai una delle due opzioni. Se hai X11 installato, puoi eseguire crea xconfig, e buona GUI menu per assisterti durante la configurazione del tuo kernel. Se stai correndo in un CLI ambiente, puoi eseguire make menuconfig. Avrai bisogno di libncurses5-dev pacchetto installato per l'uso menuconfig:
# apt-get install libncurses5-dev. # make menuconfig
Come vedrai, una volta che sei nella configurazione di tua scelta, ci sono un sacco di opzioni diverse disponibili per il tuo kernel. In effetti, ce ne sono troppi per lo scopo di questo tutorial. Quando si seleziona kernel opzioni, il modo migliore è per tentativi ed errori e facendo un sacco di ricerche su Google. È il modo migliore per imparare. Se stai semplicemente cercando di aggiornare il tuo kernel alla versione più recente, non devi cambiare nulla e puoi semplicemente selezionare "Salva configurazione”. Poiché abbiamo copiato il file di configurazione del kernel corrente nel nuovo kernel .config file.
Tieni presente che "Caricatore del modulo del kernel” è selezionato in “Supporto per moduli caricabili”. Se non lo è e stai usando i moduli del kernel, può seriamente rovinare le cose.
Una volta che è tutto chiaro, è il momento di pulire l'albero dei sorgenti.
# make-kpkg clean
Infine, è il momento di compilare il pacchetto del kernel.
# export CONCURRENCY_LEVEL=3. # fakeroot make-kpkg --append-to-version "-customkernel" --revision "1" --initrd kernel_image kernel_headers
Come vedrai sopra, abbiamo esportato una variabile chiamata CONCURRENCY_LEVEL. Una regola generale con questa variabile è impostarla come il numero di core del tuo computer + 1. Quindi, se stai usando un quad core, dovresti:
# export CONCURRENCY_LEVEL=5
Ciò accelererà notevolmente i tempi di compilazione. Il resto del comando di compilazione è abbastanza autoesplicativo. Insieme a fakeroot, stiamo creando pacchetti del kernel (make-kpkg), aggiungendo una stringa per nominare il nostro kernel ("customkernel"), assegnandogli un numero di revisione ("1”) e stiamo dicendo make-kpkg per costruire sia e pacchetto di immagini e un pacchetto di intestazione. Una volta che la compilazione è terminata, e in base alla tua macchina e al numero di moduli che stai compilando, può impiega molto tempo, cambia le directory in una torna dalla directory dei sorgenti di Linux e dovresti vederne due nuove *.deb file – uno linux-image file e uno linux-header file:
Ora puoi installare questi file come faresti con qualsiasi *.deb file con comando dpkg.
# dpkg -i linux-image-3.12.0-customkernel_1_i386.deb linux-headers-3.12.0-customkernel_1_i386.deb
Il nuovo kernel, poiché è un Debian pacchetto, aggiornerà tutto ciò di cui hai bisogno, incluso il boot loader. Una volta installato, semplicemente riavviaree seleziona il nuovo kernel dal tuo GRUB/LiLO menù.
Assicurati di prestare molta attenzione a qualsiasi messaggio di errore durante processo di avvio in modo da poter risolvere eventuali problemi. Se, per qualsiasi motivo, il tuo sistema non si avvia, puoi sempre tornare al tuo ultimo lavoro kernel e riprova. Il non funzionale kernel può sempre essere rimosso con adatto comando.
# sudo apt-get remove linux-image-(non-working-kernel)