Re: Compilar nucli en altra màquina

2004-11-14 Conversa Lluis
El 13/11/04, a les 00:04:55, Josep Ma. Ferrer ens deleità amb les següents 
paraules:
[...]
>   Cal instal·lar el paquet kernel-package i les seves dependències.
> 
>   Després cal aconseguir un fitxer amb la configuració desitjada del
> nucli (.config), utilitzant el menuconfig, oldconfig, xconfig, etc...
> 
>   Seguidament, ja es pot fer:
> 
[...]

be, com que tinc un parell de maquines per casa, i la que fa de servidor es
bastant menys potent que l'altra (que no es mes que una carraca, tb), faig
aixo que dius de compilar en una altra maquina, pero com que estava fart de
posar tot el carro al make-kpkg, em vaif fer uns scripts per a facilitar la
tasca:

[EMAIL PROTECTED]:/usr/src/linux# nucli_clean
Us: /root/bin/nucli_clean 

Neteja els fonts del nucli, segons l'esquema 
Es equivalent a make-kpkg clean


[EMAIL PROTECTED]:/usr/src/linux# nucli_config
Us: /root/bin/nucli_config [-c ]  []

Configura els fonts del nucli, segons l'esquema 
Es equivalent a make-kpkg --config  configure
Quan es modifica una configuracio, en guarda la versio anterior, per si de cas
Util si es vol actualitzar de versio del nucli, utilitzem la opcio '-c
oldconfig' i aixi ens preguntara les noves opcions i guardara en un fitxer la
nova configuracio

[EMAIL PROTECTED]:/usr/src/linux# nucli_imatge
Us: /root/bin/nucli_imatge  []

Crea els paquets corresponents al nucli segons l'esquema 
Es equivalent a make-kpkg kernel-image modules-image

Els fitxers de configuracio es guarden tots a /usr/src/configs/ i tenen el
seguent format:
-.
on  pot ser:
conf, conf.old: Configuracio del nucli
patch:  Llista de "patches" a aplicar (dels que proporciona
ja empaquetats debian, equivalent al parametre
--added_patches de make-kpkg)
mods:   Llista de moduls externs a compilar (proporcionats tb
per debian, i equivalents a la opcio --added_modules
de make-kpkg modules-image, crea un paquet per cada
modul extern)

El format dels fitxers .patch i .mods es el mateix que el dels corresponents
parametres de make-kpkg: ,,,etc...

El format del nom dels paquets resultants es:
_.[.]_.deb

Be, doncs us els adjunto i espero que us serveixin, encara que nomes sigui una
miqueta ;)

apa!
-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth
#!/bin/sh
#
# Neteja els fonts del nucli

# MAIN
if [ "$1" = "" -o "$2" != "" ]; then
echo "Us: $0 "
exit 0;
fi
SELF=$0
ETIQ=$1

source `dirname $0`/nucli_common

checks

make-kpkg $PATCH $MODS clean

#!/bin/sh
#
# Funcions comunes

KERNELDIR="`pwd`"
CONFIGDIR="/usr/src/configs"

error () {
echo $@
exit 1
}

checks () {
[ -d $KERNELDIR ] || \
  error "No puc trobar el directori $KERNELDIR amb els fonts!"
[ -n "`grep Package:\ kernel $KERNELDIR/debian/control`" ] || \
  error "El directori $KERNELDIR no sembla que contingui fonts del nucli"
[ -d "$CONFIGDIR" ] || \
  error "No puc trobar el directori $CONFIGDIR amb les configuracions!"

get_version

[ -n "$KERNELRELEASE" ] || \
  error "No puc determinar la versio del nucli per la que s'esta compilant"

LABEL="$ETIQ-$KERNELRELEASE"
FILEBASE="$CONFIGDIR/$LABEL"
check_file "conf" "configuracio"
check_file "patch" "patches"
check_file "mods" "moduls"
}

get_version () {
VERSION=`grep -n "^VERSION" $KERNELDIR/Makefile | head -1 | cut -f 3 -d " "`
PATCHLEVEL=`grep -n "^PATCHLEVEL" $KERNELDIR/Makefile | head -1 | cut -f 3 
-d " "`
SUBLEVEL=`grep -n "^SUBLEVEL" $KERNELDIR/Makefile | head -1 | cut -f 3 -d " 
"`
EXTRAVERSION=`grep -n "^EXTRAVERSION" $KERNELDIR/Makefile | head -1 | cut 
-f 3 -d " "`
KERNELRELEASE=$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION
}

check_file () {
aux=$CONFIGDIR/$ETIQ-*.$suff
suff=$1
desc=$2

if [ -f "$aux" ]; then
echo "No hi ha versions antigues per al fitxer de $desc"
touch $FILEBASE.$suff
elif [ -f $FILEBASE.$suff ]; then
check_ok $suff $desc
else
echo "Fitxer de $desc no trobat per a la versio $KERNELRELEASE"
echo -n "Vols utilitzar una versio antiga? [S/n] "
read RESP
if [ "$RESP" = "s" -o "$RESP" = "S" -o -z "$RESP" ]; then
echo "Fitxers disponibles:"
echo ""
ACTUAL=`pwd`
cd $CONFIGDIR
ls $ETIQ*.$suff
cd $ACTUAL
echo ""
RESP="/"
while [ ! -f $CONFIGDIR/$RESP ]; do
echo -n "Escull-ne un: "
read RESP
if [ ! -f $CONFIGDIR/$RESP ]; then
echo "No s'ha escollit cap fitxer valid"
fi
done
cp $CONFIGDIR/$RESP $CONFIGDIR/$ETIQ-$KERNELR

Re: Compilar nucli en altra màquina

2004-11-12 Conversa Josep Ma. Ferrer
En/na Andreu Bassols Alcón ha escrit:
> Hola
> 
> He instal·lat Debian Slink (2.1) en un portàtil petitó, un Compaq Aero
> que és un 486 amb 8 MB de RAM!
> 
> El que passa és que no tinc gaire espai al disc dur, i m'agradaria
> compilar-li el kernel per ajustar-lo i fer-lo més petit (Un 2.0.37 duu
> ara mateix, li compilaria un 2.0.39, què opineu?). Només necessita
> suport per PCMCIA i poca cosa més.
> Sabeu si és gaire engorrós compilar el nucli en una altra màquina (més
> potent), i després portar-ne els resultats al petitó?
> 

Hola,

Jo ho he fet alguna vegada, i si utilitzes les eines de Debian
(make-kpkg) tindràs un paquet kernel-image-versio.deb que es pot
instal·lar amb dpkg -i kernel-image-versio.deb. No es gaire engorrós.

Cal instal·lar el paquet kernel-package i les seves dependències.

Després cal aconseguir un fitxer amb la configuració desitjada del
nucli (.config), utilitzant el menuconfig, oldconfig, xconfig, etc...

Seguidament, ja es pot fer:

$ cd /usr/src/linux (o el directori a on tinguis les fonts del nucli i
el .config)

$ make-kpkg clean

Una de les dues següents, en funció de si tens instal·lat fakeroot o no:

$ fakeroot make-kpkg kernel_image (si tens instal·lat fakeroot)
# make-kpkg kernel_image (si no tens fakeroot, cal fer-ho com a root)

$ cd .. (al /usr/src queda l'arxiu .deb)

Finalment, s'instal·la el paquet deb amb el nucli:

# dpkg -i kernel-image-versio_i386.deb

Es molt recomanable llegir el man de make-dpkg :)

Sort!

> Els fitxers serien: bzImage, System.cat, i el directori /lib/modules/2.*
> i ja està?
> 
> Gràcies!
> 
> Andreu Bassols i Alcón
> Webmestre d'Eines: http://www.eines.info
> Weblog personal: http://annys.eines.info/raims
> Usuari Linux #291715
> 


-- 
*--*
|   Linux User: 154.147 (http://counter.li.org)|
| GPG KeyID: 0x4E91BFA1 (http://www.keyserver.net) |
*--*



Compilar nucli en altra màquina

2004-11-12 Conversa Andreu Bassols Alcón

Hola

He instal·lat Debian Slink (2.1) en un portàtil petitó, un Compaq Aero que 
és un 486 amb 8 MB de RAM!


El que passa és que no tinc gaire espai al disc dur, i m'agradaria 
compilar-li el kernel per ajustar-lo i fer-lo més petit (Un 2.0.37 duu ara 
mateix, li compilaria un 2.0.39, què opineu?). Només necessita suport per 
PCMCIA i poca cosa més.
Sabeu si és gaire engorrós compilar el nucli en una altra màquina (més 
potent), i després portar-ne els resultats al petitó?


Els fitxers serien: bzImage, System.cat, i el directori /lib/modules/2.* i 
ja està?


Gràcies!

Andreu Bassols i Alcón
Webmestre d'Eines: http://www.eines.info
Weblog personal: http://annys.eines.info/raims
Usuari Linux #291715