ricompilazione kernel

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

un tgz del kernel in uso o di quello appena compilato?che intendi per aggiornare lilo al momento dell'installazione?dici che non devo aggiornare lilo automaticamente ma solo quando "installo" un kernel?

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

Del Kernel appena compilato, in modo che formattando il disco, sia possibile reinstallare il tutto senza ricompilare. Quindi usando installpkg.
Quindi il pacchetto dovrebbe contenere Kernel, .config, system.map. La tree di /lib/modules. E poi crei la voce in lilo automaticamente, usando uno script apposito in doinst.sh.

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

ho capito, magari ci penso, comunque non so quanto lo userei visto che non formatto tanto di frequente, ma potrei iniziare a farlo, visto che tra poco dovrebbe uscire la slack 11...

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

Io stavo scrivendo qualcosa del genere poi mi sono fermato, lo devo riprendere. Solo che il mio script funziona solo stando gia nei sorgenti in /usr/src e con il .config pronto.


#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.kernel.org
# Based on Roberto's Compile.sh
# Packagers Andrea Sciucca Gohanz ( gohanz@infinito.it)
# http://www.slacky.it

CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi

PKG=$TMP/package-kernel
NAME=kernel
BUILD=1as


if [ ! -r .config ]; then
echo "Cannot access .config (are you in /usr/src/linux?)"
exit 1
fi

if [ `id -u` != "0" ]; then
echo "You must be superuser to run this script"
exit 1
fi

OLDVER=`uname -r`
VERSION=`cat .config|grep "version"|cut -c 25-`
VERSION=${VERSION}`cat .config|grep CONFIG_LOCALVERSION|cut -c 22-|head -c -2`

incorrectVersion() {
echo "Invalid kernel version: $VERSION"
exit 1;
}

if [ -z $VERSION ]; then
echo -n "Type the kernel version you wish to compile: "
else
echo -n "Type the kernel version you wish to compile [${VERSION}]: "
fi
read INPUT

if [ ! $INPUT ]; then
if [ -z $VERSION ]; then
incorrectVersion
fi
else
VERSION=$INPUT
fi

clear

echo -n "Type the Machine's Processor Type (i486,i686..) "
read INPUT
ARCH=$INPUT

clear

echo "+--------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION |"
echo "+--------------------------------------+"



if [ `echo $VERSION | cut -c -3` == "2.6" ]; then
echo "Compiling kernel $VERSION"
make clean && make -j5 bzImage && make -j5 modules && make modules_install
elif [ `echo $VERSION | cut -c -3` == "2.4" ]; then
echo "Compiling kernel $VERSION"
make dep && make clean && make -j5 bzImage && make -j5 modules && make modules_install
else
incorrectVersion
fi


mkdir -p $PKG/boot/$VERSION
mkdir -p $PKG/lib/modules/$VERSION
mkdir -p $PKG/etc

# Copy Kernel Image in Boot Directory.
cp -v .config $PKG/boot/$VERSION/.config
cp -v System.map $PKG/boot/$VERSION/System.map
cp -v arch/i386/boot/bzImage $PKG/boot/$VERSION/bzImage



# Copy Kernel Modules in Modules Directory
( cd /lib/modules/$VERSION
cp -a -r * $PKG/lib/modules/$VERSION
)


# Build lilo.conf
clear

echo "+--------------------------------------+"
echo "| Configure /etc/lilo.conf |"
echo "+--------------------------------------+"

#
# Lilo Configuration.
#
clear
echo -n "Type Root Partion..hda1,hda2.. "
read INPUT
ROOT=$INPUT
clear
echo -n "Type Label Name..."
read INPUT
LABEL=$INPUT




# Lilo Backup
( cd /etc
cp -a lilo.conf lilo.conf.old )

echo -n "lilo.conf backup was created in /etc/lilo.conf.old"

echo ""
echo -n >> /etc/lilo.conf
echo "# Linux $VERSION bootable partition config begins" >> /etc/lilo.conf
echo "image = /boot/$VERSION/bzImage " >> /etc/lilo.conf
echo "root = /dev/$ROOT " >> /etc/lilo.conf
echo "label = $LABEL " >> /etc/lilo.conf
echo "read-only" >> /etc/lilo.conf
echo "# Linux $VERSION bootable partition config end" >> /etc/lilo.conf


( cd /etc
cp -a lilo.conf $PKG/etc )



mkdir -p $PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION


cd $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz

if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi

Rispondi