Personal tools
You are here: Home Documentación Recetas Arrancar scripts segun una opción pasada a lilo
Navigation
Log in


Forgot your password?
New user?
 
Document Actions

Arrancar scripts segun una opción pasada a lilo

by Lorenzo Gil Sanchez last modified 29-10-2004 07:50 PM

Copyright © 7 de Enero de 2003 por Lorenzo Gil Sánchez (lgs)

Los que llevan en esto bastante tiempo y han sufrido MSDOS recordarán lo sencillo que era hacerse menus de arranque personalizados con el mítico autoexec.bat. Pues bien, siempre he tenido la duda de como hacer algo parecido en mi Debian con Lilo.

El ejemplo concreto que seguiré es el siguiente: Mi portátil tiene salida para televisión pero hay que cambiar el archivo /etc/X11/XF86Config-4 para que funcione. Asi que lo que intentaré será que pasándole una opcion al Lilo este cambio se haga solo y asi cuando vea los dvds con mis amigos no tenga que abrir el Emacs con el consiguiente pánico general. Aunque esta receta no esta completa, estos son los pasos a seguir y los resultados que he obtenido:

Hacer 3 archivos XF86Config-4, uno para usar normalmente el portátil, otro para conectarlo a teles con entrada S-Video y otro para conectarlo a teles con entrada de Video Compuesto (las del euroconector de toda la vida)

Hacer un script en /etc/init.d/ que se llame video-out.sh. El script básicamente lo que hace es machacar el fichero /etc/X11/XF86Config-4 con uno de nuestros 3 ficheros creados en el paso anterior dependiendo del valor de una variable de entorno. El contenido del script es el siguiente

#! /bin/sh
#
# Copyleft 2002 lgs. This is GPL.
# Checks the VIDEO_OUT variable to set the apropiate
# XF86Config-4 config file

# Note that this does not start/stop/restart any daemon # so the typical start/stop/restart argument has no # meaning here

NORMAL=/etc/X11/XF86Config-4.normal SVIDEO=/etc/X11/XF86Config-4.svideo COMPOSITE=/etc/X11/XF86Config-4.composite

DEST_FILE=/etc/X11/XF86Config-4

# check if we have the files if ! [ -f ${NORMAL} ] ; then echo "Normal output file does not exist" exit 1 fi

if ! [ -f ${SVIDEO} ] ; then echo "SVideo output file does not exist" exit 1 fi

if ! [ -f ${COMPOSITE} ] ; then echo "Composite output file does not exist" exit 1 fi

# overwrite $DEST_FILE with the apropiate value case "$VIDEO_OUT" in normal) echo "Using normal video output" cp ${NORMAL} ${DEST_FILE} ;; svideo) echo "Using svideo video output" cp ${SVIDEO} ${DEST_FILE} ;; composite) echo "Using composite video output" cp ${COMPOSITE} ${DEST_FILE} ;; *) echo "Using normal video output" cp ${NORMAL} ${DEST_FILE} ;; esac

Cambiamos los permisos del script:

lgs@i8100:~$ chmod 755 /etc/init.d/video-out.sh

Ahora se hace un link en /etc/rc2.d que apunte al script anterior con la siguiente orden:

lgs@i8100:~$ ln -s /etc/init.d/video-out.sh /etc/rc2.d/S30video-out

Con esto lo que estamos haciendo es decirle que siempre que entre en el runlevel 2 ejecute el script video-out.sh. En otras palabras, que ejecute el script en el inicio de la máquina.

Ya sólo queda decirle a Lilo que ponga el valor de la variable VIDEO_OUT segun nos convenga. Cuando arrancas la máquina y te sale el mensaje LILO: tienes que escribir algo como:

Lilo: Linux VIDEO_OUT="svideo"

Donde Linux es la entrada del Lilo que quiero arrancar. Con esto el script video-out.sh tomará la variable correctamente.

Como veis la receta no esta completa, porque lo suyo seria que pudieramos meter esa opcion directamente en una entrada de menu de Lilo. Evidentemente lo he intentado y no lo he conseguido, pero bueno, estoy abierto a vuestras sabias sugerencias.

Por ultimo deciros que la receta esta enfocada a mi problema de mi portátil y a Debian, pero los pasos son lo suficientemente genéricos para que sirvan a cualquier distro y problema. Creo que lo que hace la Knoppix cuando arrancas es algo muy parecido a esto.


Powered by Plone CMS, the Open Source Content Management System Powered by GCubo Powered by Cicode

This site conforms to the following standards: