Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Script para compilar el kernel

cyfuss's Diary
Por cyfuss
departamento compila-facil , Sección Diarios
Puesto a las Wed May 26th, 2004 at 11:48:13 PM CET

Antes que nada saludar al respetable, es mi primera entrada y habia pensado que qué mejor manera que aportando algo ;-).

He escrito un pequeño script en bash para compilar el kernel de una manera muy sencilla...

 


Antes que nada saludar al respetable, es mi primera entrada y había pensado que que mejor manera que aportando algo ;-).

Bueno, pues lo que quería contaros es que he escrito un pequeño script en bash para compilar el kernel de una manera muy sencilla y sin tener que estar pendiente del monitor.

Lo he escrito pensando en mis comienzos y en la de veces que rompí el sistema por compilar mal... asi que, lo he escrito ;-).

Lo he probado con las versiones del kernel 2.4.x, y funciona sin problemas. Todavia esta un poco en pañales, creo que deberia añadir algunas mejoras [se aceptan sugerencias], pero... asi, solo se me ocurre modificar lilo.

Por supuesto, ni que decir tiene que es GPL, si lo quereis mejorar... vosotros mismos ;-)

Bueno, no me enrollo mas, pego el codigo

#/bin/bash
# date: 25.5.2004

##
# Gracias a omgs, por sus correcciones y mejoras al script
##

##version del kernel
echo "para compilar el kernel con este script, necesitas tener el tar.gz en /usr/src";
echo "";
echo "lo tienes alli? (y/n)";
read tecla_preparativos

if [ $tecla_preparativos == n ]; then
   echo "pues copiaremos el archivo tar.gz a /usr/src";
   echo "donde lo tienes? [ej: /home/user/linux]";
   read localizacion
   echo "que version tienes? [ej. 2.4.22]";
   read version
   echo "copiamos el archivo ${localizacion}-${version}.tar.gz a /usr/src";
   cp ${localizacion}-${version}.tar.gz /usr/src
   echo "extraemos el fichero que acabamos de copiar";
   cd /usr/src
   tar -xvzf linux-$version.tar.gz
   echo "eliminamos y cremos el enlace simbolico al kernel";
   rm linux
   ln -s linux-$version linux
   rm linux-${version}.tar.gz
   cd /usr/src/linux
else
   echo "que version tienes? [ej. 2.4.22]";
   read version
   cd /usr/src/linux-$version
fi

# preparamos el kernel para compilar
echo "ahora preparamos el kernel para compilarlo.";
sleep 10

## si quieres usar esta opcion... es bajo tu responsabilidad ;-)
#make mrproper
make dep
echo ""; echo"";

## localizacion del fichero .config
echo "indica la localizacion del fichero de configuracion del kernel [path completo]";
read localizacion
cp $localizacion /usr/src/linux/.config
make menuconfig

# ahora vamos compilar el kernel
echo "ahora compilamos el kernel";
echo "pulse una tecla para continuar";
read tecla

make dep && make clean && make bzImage && make modules && make modules_install
cp .config /boot/config.kernel.$version
echo "ya tienes la configuracion del kernel en /boot/config.kernel.$version";

# creamos los enlaces a los sitios
echo "ahora creamos los enlaces a los sitios";
echo "pulse una tecla para continuar";
read tecla

cd /boot
cp /usr/src/linux/System.map /boot/System-$version

if [ -f /boot/vmlinux-$version ]; then
   cp /usr/src/linux/arch/i386/boot/bzImage vmlinux-$version
   rm vmlinuz
   ln -s vmlinuz-$version vmlinuz
else
   cp /usr/src/linux/arch/i386/boot/bzImage vmlinux-${version}-revision
   rm vmlinuz
   ln -s vmlinuz-${version}-revision vmlinuz
fi

echo "Actualiza lilo por tu cuenta ... Que no se te olvide ;-)"

Bueno, pues eso, si os gusta, si veis algún problema o alguna mejora, ya sabeis ;-).

--
saludos
cyfuss
   Linux User: #310982    |    Debian Sid
   http://www.iespana.es/cyfuss/index.htm
< Introducción a Subversion (8 comments) | De GNOME a KDE (57 comments) >
Enlaces Relacionados
· More on cyfuss's Diary
· Also by cyfuss

Encuesta
¿Que te parece este script?
· Genial, me has solucionado la vida ;-) 0%
· Tu sabes, no esta mal 23%
· y si dejas de perder el tiempo y estudias para los examenes? 30%
· lo que diga la rubia ;-) 46%

Votos: 13
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Script para compilar el kernel | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Mola (none / 0) (#1)
por FluFlo (flu_flo@hotmail.com) a las Thu May 27th, 2004 at 08:49:25 AM CET
(Información Usuario)

Especialmente para vagos como yo. Solo un par de comentarios

1) El make dep que haces antes de make menuconfig??. Para que es?.

2) No deberia ser dicicil adaptarlo a kernels de la serie 2.6, si es que no funciona ya directamente (aunque algunos pasos como el make clean creo que ya no hacen falta, tampoco pasa nada si los haces).

3) Usando Debian es un pecado que no uses el make-kpkg, porque es especialmente comodo cuando andas poniendo y quitando ,muchos kernels. Aunque si lo que quieres es mantener la compatibilidad con otros sistemas, pues entonces si.

4) Algunas distros tienen opciones interesantes en el makefile que son poco conocidas pero muy utiles. Por ejemplo, en MKD (en la 9.1 al menos) despues del make modules_install si haces un make install, te pone la entrada de LILO y todo y te copia el vmlinuz a /boot. En Red Hat (me han dicho ) que despues de hacer el make menuconfig si haces make rpm, te genera un rpm del kernel y modulos (al estilo make-kpkg) pero esto no lo he probado. Alguien sabe mas cosas de estas?.

Al final han sido mas de un par...



Mola (none / 0) (#3)
por cyfuss a las Fri May 28th, 2004 at 10:06:46 AM CET
(Información Usuario) http://www.cyfuss.com

1) El make dep que haces antes de make menuconfig??. Para que es?.

La verdad... no lo se ;-). se abra colado al hacer el copy&paste.

3) Usando Debian es un pecado que no uses el make-kpkg, porque es especialmente comodo cuando andas poniendo y quitando ,muchos kernels. Aunque si lo que quieres es mantener la compatibilidad con otros sistemas, pues entonces si. 4) Algunas distros tienen opciones interesantes en el makefile que son poco conocidas pero muy utiles. Por ejemplo, en MKD (en la 9.1 al menos) despues del make modules_install si haces un make install, te pone la entrada de LILO y todo y te copia el vmlinuz a /boot. En Red Hat (me han dicho ) que despues de hacer el make menuconfig si haces make rpm, te genera un rpm del kernel y modulos (al estilo make-kpkg) pero esto no lo he probado. Alguien sabe mas cosas de estas?.

Hombre, lo que yo buscaba es la 'compatibilidad' con todas las distribuciones. no hacerlo para debian, para mandrake, para...

gracias por el apunte ;-)
--
saludos
cyfuss
   Linux User: #310982    |    Debian Sid
   http://www.iespana.es/cyfuss/index.htm

--
saludos
cyfuss

[ Padre ]


 
Para estos casos uso «chuleta» (none / 0) (#2)
por jamarier a las Fri May 28th, 2004 at 01:44:04 AM CET
(Información Usuario) http://barbacana.net/blog/

Considerando que unix favorece que se escriba un script que automatice la tarea me parece bien que hayas hecho este.

Si pretendes simplificar la vida a la gente que quiera compilar el kernels, me parece que no lo has conseguido, es más complicado responder a las opciones que va preguntando que hacer las cosas directamente. Por ejemplo al copiar ficheros desde donde bajas los fuentes a /usr/src/linux..., el autocompletado con TAB en la shell simplifica mucho al introducir rutas. ;-)

Además hay un segundo problema asociado y es que no se comprueban las entradas que se introducen con lo cual los destrozos pueden ser mayúsculos.

Ojo, mi consejo es que sigas perfeccionando tus habilidades para cuando sean realmente necesario. ah, existe una utilidad que se llama dialog (hay una versión para X llamada xdialog) que se encarga de hacer bonitos cuadros de dialogo con muy poco esfuerzo. Es lo que usa por ejemplo Debian al configurar los paquetes.

En general, yo para este tipo de tareas no me hago un script, sino una «chuleta» donde indico los tres comandos que uso y un breve porqué.

-----
- Porque mañana será un gran día.



Para estos casos uso «chuleta» (none / 0) (#4)
por cyfuss a las Fri May 28th, 2004 at 10:22:46 AM CET
(Información Usuario) http://www.cyfuss.com

el autocompletado con TAB en la shell simplifica mucho al introducir rutas. ;-)

Sí, eso es algo que me dí cuenta, pero... pensando que este script es para usuarios noveles que nunca han conseguido compilar el kernel, pues le vi cierta utilidad. Para los que llevais mas tiempo... pues puede ser una 'chuleta' o un script que automatice la compilación del kernel en más de un equipo a la vez, dandole el valor a las variables en el propio script. [no se, se me ocurrio esa posibilidad, no he tenido que compilar un kernel en más de un pc, no sé como se hará en 'cantidades industriales'].

Además hay un segundo problema asociado y es que no se comprueban las entradas que se introducen con lo cual los destrozos pueden ser mayúsculos.


Aqui no te entiendo, si metes mal la entrada... directamente no compilas. Sólo pide 2 información de 2 variables importantes. Version y localizacion de .config. La única que podría ocasionar problemas es la del .config, pero para eso está que el usuario compruebe que realmente es ese fichero de configuración el que tiene que darle al kernel, no?.

Mi consejo es que sigas perfeccionando tus habilidades para cuando sean realmente necesario. ah, existe una utilidad que se llama dialog (hay una versión para X llamada xdialog) que se encarga de hacer bonitos cuadros de dialogo con muy poco esfuerzo

ok, lo seguiré ;-) y miraré con más detenimiento eso de 'dialog'
--
saludos
cyfuss
   Linux User: #310982    |    Debian Sid
   http://www.iespana.es/cyfuss/index.htm

--
saludos
cyfuss

[ Padre ]


 
Script para compilar el kernel | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda