Compilare il kernel GNU Linux-libre

Il kernel predefinito fornito con Trisquel è un kernel generico che intende essere compatibile con il numero maggiore di configurazioni hardware. Quando si costruisce il proprio, è possibile ottimizzarlo per il tuo hardware e lasciare fuori tutti i driver e le funzionalità che non si utilizzano. E 'anche educativo avere una visione del funzionamento interno di GNU Linux-libre.

Crea una cartella all'interno della tua home directory per compilare il kernel:
mkdir ~/kernel_compiling/

Per vedere quale kernel stai utilizzando, digitare
uname -r

Scarica il codice sorgente per il nuovo kernel all'indirizzo https://www.fsfla.org/ikiwiki/selibre/linux-libre/ e salvarlo nella cartella kernel_compiling

Installa i pacchetti necessari per il processo:
sudo apt-get install kernel-package ncurses-dev bzip2 module-init-tools initramfs-tools procps fakeroot build-essential lzop unp bc

Se vuoi utilizzare gli strumenti di configurazione grafica, gconfig o xconfig, è necessario disporre di pacchetti aggiuntivi, rispettivamente libgtk2.0-dev libglib2.0-dev libglade2-dev per gconfig o libqt3-mt-dev per xconfig. Potrebbero esserci altre dipendenze, e se non sono soddisfatte ti verrà notificato all'avvio del configuratore grafico.

Entra nella directory kernel_compiling:
cd ~/kernel_compiling

Estrai il nuovo kernel dall'archivio, ad esempio
unp linux-libre-3.18.8-gnu.tar.xz

Entra nella nuova cartella del kernel
cd linux-3.18.8

Adesso puoi applicare qualsiasi patch che desideri.

Ora arriva il momento della configurazione. Ciò richiede molto lavoro da parte tua e richiede molto tempo. Ci sono molti modi interessanti per selezionare automaticamente alcune delle opzioni, se vuoi leggi il file README.
less README

Il localmodconfig è abbastanza utile, ma probabilmente ha bisogno ulteriori modifiche.

Salva una copia della configurazione del kernel attualmente in esecuzione.
make oldconfig

Scegli uno degli strumenti di configurazione interattiva
(testuale, lineare)
make config
(testuale, interfaccia ncurses)
make menuconfig
(grafica basata su GTK) (GTK=gnome toolkit)
make gconfig
(grafica basata su QT) (QT=toolkit used in KDE)
make xconfig

Penso che menuconfig sia probabilmente il più veloce, gconfig il piu bello e xconfig ha di gran lunga la migliore funzione di ricerca.

*Y Significa integrato nel kernel e (teoricamente) sempre attivo
*M Significa costruito come modulo e attivato se necessario
*N Significa che non è incluso in alcuna forma

Puoi ottenere informazioni sul tuo processore
cat /proc/cpuinfo

Per ottenere informazioni sul resto dell'hardware, digita
lspci
e
lsusb

Inizia cambiando solo le cose evidenti, quelle che sei sicuro del 300%. Ripetendo questo processo molte volte imparerai le cose più esoteriche... Se questa è la tua prima volta, non essere troppo audace! Una volta terminato, salva le modifiche ed esci.

Pulisci per la compilazione del kernel
make-kpkg clean

È possibile ottenere il numero di CPU utilizzando il comando
grep -c '^processor' /proc/cpuinfo

Per usare tutti i processori in una macchina multiprocessore usare, esempio
export CONCURRENCY_LEVEL=2

La documentazione suggerisce di utilizzare "un (piccolo) intero".

La compilazione effettiva richiederà da 10 minuti a 5 ore a seconda delle opzioni hardware e di configurazione (più selezionate, più tempo prende). È necessario includere kernel_headers se si desidera successivamente compilare altri moduli del kernel.

make-kpkg --rootcmd fakeroot --initrd kernel_image kernel_headers

Ti darà molti tipi di avvertimenti e avvisi, è abbastanza normale. Solo se gli errori sono seri il processo si fermerà. Se si verifica un errore come zlib.h mancante, è necessario installare il pacchetto zlib1g-dev. Se si verifica un altro errore, probabilmente è necessario installare un pacchetto -dev relativo come regola generale.

Una volta terminato il processo senza errori, vai nella directory inferiore dove il file .deb è stato appena creato
cd ..

Se non è stato selezionato il supporto per la compressione nel kernel initrd gzip, è necessario modificare il parametro COMPRESS di initramfs.conf in modo che corrisponda alla selezione. Gzip verrà utilizzato per comprimere l'initrd se non si specifica altro in initramfs.conf. Se il tuo kernel non supporta la compressione utilizzata per eseguire l'initrd, riceverai un kernel panic al riavvio (indicato da blocco + caps lock lampeggiante).
sudo nano /etc/initramfs-tools/initramfs.conf

Installa il pacchetto .deb
sudo dpkg -i *.deb

Addeso è il momento della verità, è una buona idea avere un CD live o una USB live pronta all'uso. Riavvia e tieni premuto shift per visualizzare il menu del grub e seleziona dall'elenco il nuovo kernel.

Se si avvia, ce l'hai fatta, complimenti!

Checklist
* Rete (wireless e Ethernet)
* Audio
* Pennetta USB
* Dischi CD / DVD
* Qualsiasi periferica strana

In caso contrario, riavviare e selezionare un altro kernel dal menu.

Se vuoi migliorare ulteriormente il kernel, torna alla directory in cui hai estratto il codice sorgente. Se tutto è andato abbastanza bene, fai un backup del tuo file di configurazione (.config). Se è fallito in modo spettacolare, è possibile caricare un file di configurazione (.config) funzionante e iniziare a lavorare nuovamente.

Poi fare un po' di configurazione, pulizia, ricompilazione.

Suggerimenti e suggerimenti:

* Usa il comando orario dei tuoi compilatori per vedere quanto tempo ci vuole.
* Puoi modificare il valore "nice" del compilatore, cosi da utilizzare il tuo computer mentre stai compilando.
* Provare a patchare il tuo kernel con qualcosa, ad esempio, http://tuxonice.net/
* Io uso xxdiff per confrontare diversi file di configurazione (.config).
* C'è qualche buona informazione disponibile all'indirizzo http://kernelnewbies.org/FAQ

Se hai domande o commenti, fai un nuovo thread nel forum [http://trisquel.info/forum/users].

Revisioni

06/30/2017 - 21:50
Libremind