Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Come ricompilare il Kernel Linux | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Come ricompilare il Kernel Linux

Link copiato negli appunti

In questo articolo analizziamo i passi da seguire per ricompilare il kernel. Prima di tutto È necessario dotarsi dei sorgenti del kernel. Se non si hanno già disponibili sul proprio Hard Disk possono essere trovati al sito ftp://ftp.kernel.org/pub/linux/kernel/v2.4. Per un kernel della serie 2.4 sono necessari alcuni aggiornamenti (tutte le ultime distribuzioni sono pronte per il kernel 2.4) che potrete trovare nel file /usr/src/linux/Documentation/Changes.

Attualmente l'ultima versione è la 2.4.6 (linux-2.4.6). Bisogna prestare attenzione alla seconda cifra che caratterizza il kernel (4 nel nostro caso). Solo i kernel con la cifra pari sono considerati sufficientemente stabili, mentre gli altri sono ritenuti in fase di sviluppo e destinati agli sviluppatori.

I sorgenti andranno posizionati nella directory /usr/src e quindi decompressi. Per tutte queste operazioni È necessario "loggarsi" da utente root. Prendiamo il caso che abbiate scaricato il file linux-2.4.6.tar.gz.

Se avete già i sorgenti installare

lnxbox1:/usr/src# gzip -cd patchXX.gz | patch -p0

Dove al posto di XX vi È la versione della patch.

I sorgenti sono anche disponibili come bz2

Se tutto È andato bene ci ritroveremo i sorgenti del nostro kernel nella directory /usr/src/linux.

lnxbox1:~# cd /usr/src/linux

e diamo:

lnxbox1:/usr/src/linux# make mrproper

In questo modo elimineremo tutti i collegamenti

A questo punto dobbiamo scegliere le opzioni da includere nel nuovo kernel. Da utente root

lnxbox1:/usr/src/linux# make config

In questo modo ci verrà chiesto interattivamente cosa includere e cosa no. Esistono tuttavia dei modi più amichevoli

lnxbox1:/usr/src/linux# make menuconfig

Per caricare il menu di configurazione testuale. Oppure:

lnxbox1:/usr/src/linux# make xconfig

Per caricare il menu di configurazione per X.

A questo punto si tratterà di scegliere quali opzioni del kernel delicate

Putroppo non sarebbe neanche possibile analizzare nei dettagli tutte le opzioni presenti nel kernel. Daremo però dei suggerimenti utili su quali sono le opzioni fondamentali da abilitare e quali possono essere gli errori più comuni. Se si è in dubbio se abilitare o meno un'opzione può tornare sempre di grande utilità l'help in linea. Generalizzando nell'incertezza la scelta meno rischiosa è "abbondare" nelle opzioni.

È buona norma accludere nel kernel solo il supporto per i componenti hardware fondamentali

Code maturity level options

Loadable module support

Processor type and features

General setup

Memory Technology Devices (MTD)

Parallel port support

Plug and Play configuration

Block devices

Multi-device support (RAID and LVM)

Networking options

Telephony Support

ATA/IDE/MFM/RLL support

Abilitate anche i supporti per il DMA se volete usarlo e l'opzione relativa al vostro chip presente sulla scheda madre. Se avete un masterizzatore IDE dovreste abilitare anche "SCSI emulation support" e disabilitare l'opzione relativa al CDROM ("Include IDE/ATAPI CDROM support").

SCSI support

IEEE 1394 (FireWire) support

I2O device support

Network device support

Amateur Radio support

IrDA (infrared) support

ISDN subsystem

Old CD-ROM drivers (not SCSI, not IDE)

Input core support

Character devices

Multimedia devices

File systems

Abilitate invece il "/proc file system support". È bene ribadire che il filesystem

Console drivers

Sound

USB support

Bluetooth support

Kernel hacking

A questo punto potete tranquillamente uscire e salvare.

Tra gli errori provare LILO

A questo punto bisogna dare i seguenti comandi per compilare sia i moduli che il kernel.

lnxbox1:/usr/src/linux# make dep && make bzImage
lnxbox1:/usr/src/linux# make modules && make modules_install

L'operatore && /usr/src/linux/arch/i386/boot /boot

lnxbox1:/usr/src/linux# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-new

Copiamo anche il file /usr/src/linux/System.map

lnxbox1:/usr/src/linux# cp /usr/src/linux/System.map /boot

A questo punto dovremmo essere in grado di installare /etc/lilo.conf vmlinuz

image=/boot/vmlinuz label=Linux read-only root=/dev/hda5

l'ultima riga cambia a seconda di dove risiede la vostra partizione con Linux. Questa parte del file di configurazione di LILO assegna l'immagine del kernel presente in /boot/vmlinuz assegnandole il nome di Linux. Possiamo rinominare il vecchio kernel in vmlinuz-old, copiare il nuovo kernel in /boot e dandogli il nome di vmlinuz, lasciare invariata la voce precedente e aggiungere sotto una sezione del tipo:

image=/boot/vmlinuz-old label=old read-only root=/dev/hda5

a questo punto scriviamo:

lnxbox1:~# lilo

Per rendere effettive

Compilare il kernel

Ti consigliamo anche