PDA

View Full Version : dimensione kernel: meglio compilarlo da se o usare un precompilato?


ingpeo
08-12-2004, 11:41
Per ora ho utilizzato solo kernel precompilati ma volevo provare a compilarne uno io e, ovviamente, ho un po' di domande.

Partendo dal config di un kernel precompilato e andando a togliere quello che non mi serve ho un vantaggio in termini di dimensioni e quindi di memoria richiesta?
Perchè se viene caricato a moduli, utilizzando solo quelli necessari, il risultato non cambia usando uno precompilato e parzialmente caricato rispetto a uno compilato da me ma caricato tutto, giusto? La quantità di memoria utilizzata è la stessa?
Conviene quindi ricompilare?

Faccio questa domanda perchè ho un vecchio portatile con 32mb di ram di cui 4mb condivisa per la scheda grafica.

Visto che ci sono domando se conviene passare a 64 o 128 mb di ram. Utilizzo kernel 2.6 e vorrei farci girare fluxbox giusto per un po' di office e navigazione.

Red_Star
08-12-2004, 11:50
un kernel compilato e fatto apposta per il tuo pc e ovviamente più veloce e più leggero rispetto a un kernel modulare dove c'è più del necessario

Ikitt_Claw
08-12-2004, 11:56
Originariamente inviato da ingpeo
Partendo dal config di un kernel precompilato e andando a togliere quello che non mi serve ho un vantaggio in termini di dimensioni e quindi di memoria richiesta?
A runtime? Direi che il vantaggio e` dell'ordine della decina di KiloByte.
Su disco puoi guadagnare qualche mega, invece, evitando di compilare moduli per periferiche che non usi/userai di sicuro

Perchè se viene caricato a moduli, utilizzando solo quelli necessari, il risultato non cambia usando uno precompilato e parzialmente caricato rispetto a uno compilato da me ma caricato tutto, giusto? La quantità di memoria utilizzata è la stessa?
Sostanzialmente... Non aspettarti incrementi mirabolanti :)

Conviene quindi ricompilare?

Dipende da quel che vuoi fare :)

Faccio questa domanda perchè ho un vecchio portatile con 32mb di ram di cui 4mb condivisa per la scheda grafica.

Questo e` uno dei casi in cui puo` convenire fare fine-tuining e ricompilare riducendo all'osso; ovviamente occorre fare le necessarie limature anche nell'userspace, scegliendo programmi leggeri, disattivando cio` che non serve etc. etc.

Visto che ci sono domando se conviene passare a 64 o 128 mb di ram.
Certamente, se ne hai la possibilita`
Utilizzo kernel 2.6 e vorrei farci girare fluxbox giusto per un po' di office e navigazione.
Occhio che mozilla-* e openoffice sono due mattoni.

ingpeo
08-12-2004, 12:06
Ok, mi sa allora che mi conviene tenere un precompilato, il guadagno è minimo e di spazio su disco ne ho abbastanza. Al massimo tolgo le cose che proprio non mi serviranno (raid, isdn...).

Per la memoria, ovviamente se ne trovo da 128 è meglio ma se vado a 64 mb riesco a vivere tranquillo?

Ovviamente non pretendo di fare troppo multitasking.:D

NA01
08-12-2004, 13:08
guadagni qualcosa in prestazioni,, sopratutto su macchine vecchie.
dipende poi da quelloc he sei dispost a togliere....

tempo fa avevo ricompilato un kernel ridotto al minimo (niente usb, niente parallela, nulla di nulla era unmiracolo che il pc si accendesse :sofico: ) su un pc del 1300 e la differenza si poteva QUASI sentire;)

io sono dell'idea che una ricompilatina non fa mai male, se non altro per vedere una volta come si fa :)

cia

ingpeo
08-12-2004, 18:46
Mi avete convinto e allora mi sono messo a compilare.
Sono partito dal config che ho trovato in /boot che faceva riferimento al precompilato che sto usando (2.6.8-1-386).
Ho tolto un po' di cose che sicuramente non mi sarebbero servite, riavvio e ovviamente ho un kernel panic. Qualcosa tipo unable to mount root fs

Ho cercato e ho trovato che dovevo mettere in statico il tipo di file system usato, fatto e il problema rimane.
Dove devo toccare? E' sbagliato qualcosa in lilo.conf?

Ma se partivo dal config di un precompilato come fa ad andare in errore su queste cose basilari?

wubby
08-12-2004, 18:55
Se non ne hai un bisogno specifico, non ricompilare. Le differenze alla fine non sono poi cosi abissali.
E poi un kernel precompilato in caso di bug è aggiornato/patchato/etc il tuo no.

Valuta tu il rischio... :)

ehul
08-12-2004, 18:55
hai dimenticato qualche modulo nella sezione "file system". x questo ti converrebbe partire da un file di config preesistente (per 2.6 ovviamente) e non eliminare nulla da quello che c'è in quella sezione, io ho dovuto fare così dopo tante prove nelle quali non capivo il modulo mancante....

ingpeo
08-12-2004, 19:03
Ho capito, proverò più che altro per sfizio (anche chiamato cultura personale :p ) che per necessità.

Ma è possibile ricavare un config da un kernel pronto e funzionante?

wubby
08-12-2004, 19:09
Originariamente inviato da ingpeo
Ma è possibile ricavare un config da un kernel pronto e funzionante?

Vado a memoria:

cp /boot/config-2.4.27-1-k7 /usr/src/linux-2.4.27/.config

make oldconfig

:)

ingpeo
08-12-2004, 21:51
Io ho fatto make menuconfig ma penso sia la stessa cosa.

Adesso sta compilando, spero di non aver fatto errori.

Johnny5
08-12-2004, 23:56
Guarda anche che la ricompilazione del kernel non serve solo a modularizzare o demodularizzare roba (verbo inventato, ma suona colto..)

Avrai visto che ci sono molti semplici flag da settare per fare in maniera che quello che viene compilato sia specifico per il tuo hardware (es. architettura pc, accesso dma, ecc...).

Io personalmente sui sistemi vecchi ho notato che la maggiore velocità in avvio la ottenevo ricompilando una prima volta personalizzando il kernel al mio pc e mettendo tutto il possibile come modulo. Poi avviavo una volta, entravo nel sistema e facevo "lsmod" per vedere che moduli aveva caricato. Quelli intuivo che il computer li avrebbe comunque caricati in avvio e così da moduli li ho passati nel kernel e ho ricompilato. Caricare un modulo ha comunque un leggero delay che sui sistemi più vecchi si fa un pò più sentire, e questa la uso come ottimizzazione "estrema".

Per quanto riguarda il tuo errore di compilazione suppongo tu abbia messo (errore molto tipico) il supporto al tuo filesystem di root come modulo e non integrato nel kernel, così il kernel non può leggere in avvio il filesystem da cui caricare il modulo per leggersi il filesystem.

bort_83
09-12-2004, 14:57
io nn so voi.. ma con debian da kernel bf24 (mi pare sia 2.4.22) al kernel 2.4.28 senza molti fronzoli.. ci ho risparmiato 15 MEGA in RAM....

che su un pc vecchio nn sono per nulla pochi...

infatti quando ho caricato il config vecchio... c'erano attivi quasi tutti i chipset, supporto firewire, isdn, partizioni, fs e schede di rete.. che effettivamente uno se nn possiede se ne fa ben poco .

quindi a mio parere ricompilare il kernel è meglio...

(oltretutto nn tutte le distro hanno già i moduli di iptables) ....

Ikitt_Claw
09-12-2004, 17:24
Originariamente inviato da bort_83
io nn so voi.. ma con debian da kernel bf24 (mi pare sia 2.4.22) al kernel 2.4.28 senza molti fronzoli.. ci ho risparmiato 15 MEGA in RAM....

che su un pc vecchio nn sono per nulla pochi...

infatti quando ho caricato il config vecchio... c'erano attivi quasi tutti i chipset, supporto firewire, isdn, partizioni, fs e schede di rete.. che effettivamente uno se nn possiede se ne fa ben poco .


Da quel che dici, direi che il sottosistema di autocaricamento dei moduli di quel sistema aveva seri problemi.

AnonimoVeneziano
09-12-2004, 20:55
Sempre compilato da me . Nel piccolo periodo che ho usato i precompilati all' inizio della mia esperienza Linux non mi sono mai sentito un vero utente linux fino a che non ho compilato il mio primo kernel senza problemi :D

Non mi sono fatto tanti problemi sulle prestazioni , era + che altro una questione di principio , mettere il kernel che volevo io, quando volevo io con le impostazioni che volevo io :D

Poi il fatto che puoi selezionare le varie ottimizzazioni per i processori sicuramente aiuta un po' le prestazioni

Ciao

recoil
09-12-2004, 21:02
Originariamente inviato da AnonimoVeneziano
Poi il fatto che puoi selezionare le varie ottimizzazioni per i processori sicuramente aiuta un po' le prestazioni


non dirlo a me che ho perso giorni a compilare la gentoo con ste benedette ottimizzazioni :D

ricompilare il kernel è la prima cosa che faccio una volta terminata l'installazione. ormai è tradizione, linux non lo sento mio se non metto subito mano al kerneluzzo.

wrathchild
09-12-2004, 22:40
Originariamente inviato da ingpeo

Ho tolto un po' di cose che sicuramente non mi sarebbero servite, riavvio e ovviamente ho un kernel panic. Qualcosa tipo unable to mount root fs


Appena ho letto questa frase ho guardato per vedere che distro avevi, perchè conosco il problema: HAI DEBIAN!

Alla fine del make menuconfig (o quello che usi per configurare), crea un pacchetto debian per il kernel con:

make-kpkg --initrd kernel_image

(ovviamente da root e dalla cartella dei sorgenti)

dopo lo installi normalmente (dpkg -i <nomepacchetto>), il pacchetto lo trovi nella directory precedente (/usr/src).

bort_83
09-12-2004, 22:50
Originariamente inviato da wrathchild
Appena ho letto questa frase ho guardato per vedere che distro avevi, perchè conosco il problema: HAI DEBIAN!



??????

eh ?

guarda che il kernel lo puoi compilare "normalmente" anke su Debian...

e alla fine fare il classico make install

il suo problema è probabilmente che nn ha messo il supporto per l'fs della partizione root

wrathchild
09-12-2004, 23:38
Ci mancherebbe.

Però se lui prende il config del suo kernel, che probabilmente usa l'initrd, gli da kernel panic anche se non tocca niente nella sezione dei fs.

Se ho scritto questo è perchè ci ho sbattuto la testa anche io prima di trovare la soluzione, mica perchè ci capisco una mazza di linux :p

ingpeo
10-12-2004, 14:26
IL supporto per il file system dell'hd l'avevo messo statico ed il kernel panic l'ho riavuto.
Riprovero' con l'opzione --initrd

A questo punto la domanda si sposta: avere anche initrd fa aumentare o meno la memoria usata?

bort_83
10-12-2004, 15:19
il supporto per i controller IDE sono ok ?