PDA

View Full Version : Configurazione/compilazione Kernel


guylmaster
11-03-2009, 16:06
Ciao a tutti,
qualche giorno fa vi ho rubato su internet qualche link riguardante la compliazione di nuovi kernel, guide che ho integrato anche con altri how-to trovati su google. Vi annucio già che ho compilato ed installato la mia bella versione vanilla del kernel 2.6-28, con qualche driver inutile in meno caricato per un kernel un minimo più snello. A questo punto avrei qualche domanda da farvi

Esistono varie versioni dello stesso kernel, quello Vanilla, quello implementato per Debian, addirittura ho trovato le versione del sorgente implementato per sidux. Da quello che ho capito nelle varie versione dello stesso kernel (Sto lavorando sul 2.6.28-7) cambiano delle patch aggiuntive che vengono installate.

A riguardo vorrei sapere se esiste un sito, una guida, un how-to che parli un pò delle patch esistenti, con quello che fanno e come si installano. Stavo provando ad installare la patch tuxonice, come consigliato sulla seguente guida:
http://sevencapitalsins.wordpress.com/kernel/

Il problema è che mi da errore, sempre lo stesso:

atch -pl
patch: **** strip count l is not a number


Sicuramente è perchè non ne so abbastanza, e non voglio una rispostina pronta, ma un manuale che mi spieghi meglio il tutto. Sto cercando già su google ma magari voi avete già qualcosa sotto mano da consigliarmi.

Molti dicono che ormai compilare il kernel serve a poco in termini di velocità, però mi piacerebbe avere caricato sul kernel solo ciò che mi serve, anche per sapere cosa c'è caricato sopra, cosa va, cosa non va, per un senso di ordine più che altro. Magari è solo una mia mania, ma meno roba c'è e meno cose che si possono incasinare.

Vi ringrazio in anticipo per il tempo dedicatomi,
Guylmaster.

Gimli[2BV!2B]
11-03-2009, 20:15
Ma non è una elle è un uno!

Anch'io adoro i kernel fatti su misura: senz'altro non si ottengono miracoli, ma è un'operazione che, se fatta con cura, ti permette di conoscere a fondo la macchina. Solo questo spesso ripaga il tempo investito.

guylmaster
11-03-2009, 20:53
;26654971']Ma non è una elle è un uno!

Anch'io adoro i kernel fatti su misura: senz'altro non si ottengono miracoli, ma è un'operazione che, se fatta con cura, ti permette di conoscere a fondo la macchina. Solo questo spesso ripaga il tempo investito.

Giusto mi sono accorto solo dopo che era un 1, scusatemi la svista.

A riguardo sapresti linkarmi qualche manuale riguardo le varie patch? è l'unica cosa su cui fino ad ora non sono riuscito a trovare nulla di "completo".

Gimli[2BV!2B]
11-03-2009, 21:26
Cosa intendi con manuale per le patch? Un elenco? Qui ne puoi trovare alcune (http://www.kernel.org/pub/linux/kernel/people/), ma non so indicarti una risorsa unica in cui siano indicate le modifiche contenute, né un buon elenco.

Personalmente non uso patch particolari; tempo fa avevo provato le ck (http://members.optusnet.com.au/ckolivas/kernel/), mi pare di aver avuto necessità di usare le mm (http://www.kernel.org/pub/linux/kernel/people/akpm/patches/) e poco altro.

Di solito mi limito alla routine:
wget http://www.kernel.org/pub/linux/kernel/v2.6/incr/patch-2.6.28.6-7.bz2
bunzip2 -k patch-2.6.28.6-7.bz2
patch -d linux-2.6.28.6 -p1 < patch-2.6.28.6-7
mv linux-2.6.28.6 linux-2.6.28.7
...ecc.

guylmaster
11-03-2009, 22:03
;26655842']Cosa intendi con manuale per le patch? Un elenco? Qui ne puoi trovare alcune (http://www.kernel.org/pub/linux/kernel/people/), ma non so indicarti una risorsa unica in cui siano indicate le modifiche contenute, né un buon elenco.

Personalmente non uso patch particolari; tempo fa avevo provato le ck (http://members.optusnet.com.au/ckolivas/kernel/), mi pare di aver avuto necessità di usare le mm (http://www.kernel.org/pub/linux/kernel/people/akpm/patches/) e poco altro.

Di solito mi limito alla routine:
wget http://www.kernel.org/pub/linux/kernel/v2.6/incr/patch-2.6.28.6-7.bz2
bunzip2 -k patch-2.6.28.6-7.bz2
patch -d linux-2.6.28.6 -p1 < patch-2.6.28.6-7
mv linux-2.6.28.6 linux-2.6.28.7
...ecc.

Non so, credevo in giro ci fossero patch per migliorare un pò le prestazioni del sistema e cose così.

Gimli[2BV!2B]
11-03-2009, 22:49
Le Con Kolivas (http://en.wikipedia.org/wiki/Con_Kolivas) erano rinomate perché fornivano uno scheduler più orientato ai sistemi desktop: effettivamente qualcosa cambiava.
Ricordo anche di vecchie patch che contenevano nuovi protocolli di gestione della congestione per il tcp (http://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm).

Di recente c'è stato fermento riguardo alla riduzione dei tempi di avvio con dischi SSD + un paio di patch: fastboot (http://lkml.indiana.edu/hypermail/linux/kernel/0809.2/1548.html) e sreadahead (http://code.google.com/p/sreadahead/). Non le ho provate, né mi sono informato poiché, non sono un feticista del boot iper-rapido. Tra l'altro mi sembra che qualcosa di queste patch sia già entrato (o quasi) nel kernel vanilla.

Al momento non mi viene in mente altro...

palmy
12-03-2009, 08:25
Non so, credevo in giro ci fossero patch per migliorare un pò le prestazioni del sistema e cose così.

Se te lo compili a manina per il tuo hardware eliminando il boot con initrd il kernel Vanilla va benissimo già così com'è per la quasi totalità delle distro.

Le patch a volte possono anche rendere il kernel instabile, quindi se non hai particolari esigenze di utlizzo che giustifichino il patching del kernel, ti consiglio di utilizzare il Vanilla....sarai soddisfatto.

DOCXP
12-03-2009, 15:09
la vecchia patch ck apportava sensibili migliorie al kernel vanilla, peccato non sia più stata sviluppata dal 2.6.22 :(

Gimli[2BV!2B]
12-03-2009, 19:33
Oh, beh, non c'è da disperarsi per le ck, buona parte dei concetti sono migrati nel kernel ufficiale.
Vero anche che, di solito, le patch hanno molte meno possibilità di essere testate estensivamente come il kernel vanilla e possono introdurre bachi poco conosciuti.

guylmaster
13-03-2009, 01:51
Se te lo compili a manina per il tuo hardware eliminando il boot con initrd il kernel Vanilla va benissimo già così com'è per la quasi totalità delle distro.

Le patch a volte possono anche rendere il kernel instabile, quindi se non hai particolari esigenze di utlizzo che giustifichino il patching del kernel, ti consiglio di utilizzare il Vanilla....sarai soddisfatto.

Ma per eliminare il boot da initrd basta che levo la spunta da menuconfig? o di conseguenza devo anche settare altre cose? perchè avevo fatto una prova senza initrd e mi dava "kernel panic", ma non so se dipendeva da quello o da altro.

gash
13-03-2009, 07:29
L'initrd serve a caricare i moduli necessari al boot, se non usi l'initrd devi compilare i driver necessari al boot non come moduli ma inserendoli direttamente, di sicuro dovrai inserire il filesystem che usi per / più eventuali altri utilizzati da altri mount point, poi dovrai inserire i driver per i collegamenti di HD, USB, quindi sata o ata o scsi, ehci, ohci.
lsmod
e
lspci
Sono comandi molto utili dati anche da una live oi da una distro che si avvia regolarmente per trovare l'hardware e i moduli caricati, per poi inserirli direttamente nel kernel.

guylmaster
13-03-2009, 13:29
L'initrd serve a caricare i moduli necessari al boot, se non usi l'initrd devi compilare i driver necessari al boot non come moduli ma inserendoli direttamente, di sicuro dovrai inserire il filesystem che usi per / più eventuali altri utilizzati da altri mount point, poi dovrai inserire i driver per i collegamenti di HD, USB, quindi sata o ata o scsi, ehci, ohci.
lsmod
e
lspci
Sono comandi molto utili dati anche da una live oi da una distro che si avvia regolarmente per trovare l'hardware e i moduli caricati, per poi inserirli direttamente nel kernel.

Capisco, ma una volta che so quali moduli sono, come faccio a dire di caricarmeli direttamente nel kernel?

gash
13-03-2009, 16:03
Quando compili, io uso solo menuconfig, vai su quello che nella vecchia config c'è M e lo cambi con *, in pratica la M sta per modulo e * sta per statico.

guylmaster
14-03-2009, 07:47
Quando compili, io uso solo menuconfig, vai su quello che nella vecchia config c'è M e lo cambi con *, in pratica la M sta per modulo e * sta per statico.

Daccordo, ma quali sono i pregi ed i difetti di questa cosa? cioè caricarli tutti nel kernel potrebbe darmi dei problemi non so, per futuri aggiornamenti degli stessi?

Inoltre volevo porvi un'altra domanda, ho dato rcconf e ci sono un sacco di demoni che non so bene a cosa servono, come faccio a sapere quali sono disattivabili e quali no? vi stampo la lista:


| acpid
│ alsa-utils
│ binfmt-support
│ console-screen.kbd.sh
│ console-setup
│ cron
│ cups
│ dbus
│ exim4
│ fuse
| gdm
│ gpm
│ hal
│ hdparm
│ irqbalance
│ keyboard-setup
│ loadcpufreq
│ lpd
│ lvm2
│ module-init-tools
| powersaved
│ pppd-dns
│ procps
│ resolvconf
│ rsyslog
│ udev
│ virtualbox-ose
│ virtualbox-ose-guest-utils
│ x11-common
│ xdebconfigurator


Alcuni palesemente inutili, o che alcune guide trovate in internet li taggavano come tali, li ho già disattivati di mio.
Di quelli rimasti dovrebbero essere intoccabili: (correggetemi se sbaglio)

Acpid - un file di sistema che ora non ricordo a cosa serve;
Alsa-utils - dato che uso i driver alsa per l'audio;
Cups - che è il demone che uso per stamapre;
dbus - un altro file di sistema;
fuse - non mi ricordo bene a cosa serve ma mi ricordo che molti pacchetti lo richiedono;
Gdm - è il Server manager del video;
module-init-tools - altri file di sistema;
keybiard setup - per la stastiera;
resolvconf-rsyslog-udev - file di sistema;
Virtualbox - per la virtual machine;
x11-common - xdebconfigurator - di sisema;


Ma tutti gli altri a cosa servono? sono indispensabili? Il mio sistema si avvia già abbastanza velocemente, ma preferirei comunque far saltare le cose inutili.