Punto informatico Network

Canali
20100302180314_1839844981_20100302180245_695993566_TerminalMLI_spotlight.png

Tecniche avanzate con Ubuntu: compilare un kernel "vanilla"

16/07/2010
- A cura di
Linux & Open Source - Compilare un kernel "vanilla" ci consente di adattarlo all'hardware del nostro PC, rendendo il sistema più veloce e stabile, nonché risolvere eventuali bug e problemi di compatibilità con alcune periferiche. Vediamo come.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

tecniche avanzate (1) , ubuntu (1) , kernel (1) , compilare (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 23 voti

Il kernel costituisce il motore di un sistema operativo. Il suo solo scopo, infatti, è quello di essere in grado di eseguire contemporaneamente molti processi in maniera efficiente, garantendo una corretta distribuzione fra gli stessi della memoria e del tempo di CPU, oltre a quello di fornire le adeguate interfacce software per l'accesso alle periferiche della macchina e le infrastrutture di base necessarie per costruire i servizi.

Nella maggior parte dei casi, come in Ubuntu, il kernel viene installato dalla propria distribuzione durante l'installazione. Sono molti infatti gli utenti che non avendo necessità specifiche, come la mancanza di supporto per qualche dispositivo, evitano di installarne un altro.

L'esigenza primaria che può portare alla compilazione ed all'installazione dell'ultima versione del kernel, chiamato in gergo "vanilla", è certamente quella di avere una configurazione cucita sull'hardware della propria macchina e quindi più adatta di una versione generica. Ciò si traduce in una maggiore velocità in avvio, una maggiore reattività del sistema operativo, l'eventuale supporto a nuove periferiche e, naturalmente, la correzione di possibili bug.

Per compilare un nuovo kernel, però, è fondamentale una buona conoscenza dell'hardware presente sul proprio PC. Per avere informazioni dettagliate è possibile usare il comando sudo lshw da terminale, oppure un apposito programma come HardInfo.

Preparativi

Innanzitutto scarichiamo l'ultimo kernel stabile disponibile da The Linux Kernel Archives. Al momento della stesura di questo articolo, l'ultimo kernel è il 2.6.34.

Secondo la policy Debian, per compilare il kernel sul nostro sistema Ubuntu, sebbene non sia strettamente necessario, è consigliabile usare la directory /usr/src. Per poterlo fare, però, è prima necessario modificare i permessi di tale directory ed aggiungere il proprio utente al gruppo src (gruppo proprietario della directory stessa).

Per farlo apriamo il terminale e diamo il comando sudo chmod -R g+wr /usr/src/, immettiamo la password e premiamo invio, seguito da sudo adduser nomeutente src dove nomeutente è, appunto, il nostro nome utente.

Rendiamo effettiva l'aggiunta del nostro utente al gruppo terminando la sessione e riaccediamo al nostro desktop. Senza complicarci la vita, copiamo il file che abbiamo scaricato all'interno della cartella di destinazione /usr/src utilizzando Nautilus..

Src - Esplorazione file_001.png

... poi clicchiamo sopra al file con il tasto destro del mouse e decomprimiamolo con Estrai qui.

Schermata.png

In tal modo verrà creata una cartella con il nome della versione del kernel che abbiamo scaricato: in questo caso linux-2.6.34.

Installare il software necessario alla compilazione

Per compilare il kernel è necessario installare alcuni pacchetti. Anche in questo caso facciamolo da terminale digitando sudo apt-get install kernel-package build-essential fakeroot bin86 libglade2-dev, immettiamo la password, premiamo invio e confermiamo con S.

Il vecchio kernel come base per quello nuovo

È possibile importare la configurazione di un altro kernel e partire da questa per effettuare ulteriori personalizzazioni. I file di configurazione per i kernel installati nel sistema si trovano nella directory /boot e sono chiamati config-2.6*, ma è possibile importare un qualunque file di configurazione valido.

Se lo desideriamo, come base per il nuovo kernel possiamo copiare proprio uno di tali file di configurazione (purchè sicuramente funzionante) all'interno della directory con i sorgenti e rinominando il file in .config.

Sempre utilizzando il terminale, portiamoci dentro la cartella dove abbiamo scaricato e scompattato il nuovo kernel, diamo prima il comando sudo cp /boot/config-2.6.32-22-generic .config (1) seguito dal comando make oldconfig (2).

Note:

(1) Per conoscere qual è l'ultimo Kernel installato sul PC è sufficiente digitare il comando uname -r sul terminale ed il file config-2.6.32-22-generic è proprio il suo file di configurazione.

(2) Il comando make oldconfig importa direttamente la configurazione del kernel attualmente in esecuzione sul computer, e con un'interfaccia a linea di comando propone una ad una tutte le opzioni presenti nel nuovo sorgente: premiamo invio per confermarle tutte.

La personalizzazione del nuovo kernel

L'ultimo passo prima di procedere alla compilazione vera e propria è quello di controllare le opzioni del kernel e di modificarle in base alle nostre esigenze. Ciò rappresenta il punto più delicato di tutta l'operazione: se da un lato una corretta ed accurata personalizzazione ci consente di raggiungere il nostro obiettivo, ottimizzando il kernel sulla nostra configurazione hardware, dall'altro l'errata configurazione di un semplice modulo può compromettere l'intero sistema.

A questo punto diamo il comando make gconfig per avviare l'interfaccia grafica di configurazione.

Come possiamo vedere, con la scritta (NEW) troviamo le nuove funzionalità del kernel che abbiamo importato in precedenza.

Alcune impostazioni consigliate

Anche se siamo certi di avere una configurazione funzionante, grazie al file di configurazione che abbiamo utilizzato, è bene controllare alcune fondamentali impostazioni. Per espandere il menu cliccare sul +, mentre tutte le modifiche si ottengono facendo doppio click con il tasto sinistro del mouse sulla relativa voce.

General setup

1) In Kernel compression mode selezionare Gzip;

2) Controllare che sia attiva l'opzione Support for paging of anonymous memory (swap);

3) Deselezionare la voce Export task/process statistics through netlink (EXPERIMENTAL);

4) Deselezionare la voce Kprobes;

Enable the block layer

1) In IO Schedulers lasciare selezionata solo la voce CFQ I/O scheduler per una migliore performance;

Processor types and features

1) In Processor family, selezionare il tipo di processore corretto tra quelli proposti, oppure lasciare quello di default;

2) In Preemption model controllare che sia attiva l'opzione Voluntary Kernel Preemption (Desktop);

3) In Machine Check / overheating reporting deselezionare Intel MCE features se si possiede una CPU AMD oppure AMD MCE features se si possiede una CPU Intel;

4) Deselezionare la voce Dell laptop support a meno di non stare ottimizzando il kernel per un laptop Dell;

5) In /dev/cpu/microcode - microcode support seguire le stesse impostazioni di cui al punto 3);

6) In High Memory Support scegliere off se si possiede meno di 1GB di RAM, 1GB Low Memory Support se si possiede 1GB di RAM, 4GB se si possiede più di 1GB di RAM;

7) In Timer frequency abilitare 1000 HZ;

Power management and ACPI options

1) In CPU Frequency scaling > CPU Frequency scaling deselezionare la voce AMD Opteron/Athlon64 PowerNow! se non si possiede tale CPU;

Device Drivers

1) In Character devices controllare che sia selezionata l'opzione Virtual terminal;

2) In Graphics support è possibile deselezionare il supporto a tutte quelle schede video non presenti sul proprio PC.

3) In Network device support > Wireless LAN ci sono i drivers delle periferiche WI-FI. Se abbiamo problemi con la chiavetta WI-FI, ad esempio, possiamo abilitarne il supporto.

File systems (curiosità)

È stato aggiunto il supporto al nuovo filesystem BTRFS, che in futuro dovrebbe sostituire ext4, ma attualmente ancora sperimentale ed instabile;

Kernel hacking

1) Deselezionare Kernel debugging.

Per tutte le altre opzioni consiglio ancora una volta di agire con estrema cautela e, se non si è sicuri, di lasciare le impostazioni così come sono. Una volta terminato premiamo CTRL+S per salvare la nostra configurazione.

Gconfig.png

Pagina successiva
La compilazione del nuovo kernel
Pagine
  1. Tecniche avanzate con Ubuntu: compilare un kernel "vanilla"
  2. La compilazione del nuovo kernel

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2017 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising

    • Gen. pagina: 0.27 sec.
    •  | Utenti conn.: 108
    •  | Revisione 2.0.1
    •  | Numero query: 19
    •  | Tempo totale query: 0.12