Se mi perdoni il privato, preferirei allegarti qualche suggerimento 
che a me è stato uile. Si tratta di una mail privata che ho scambiato 
con un amico di altra lista.

*** on Monday 25 August 2003 15:08, [EMAIL PROTECTED] wrote:
> Scusate il disturbo,
> E' la prima vola che mi trovo a dover compilare un kernel,
> ho letto  da qualche parte che per compilare i kernel 2.4.xx  si
> deve intervenire su alcuni pacchetti chiave quali gcc, libc s
> SysVInit e modificare alcuni file di sistema.

What? Non credo proprio! Al massimo devi rinominare le librerie dei 
moduli, e (ma non è necessario) l'etraversion del makefile. 
Per evitare di scrivere troppo ;-), ti allego quanto detto, tramite 
copiaincolla:


*****
> - Copio da un'altra parte vmlinuz, System.map, Config rinominati
> (consiglio tuo)

yes, puoi anche semplicemente rinominarli (non occorre che li sposti 
altrove). 
Questo perche' nel caso che il kernel compili correttamente, lo 
agganci a lilo e poi ti fa uno scherzetto da prete come ha fatto a 
me, puoi tornare indietro come se niente fosse semplicemente avviando 
con un floppy (o dal cd in rescue mode), rimettendo a posto i nomi 
dei 3 files di cui sopra e dando nuovamente lilo -v. Questo ti 
permette di salvarti le chiappe sempre e comunque senza rischiare di 
combinare casini irreparabili ;)

> - Stessa sorte per la /lib/modules/2.4.x (sempre roba tua).

yes, vedi sopra

magari non e' necessario, ma te lo dico lo stesso. Se stai compilando 
un nuovo kernel (ossia non stai ricompilando quello che gia' usi) 
spostati nella dir /usr/src e rimuovi il link 'linux', quindi 
decomprimi il nuovo kernel nella stessa dir dove ti trovi e ricrea il 
link che punti al nuovo kernel. In soldoni (ammettendo che ti stia 
compilando il 2.4.21): 
cd /usr/src
rm linux
(rimani nella dir dove sei)
tar xvfz 
/percorso/dove/hai/scaricato/il/kernel/compresso/linux-2.4.21.tar.gz
ln -s linux-2.4.21

quindi entra nella dir dei nuovi sorgenti ('cd linux'). Ok, andiamo 
avanti:

> - #make mrproper

meglio di no... questo comando oltre ad eliminare residui di 
precedenti configurazioni ti cancella anche il file .config che 
contiene la configurazione precedente del kernel. Alcune volte puo' 
essere una scelta cosapevole, ma altre (ad esempio se vuoi solo 
correggere qualche piccola cosa) e' un suicidio perche' ti tocca 
ricominciare la configurazione da capo. 
Se dovesse accadere accidentalmente, il file puoi recuperarlo dal 
config che hai rinominato nella dir /boot (ovviamente questo fa 
riferimento al kernel che ha generato, quindi e' relativo al vecchio 
kernel)... oggi mi spiego come un cane col labbro leporino, pardon!

> - #make xconfig (considera il mio livello..)

meglio 'make menuconfig' (anche se non sei espertissimo) da consolle 
che e' semi-grafico e ti permette di evitare di avviare x (fai le 
stesse cose muovendoti con le frecce anziche' col mouse senza la 
necessita' di avviare il server grafico che e' peeeeeeesante ;) ).

> - # vi /usr/src/linux-xxxx/Makefile
> (nella riga EXTRAVERSION metto la data al nome del nascituro kernel)

se vuoi, ma non e' necessario.

> - #make dep

Ok

> - #make clean

non importa. Questo comando ti serve solo per eliminare i "residui" di 
vecchie compilazioni. Diventa necessario qualora, a fronte di una 
ricompilazione andata male o non terminata, stessi ricominciando la 
procedura da capo facendo qualche modifica in make menuconfig. Se i 
sorgenti sono "vergini" (leggi appena scompattati) e' del tutto 
inutile usare make clean... male non fa, ma e' superfluo.

> - #make bzImage > LOG-k  2> grattachecca

Bravo (fra un po' eviterai di registrare i messaggi della 
compilazione, ma adesso che e' la prima volta, se dovessero spuntare 
fuori errori, in questo modo puoi postarli senza problemi)

> - #make modules > LOG-m 2> fichetto

Benissimo

> - #make modules_install

Yes sir

> - #make install

senti... ascolta me, facciamo le cose per benino. Non usare 'make 
install', ma fai le cose a manina che almeno sappiamo cosa abbiamo 
fatto.
Terminata l'installazione dei moduli tu sei ancora in /usr/src/linux.
Copia nella dir boot i seguenti files:
.config (lo trovi nella dir dove sei), rinominandolo 'config-2.4.21'
System.map (idem come sopra), rinominandolo 'System.map-2.4.21'
bzImage (lo trovi in /usr/src/linux/arch/i386/boot/ ed e' il nuovo 
kernel!!!), rinominandolo 'vmlinuz-2.4.21'
Fino a qua niente di complicato mi pare. A questo punto, spostati 
nella dir /boot e cancella i vecchi link (verifica che siano dei link 
con 'ls -la', se non lo fossero limitati a rinominarli):

cd /boot
rm vmlinuz
rm System.map
rm config

ricrea i nuovi link che puntino al nuovo kernel:

(sei in /boot)
ln -s vmlinuz-2.4.21 vmlinuz
ln -s System.map-2.4.21 System.map
ln -s config-2.4.21 config

Verifica che lilo faccia riferimento effettivamente a 'vmlinuz' come 
immagine di avvio (dovresti avere in lilo.conf una riga del tipo: 
'image=/boot/vmlinuz' se non e' cosi' correggila in questo modo).
Chiudi lilo.conf, quindi il solito 'lilo -v'.
Riavvia e godi (o piangi) ;))

> Se tutto va bene (se...) controllo il nuovo /etc/lilo.conf, e   
> riavvio, con le mani dove sai.  Può andare?

Vai libero

> Attendo fiducioso risposta, e intanto leggo qualcosa sui
> moduli, che non ne so niente (mi consigli di mettere i supporti USB
> modulari o statici?

meglio modulari

> La stessa richiesta per il driver sonoro).

anche questo modulare.
WARNING: ricorda di compilare in modo statico *tutti* i filesystem che 
ti servono [non solo i fs di linux (non so cosa usi, reiser? ext2? 
ext3?) ma anche l'eventuale fat, vfat ed il supporto ad ntfs senno' 
non funzia nulla al riavvio].

*******

Mi sembra ci sia tutto.


> Domanda numero due: ho un portatile su cui ho installato linux, non
> mi riconosce la pcmcia e va in kernel panic all avvio, quali moduli
> del kernel devo configurare?

Quelli delle schede pcmcia, naturalmente.

> Il pc è un compaq presario 907ea, il
> kernel che ho scaricato è il 2.4.21 può andare bene?

Non ho il portatile, ma qualsiasi kernel liscio ed in versione stabile 
(e quello è l'ultimo stabile!) va bene.
Un ultimo consiglio: leggi quanta più doc possibile in 
/usr/src/linux/Documentation.
Ciao
-- 
*****************************************************
*    I'm bombadur the dwarf, and this is my axe !   *
*                                                   *
* Coltivate Linux, tanto Window$ si pianta da solo  *
***************************************************** 

Rispondere a