Guida alle tecnologie

Compilare e installare il kernel su Mandriva

4 min read Linux Aggiornato 09 Oct 2025
Compilare e installare il kernel Mandriva
Compilare e installare il kernel Mandriva

5 Compilare il kernel

Per compilare il kernel, esegui semplicemente questo comando:

make rpm

Sii paziente: la compilazione del kernel può richiedere diverse ore, a seconda della configurazione del kernel e della velocità del processore. Riduci i tempi usando più jobs con make (es.: make -j4) se il tuo sistema ha CPU multi-core.

Nota importante: assicurati di avere spazio disco sufficiente in /usr/src e in /boot prima di iniziare.

6 Installare il nuovo kernel

Dopo una build riuscita, vengono creati un src.rpm e uno o più pacchetti rpm binari. Il pacchetto src.rpm si trova in /usr/src/rpm/SRPMS/. Per vedere il nome del file esegui:

ls -l /usr/src/rpm/SRPMS/

Nel mio esempio si chiamava kernel-2.6.18.3default-1.src.rpm.

I pacchetti rpm binari si trovano in /usr/src/rpm/RPMS// come /usr/src/rpm/RPMS/i386/ o /usr/src/rpm/RPMS/x86_64/ a seconda dell’architettura. Per esempio, per i386:

ls -l /usr/src/rpm/RPMS/i386/

Nel mio sistema il pacchetto si chiamava kernel-2.6.18.3default-1.i386.rpm.

Per installare il pacchetto kernel rpm:

cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

Puoi trasferire lo stesso file RPM su altri sistemi Mandriva e installarlo senza ricompilarlo lì.

Successivamente crea un ramdisk per il nuovo kernel; altrimenti il sistema probabilmente non si avvierà con il nuovo kernel:

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default

7 Configurare il boot loader LILO

Ora dobbiamo configurare il boot loader LILO in modo che il nuovo kernel venga avviato al riavvio.

Per trovare i nomi del kernel e del ramdisk:

ls -l /boot

Di solito il kernel ha prefisso vmlinuz (es. vmlinuz-2.6.18.3-default) e il ramdisk prefisso initrd (es. initrd-2.6.18.3-default.img).

Modifica /etc/lilo.conf. Prendi uno dei blocchi kernel funzionanti come esempio, sostituisci i campi kernel e initrd e aggiungi il nuovo blocco sopra gli altri. Specifica un’etichetta (label) unica e imposta la stessa etichetta come default se vuoi che sia il kernel predefinito all’avvio.

Per modificare il file:

vi /etc/lilo.conf

Esempio: lilo.conf prima dell’aggiunta del nuovo stanza:

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

Esempio: lilo.conf dopo l’aggiunta (nota label e default modificati):

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux-2.6.18.3-default"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.18.3-default
        label="linux-2.6.18.3-default"
        root=/dev/sda6
        initrd=/boot/initrd-2.6.18.3-default.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5 splash=silent"
        vga=788
image=/boot/vmlinuz
        label="linux-nonfb"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" resume=/dev/sda5"
image=/boot/vmlinuz
        label="failsafe"
        root=/dev/sda6
        initrd=/boot/initrd.img
        append=" failsafe resume=/dev/sda5"

Dopo aver salvato /etc/lilo.conf, esegui:

lilo

Quindi riavvia il sistema:

shutdown -r now

Se tutto è andato a buon fine il sistema si avvierà con il nuovo kernel. Puoi verificare la versione corrente del kernel con:

uname -r

Dovrebbe mostrare una stringa come:

2.6.18.3-default

Se il sistema non si avvia, al prompt di LILO seleziona il kernel precedente e avvia il sistema. Dopo aver ripristinato il sistema, rimuovi la stanza del kernel non funzionante da /etc/lilo.conf e riesegui lilo.

Schermata del menu LILO al boot con opzioni di kernel

Puoi ora riprovare a compilare un kernel funzionante. Non dimenticare di eseguire sempre:

lilo

dopo aver modificato /etc/lilo.conf.

8 Link utili


Controlli rapidi e checklist per l’amministratore

  • Verifica spazio disco: df -h /usr/src /boot
  • Controlla dipendenze: gcc, make, rpm-build, kernel-headers
  • Compila con più thread se possibile: make -jN
  • Verifica presenza del pacchetto RPM generato in /usr/src/rpm/RPMS/
  • Crea initrd con mkinitrd prima del riavvio
  • Aggiorna /etc/lilo.conf e esegui lilo
  • Se il sistema non si avvia, avvia il kernel precedente dal menu LILO e rimuovi la stanza difettosa

Quando questo processo può fallire (situazioni comuni)

  • Spazio insufficiente in /boot o /usr/src: la build o mkinitrd possono fallire.
  • Moduli richiesti mancanti: alcuni driver essenziali non vengono compilati.
  • Errore nella configurazione di /etc/lilo.conf: LILO non trova il kernel o il ramdisk.
  • Differenze di architettura: installare un RPM i386 su sistema x86_64 causerà errori.

Approcci alternativi

  • Usare GRUB invece di LILO: GRUB è più flessibile e spesso più semplice da gestire su macchine moderne.
  • Usare strumenti di packaging alternativi (per es. creare pacchetti .deb su distribuzioni Debian-based).
  • Testare il kernel in una macchina virtuale prima di usarlo in produzione.

Mini runbook di rollback (passi rapidi se il nuovo kernel non avvia)

  1. Riavvia la macchina e al menu LILO seleziona il kernel precedente.
  2. Avvia il sistema e accedi come root.
  3. Rimuovi o commenta la stanza del kernel non funzionante in /etc/lilo.conf.
  4. Esegui lilo.
  5. Verifica che /boot non contenga file iniziali errati e libera spazio se necessario.

Cheat sheet comandi principali

  • Compilare: make rpm
  • Elencare SRPMS: ls -l /usr/src/rpm/SRPMS/
  • Elencare RPM binari: ls -l /usr/src/rpm/RPMS//
  • Installare RPM: rpm -ivh
  • Creare initrd: mkinitrd /boot/initrd-.img
  • Applicare LILO: lilo
  • Controllare kernel attivo: uname -r

Glossario in una riga

  • RPM: formato di pacchetto per la distribuzione; mkinitrd: genera un ramdisk iniziale; LILO: boot loader legacy per Linux.

Importante: non modificare il file /etc/lilo.conf senza creare un backup (cp /etc/lilo.conf /etc/lilo.conf.bak). Verifica sempre i nomi dei file in /boot prima di eseguire lilo.

Fine: se hai bisogno di una checklist personalizzata per il tuo ambiente (VM, server in produzione, architettura specifica), posso generarla su misura.

Autore
Redazione

Materiali simili

GmusicFS su Android — monta Google Music
Android

GmusicFS su Android — monta Google Music

Repository yum locale su Fedora 8
Linux

Repository yum locale su Fedora 8

Attivare audio mono in Windows
Audio

Attivare audio mono in Windows

Fallout 4 in stile Borderlands — guida rapida
Giochi

Fallout 4 in stile Borderlands — guida rapida

Risolvere consumo batteria iOS 16
Assistenza iPhone

Risolvere consumo batteria iOS 16

Correggere errore directory Windows non supportata
Windows

Correggere errore directory Windows non supportata