Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[Kernel] Come aggiornarlo
Clicca QUI per vedere il messaggio nel forum
recoil
Scrivo questo how-to perché a quanto abbiamo capito oggi ci sono in giro delle guide che trattano l'argomento in modo incompleto e frettoloso.
Questa consideriamola la versione 1, la migliorerò sicuramente in base alle vostre indicazioni


Parte 1
Come procurarsi il kernel

Parte 2
Come configurare il kernel

Parte 3
Compilazione e installazione



Come procurarsi il kernel

I kernel escono a questo indirizzo
http://www.kernel.org/ dove potete trovare i sorgenti e le patch da applicare ai sorgenti che avete già installato.
I sorgenti del kernel si trovano in /usr/src e in genere si utilizza un link simbolico per puntare ad essi. Dovete quindi scompattare i sorgenti (che trovate in formato tar.gz o tar.bz2) tramite i comandi tar o bunzip2, quindi creare il link simbolico.
Il link è /usr/src/linux, per crearlo basta fare ln -s /usr/src/directorysorgenti /usr/src/linux
Nel caso abbiate già i sorgenti del kernel potete scaricare la patch che occupano molto meno spazio quindi sono più comode da scaricare.
Le patch si trovano sempre nel sito di prima, vanno decompresse in /usr/src/linux (sempre con tar o bunzip2) quindi serve il comando
patch -p0 < nomefilepatch


Come configurare il kernel

A questo punto supponiamo che in /usr/src/linux ci siano i sorgenti aggiornati del kernel.
Da questa directory potete iniziare il processo di compilazione, non prima di aver configurato moduli e componenti del kernel.
Per farlo esistono dei tool grafici che ci vengono in aiuto.
Le opzioni che potete scegliere sono:
make menuconfig menù molto spartano, niente mouse. Sicuramente quello che da meno problemi!
make xconfig in questo c'è anche il mouse e si possono leggere, per la maggior parte delle componenti, delle piccole descrizioni
make gconfig utilizzabile con gnome, anche questo è grafico ma non aggiunge molto di più a xconfig
make kconfig questo è per kde, non l'ho mai provato ma penso sia simile a gconfig

Per il momento non mi metto a parlare di questa parte perché ci sono tantissime cose da scrivere, mi riservo un edit più avanti o un altro messaggio per parlare nel dettaglio delle varie componenti.
Sappiate solo che c'è la distinzione tra le componenti che finiscono nel kernel e i moduli, che possono essere caricati in modo indipendente. Volendo si può fare a meno dei moduli ma non mi sembra una grande idea.
Alla fine della configurazione ricordatevi di salvare (in menuconfig la voce è in fondo a tutto, negli altri si trova facilmente) in modo che, in caso di compilazioni successive, possiate risparmiarvi lo sbattimento.


Compilazione e installazione

Una volta usciti dal tool per la configurazione avrete salvato le vostre scelte ed è il momento di compilare.
Se avete una vecchia versione del kernel a questo punto è necessario il comando
make dep seguito da make clean.
Con i nuovi kernel non è più necessario, ma se avete già compilato una volta il kernel è meglio fare il make clean (non è invece necessario la prima volta).
A questo punto dovete compilare il kernel e (se presenti) i moduli
Lanciate questo comando
make && make modules && make modules_install
In questo modo compilate il kernel (make) e i moduli (make modules) installando questi ultimi (make modules_install).
Se avete un kernel 2.6 potete fare a meno del make modules quindi basta make && make modules_install.
E' meglio far eseguire i comandi uno dopo l'altro (con le &&) almeno potete andare a fare altro, dato che ci vorrà un po' per compilare kernel e moduli.

Una volta terminata l'installazione i moduli, come abbiamo detto, sono già al loro posto, bisogna solamente mettere il kernel al posto giusto.
Per farlo andate nella directory arch/i386/boot (da /usr/src/linux dove vi trovate ora).
Troverete un file chiamato bzImage, questo è il kernel appena compilato.
A questo punto copiatelo in /boot, rinominandolo in modo che si capisca di quale kernel si tratta. In genere si danno nomi che iniziano con vmlinuz, quindi la versione del kernel 2.6.6 potrebbe essere chiamata vmlinuz-2.6.6 anche se potete dare il nome che preferite. La cosa importante è quella di non sovrascrivere il kernel esistente!
Ricapitolando fate (da /usr/src/linux/arch/i386/boot)
cp bzImage /boot/vmlinuz-2.x.y
Quindi c'è un'ultima cosa da fare, dovete copiare il file /usr/src/linux/System.map nella cartella /boot
E' un file che serve più che altro per il debug del kernel ma meglio copiarlo (occupa pochissimo).

A questo punto resta da configurare il boot manager per far posto al nuovo kernel. Come vi ho detto prima NON sovrascrivete quello che esiste già, aspettate almeno di aver provato il nuovo. In caso contrario potreste ritrovarvi con un sistema inutilizzabile e con la necessità di far ricorso a un dischetto di boot o al cd di installazione.

pgr
Dal kernel 2.6.0 non è più necessario eseguire il comando "make modules" perchè il comando "make" dopo aver compilato il kernel
compila i drivers scelti come moduli.
Ricapitolando, per compilare il kernel (versione >= 2.6.0) basta editare:
make
make modules_install

recoil
Originally posted by pgr
Dal kernel 2.6.0 non è più necessario eseguire il comando "make modules" perchè il comando "make" dopo aver compilato il kernel
compila i drivers scelti come moduli.
Ricapitolando, per compilare il kernel (versione >= 2.6.0) basta editare:
make
make modules_install


hai ragione siccome c'è ancora chi compila i 2.4 avevo pensato di ometterlo ma a sto punto edito e faccio la distinzione

cmq grazie pgr per la puntualizzazione, se trovi altro dimmelo perché ho scritto la roba un po' di fretta e come dicevo va sicuramente migliorata
c'è di positivo che di sicuro non ho messo comandi per la distruzione del vostro pc :D

DeepBlue
Mi chiedevo: non manca un make bzImage da qualche parte?
O è sostituito da qualche altra operazione che hai elencato?

Hamish
Originally posted by DeepBlue
Mi chiedevo: non manca un make bzImage da qualche parte?
O è sostituito da qualche altra operazione che hai elencato?


con il 2.6.X basta il make che crea direttamente il bzImage in
/usr/src/linux/arch/..?../boot

interessanti sono anche
code:
make modules

che crea singoli moduli da ricopiare a manina in /lib/modules/2.6.6/

code:
make install


che copia automaticamente il system.map e il bzImage nella /boot


code:
make xconfig

e' dipendente da sistemi su cui sono installate le librerie QT
code:
make gconfig

utilizza al contrario di xconfig le piu' universali GTK

:)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate