PDA

Visualizza versione completa : compilazione di un sorgente


wolverin
12-11-2002, 16.21.50
Cercando software vario per linux mi sono imbattuto spesso in istruzioni che mi dicono che il file scaricato è un sorgente e deve essere compilato con il classico metodo: "./configure", "make" e "make install". Fatto questo ci si troverà un file eseguibile.
La mia domanda è la seguente: che cosa si intende per compilazione di un file di sorgenti? e per la famosa ricompilazione del kernel di liunx come si deve procedere?


grazie

ciao

Marko
12-11-2002, 17.35.05
Allora: quando scarichi i sorgenti naturalmente li devi compilare.
Per copilarli devi dare il comando ./configure o ./configure --prefix=/dirdovevuoiinstallareilprogramma seguito da make e poi da make install.
Per la ricompilazione del kernel la cosa è un pochino diversa: devi scaricare i sorgenti del kernel e copiarli in /usr/src
Una volta copiati li estrai con tar xzvf linux-2.x.y.tar.gz e poi ti posizioni nella dir che ha creato la scompattazione del tar.gz esempio se il kernel è il 2.4.19 e hai copiato come detto il sorgente in /usr/src allora vai nella directory /usr/src/linux-2.4.19
Poi devi configurare il tuo kernel.
Ci sono 3 modi:

1) make config: configur il kernel da linea di comando, ti verranno poste le domande e tu dovrai rispondere se vuoi abilitare o no l'opzione oppure se la vuoi compilare come modulo.

2) make menuconfig: ti appare un menu un po' meno spartano della linea di comando dove anche li dovrai fare la stessa cosa del punto 1

3) make xconfig: se hai x in esecuzione questa è la scelta migliore. Ti apparirà una finestra con tutte le opzioni del kernel da mettere si no oppure modulo.

Una volta fatto questo dai il comando make dep che risolve tutte le dipendenze seguito da make clean che ripulisce dai files inutilizzati.

Dopo dai make bzImage che ti creerà un'immagine del tuo kernel in /usr/src/linux-2.x.y/arch/i386/boot con il nome di bzImage.
La compilazione durerà dai 10 ai 15 minuti, dipende dal computer che hai.

Fatto questo ci sono due modi per installare il nuovo kernel.

Il primo è dare make install che ti installa automaticamete il kernel e lo potrai scegliere all'avvio da lilo

Il secondo è copiare il file bzImage in /boot, aprire /etc/lilo.conf e aggiungere le righe relative al nuovo kernel.

Esempio:

image=/boot/bzImage
label=kernel-2xy
read-only

Il secondo modo te lo consiglio così puoi testare il nuovo kernel e controllare se tutto funziona e se qualcosa non funziona, metti che nel peggiore dei casi vai in kernel panic riavvii e vai col vecchio kernel.

Se poi una volta che l'hai testato per un po' vedi che tutto funge puoi dare tranquillamente un make install come ti ho detto prima che ti fa tutto in automatico e ti crea anche il file initrd.

Ricordati che però la compilazione del kernel non è un'operazione semplice, se sbagli qualche cosa puoi trovarti con qualche scheda o altro che non funziona o peggio in kernel panic, quindi fai attenzione ;);)

wolverin
12-11-2002, 18.02.30
Per quanto riguarda il kernel non pensavo che fosse così laborioso. Comunque grazie mille per la spiegazione particolareggiata e compresa di comandi da digitare. :) :)


ciao