Come personalizzare il tuo kernel di Ubuntu

Come personalizzare il tuo kernel di Ubuntu
Come personalizzare il tuo kernel di Ubuntu

Video: Come personalizzare il tuo kernel di Ubuntu

Video: Come personalizzare il tuo kernel di Ubuntu
Video: Come reagire con una persona cattiva - YouTube 2024, Aprile
Anonim

La personalizzazione del kernel non è per tutti. Prima di provare qualsiasi cosa, si prega di notare che può violare il sistema.

C'è un sacco di motivi per cui vorresti personalizzare il tuo kernel. Potresti voler ridurre il tuo kernel solo ai servizi necessari, specialmente se stai utilizzando un server o un dispositivo dedicato che richiede solo l'essenziale. Potrebbe anche essere necessario correggere il kernel per supportare l'hardware che non è attualmente supportato con il kernel su cui si sta eseguendo.

Questo articolo non spiega come patchare il tuo kernel, solo come personalizzare quello attuale. Avrò un altro articolo di follow-up che spiega come patchare il tuo kernel e alcuni motivi pratici per cui vorresti farlo.

Per iniziare, abbiamo bisogno di capire quale versione del kernel stiamo attualmente correndo. Useremo il comando uname per quello

$ uname -r

2.6.17-10-generic

Ora abbiamo bisogno di installare il sorgente linux per il tuo kernel, nota che sto usando il kernel 2.6.17-10, quindi la riga di installazione lo rispecchia. Ai fini di questo articolo, puoi sostituire il numero del kernel per qualunque cosa tu stia correndo. Abbiamo anche bisogno di installare la libreria curses e alcuni altri strumenti per aiutarci a compilare.

sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot

Se sei curioso di sapere dove viene installato il sorgente linux, puoi usare il comando dpkg per dirti i file all'interno di un pacchetto. Ecco l'output sul mio sistema:

$ dpkg -L linux-source-2.6.17 /. /usr /usr/src /usr/src/linux-source-2.6.17.tar.bz2 /usr/share /usr/share/doc /usr/share/doc/linux-source-2.6.17 (trimmed)

Possiamo vedere che la sorgente è stata installata nella directory / usr / src in un file zippato.

Per semplificare le cose, ci metteremo in modalità root usando sudo per aprire una nuova shell. Ci sono altri modi per farlo, ma preferisco in questo modo.

sudo /bin/bash

Ora cambia directory nel percorso di origine in modo che possiamo installare. Notare che potrebbe essere necessario installare l'utilità bunzip se non è installata. (era sul mio)

cd /usr/src

bunzip2 linux-source-2.6.17.tar.bz2

tar xvf linux-source-2.6.17.tar

ln -s linux-source-2.6.17 linux

Crea una copia della configurazione del kernel esistente da utilizzare per il processo di compilazione personalizzato. Si noti che il `carattere è quello sotto la tilde ~

cp /boot/config-`uname -r` /usr/src/linux/.config

Ora lanceremo l'utility che ci permetterà di personalizzare il kernel:

cd /usr/src/linux

make menuconfig

Per prima cosa, vai su Carica un file di configurazione alternativo e carica il file.config. (basta premere invio)

Ora che siamo dentro l'utility, possiamo impostare le opzioni per il nostro kernel personalizzato. La navigazione è piuttosto semplice, c'è una leggenda in alto se ti perdi. Ho deciso di selezionare Networking e premere il tasto Invio per scendere in quella categoria.
Ora che siamo dentro l'utility, possiamo impostare le opzioni per il nostro kernel personalizzato. La navigazione è piuttosto semplice, c'è una leggenda in alto se ti perdi. Ho deciso di selezionare Networking e premere il tasto Invio per scendere in quella categoria.
Supporto radioamatoriale? Per cosa diavolo è installato? Si noterà dal * che è integrato nel kernel.
Supporto radioamatoriale? Per cosa diavolo è installato? Si noterà dal * che è integrato nel kernel.
Premendo il? chiave, possiamo vedere l'aiuto per quel particolare oggetto. Ecco la spiegazione:
Premendo il? chiave, possiamo vedere l'aiuto per quel particolare oggetto. Ecco la spiegazione:
Bene, lo disabiliterò immediatamente. Perché mai è installato nel mio kernel? Ho premuto Esc per uscire dalla schermata di aiuto, quindi ho premuto N per escluderlo dal mio kernel.
Bene, lo disabiliterò immediatamente. Perché mai è installato nel mio kernel? Ho premuto Esc per uscire dalla schermata di aiuto, quindi ho premuto N per escluderlo dal mio kernel.

Quando hai finito di fare le scelte che desideri, premi Exit e salva la configurazione quando richiesto.

Ora abbiamo una configurazione pronta per la compilazione. Per prima cosa faremo un clean, giusto per assicurarci che tutto sia pronto per la compilazione.

make-kpkg clean

Ora compileremo il kernel. Questo richiederà un tempo di FREAKING LUNGO, quindi vai a trovare qualcosa di interessante da fare.

fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

Questo processo creerà due file.deb in / usr / src che contengono il kernel. Il file linux-image **** è l'immagine del kernel attuale e l'altro file contiene il Puoi installare entrambi con dpkg. I nomi dei file saranno probabilmente diversi sul tuo sistema.

Si noti che quando si eseguono questi comandi successivi, questo imposterà il nuovo kernel come nuovo kernel predefinito. Questo potrebbe rompere le cose! Se la tua macchina non si avvia, puoi premere Esc nel menu di caricamento di GRUB e selezionare il tuo vecchio kernel. Puoi quindi disabilitare il kernel in /boot/grub/menu.lst o provare e compilare di nuovo.

dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

Ora riavvia la tua macchina. Se tutto funziona, dovresti eseguire il tuo nuovo kernel personalizzato. Puoi verificarlo usando uname. Nota che il numero esatto sarà diverso sulla tua macchina.

uname -r

2.6.17.14-ubuntu1-custom

Ho in programma di scrivere una serie di articoli sulla personalizzazione del kernel, quindi iscriviti al feed RSS per gli aggiornamenti.

Inoltre, nell'interesse della piena divulgazione, ho imparato come farlo dall'articolo di HowtoForge, che è un ottimo sito per alcuni tutorial molto avanzati su Linux. Noterai che molti dei passaggi di questo articolo sono simili, anche se ho cercato di rendere questo articolo più "Ubuntu".

Consigliato: