LinuxLudus: RISPOSTE A DOMANDE ORFANE: compilaz. kernel, initrd, debian, gentoo

Valerio Pachera sirio81@gmail.com
Gio 16 Mar 2006 14:11:41 CET


Lunedì era rimasta in sospeso la domanda:
come faccio a dare un nome al kernel che compilo?

In particolare, se voglio compilare lo stesso kernel con
configurazioni diverse, come faccio a cambiare nome alla bzimage,
initrd, system.map automaticamente?


Risposta:
General Setup---->Local version - append to kernel release

In questo modo quando installo i moduli con "make modules_install" si
installano in una directory diversa da quella usata dal kerne
"attuale".

Questa risposta l'ho ricevuto su html.it
http://forum.html.it/forum/showthread.php?s=&postid=9128579#post9128579
dove mi hanno indicato una bellissima guida per la compilazione del
kernel su debian.

Quto il primo pezzo per chiarire le idee, visto che lunedì ci si
domandava se per debian la compilazione del kernel fosse diversa:
http://guide.debianizzati.org/index.php/Debian_Kernel_Howto
----------
Su debian il kernel può essere ricompilato con il metodo standard
(valido con tutte le distribuzioni) oppure nella così detta
debian-way.

Questa guida illustrerà il metodo debian di compilare il kernel.
Questo metodo consite nel creare un pacchetto debian del kernel
compilato per una facile installazione/disinstallazione.
----------

ED ORA E' IL TURNO DI INITRD:
Sempre dalla guida di debianizzati.org

----------
Bisogna usare l'initrd oppure no?
La risposta breve è: no non usatelo.

Di seguito la risposta lunga:

L'immagine initrd (ramdisk iniziale) serve per caricare dei moduli nel
kernel prima che questo abbia l'accesso alla partizione di root.
Quindi basta compilare questi moduli staticamente e non avremo mai
bisogno di un ramdisk. Ma quali sono questi moduli che servono nelle
prime fasi di avvio? Semplicemente i moduli che permettono di leggere
la partizione di root, ovvero:

il modulo del controller del proprio harddisk
il modulo del filesystem della partizione di root

Per un kernel casalingo ricompilato, l'uso dell'initrd non solo è
inutile (e leggermente più lento) ma è anche facile da sbagliare (se
vi scordate ad esempio il supporto cramfs nel kernel o non aggiungete
i giusti moduli all'immagine del ram disk il sistema andrà in kernel
panic e dovrete ricompilare nuovamente). L'initrd serve soprattutto
per i kernel ufficiali delle distribuzioni che devono supportare tutti
i controller esistenti e una gran varietà di filesystem. Sarebbe
assurdo compilare tutti questi supporti staticamente e quindi vengono
inseriti come moduli nel ram disk. L'initrd è necessario anche se si
vuole usare un bootsplash, ma questa è un'altra storia:
----------

Questo risponde anche alla domanda:
perchè con genkernel devo usare initrd e se lo configuro io invece no?

Bye Bye.


Maggiori informazioni sulla lista linuxludus