***Importare kernel da altre distribuzioni su Slackware*** Supponiamo di voler importare su Slackware 10.1 il kernel utilizzato dalla nuovissima Knoppix 3.8.2, che abbiamo provato da cd, e abbiamo scoperto che rileva perfettamente tutto il nostro hardware. Utilizzando il cd Knoppix carichiamo questa distribuzione, da lì montiamo la partizione di root del nostro harddisk, dov'è installata la nostra Slackware. A questo punto leggiamo /etc/lilo.conf per vedere qual'è l'immagine del kernel che utilizza, di solito è /boot/vmlinuz, ma non si sa mai, poi copiamo il file a cui punta vmlinuz (che è quasi sempre un link simbolico) nella /boot della Slackware stando attenti a non sovrascrivere altri file. In questo la versione del kernel è 2.6.11 (uname -a per scoprirlo), copiamo i moduli sulla Slackware con: cp -R /lib/modules/2.6.11 /mnt/hda7/lib/modules dove /mnt/hda7 è il punto di mount della root della Slackware. Fatto questo rimane solo da copiare i sorgenti: cp -R /usr/src/linux-2.6.11 /mnt/hda7/usr/src Ora non dobbiamo fare altro che riavviare togliendo il cd della Knoppix, aggiungere il nuovo kernel al lilo.conf della Slackware e rieseguire lilo. A volte però al successivo riavvio il sistema non parte ma va in kernel panic, per esempio perchè manca il supporto nel kernel al filesystem ReiserFS e il filesystem di root della nostra Slackware è proprio ReiserFS (potrebbe succedere la stessa cosa anche con i drivers SCSI o SATA), allora dobbiamo creare con mkinitrd un piccolo filesystem da caricare in RAM durante la fase di boot con i moduli che servono al kernel per avviare il sistema, per esempio: mkinitrd -c -k 2.6.11 -m reiserfs -f reiserfs -r /dev/hda7 dove -k specifica la versione del kernel e dei moduli da utilizzare, -m specifica la lista dei moduli da inserire, -f specifica il filesystem di root e -r la partizione di root. Mkinitrd produce /boot/initrd.gz a questo punto basta solamente aggiungere a lilo.conf la linea: initrd=/boot/initrd.gz e naturalmente rieseguire lilo. Infine a volte si può aver bisogno anche dei sorgenti veri e propri del kernel, per esempio per compilare i drivers dell'Nvidia, in questo caso basta scaricare in /usr/src da kernel.org i sorgenti della versione del kernel coincidente con quella della Knoppix, dopodichè entriamo in /usr/src e: mv linux-2.6.11 linux-knoppix per non sovrascrivere quelli compilati della Knoppix, poi: tar xvjf linux-2.6.11.tar.bz2 rm -r linux-2.6.11/include rm -r linux-2.6.11/arch cd linux-knoppix cp * /usr/src/linux-2.6.11 cp -R arch /usr/src/linux-2.6.11 cp -R include /usr/src/linux-2.6.11 --------- by Stefano Stabellini www.stabellini.net stefano at stabellini.net