En esta entrega de los apuntes vamos a ver cómo lograr un punto más de accesibilidad utilizando pitidos en el altavoz interno del ordenador en determinados
eventos. No es imprescindible hacerlo para manejar correctamente GNULinux, pero podrían ayudarnos mucho en nuestra tarea diaria.
El contenido de esta entrega no lo he redactado directamente yo, sino que lo he recolectado de unos apuntes de un curso sobre linux que recibí hace un tiempo
y que me parece de utilidad. Solamente me limité a añadir ciertos detalles, pero la esencia es la misma del original que yo tenía por mi disco duro.
Accesibilidad en el gestor de arranque (Grub o Lilo)
El proceso descrito seguidamente soluciona la accesibilidad del gestor de arranque y permite a un usuario ciego saber cuando se espera que
elija el sistema operativo que desea iniciar mediante una señal sonora por el altavoz interno del ordenador.
El proceso consiste en insertar el carácter hexadecimal 0x07 (un pitido del altavoz interno del PC) en el fichero de configuración del gestor de arranque,
entre las cadenas de texto que se presentan como opciones de los sistemas operativos que se pueden iniciar desde el ordenador.
Dado que este proceso puede dejar el sistema inutilizable si no se lleva a cabo adecuadamente, es recomendable únicamente realizarlo si se sabe perfectamente
qué se está haciendo en cada momento. En cualquier caso se recomienda igualmente realizar copias de seguridad de los ficheros de configuración del gestor
de arranque.
Se debe editar el fichero /boot/grub/menu.lst o /etc/lilo.conf, dependiendo si el gestor de arranque es GRUB o LILO respectivamente.
Vamos a realizar el proceso con el editor de textos vi y la orden xxd, pero se podría realizar con cualquier aplicación que permita editar en hexadecimal
un fichero de texto. La elección de vi no es aleatoria, sino que responde a la razón de venir incluído con todas las distribuciones que andan por ahí.
Como usuario root, ejecutaremos:
vi /boot/grub/menu.lst (o /etc/lilo.conf) dependiendo de nuestro gestor de arranque favorito.
Ejecutaremos la orden xxd que activa el modo hexadecimal, para lo que escribiremos:
:%!xxd
Con esto, la pantalla debería quedar dividida en dos: una columna con los caracteres en hexadecimal, y la otra con su correspondencia en ASCII.
?Ahora deberemos buscar los caracteres hexadecimales que componen las cadenas que describen los sistemas operativos que se pueden arrancar y sustituir alguno
que no sea significativo, por ejemplo, un espacio en blanco, si éste existiese, por el carácter 0x07
Saldremos ahora del modo de edición en hexadecimal con la siguiente orden:
:%!xxd -r
En el modo ASCII, debería verse el carácter que hemos introducido (representado como un ‘^G’ . Comprobaremos que el resto del fichero está correcto y que
no se ha modificado nada más por error, guardamos los cambios y salimos del editor con la orden :wq
El carácter 0x07 se puede introducir en varios lugares dentro del fichero de configuración del gestor de arranque, pero con una vez que se inserte es suficiente
para nuestro propósito.
Si el gestor de arranque fuese LILO, se deberá ejecutar, además, la orden:
lilo
para que los cambios sean considerados en el siguiente arranque.
Con estos cambios en el fichero de configuración, la siguiente vez que arranquemos el ordenador, al imprimirse en la pantalla el menú de selección de sistema
operativo, el altavoz interno del PC pitará, permitiendo entonces seleccionar el sistema operativo que se desee iniciar.
Accesibilidad de las teclas de bloqueo: programa locktones
Locktones es una pequeña aplicación que permite saber por medio de sonidos el estado de las teclas de bloqueo (mayúsculas, numérico, desplazamiento
y tecla insert). Para instalarlo será necesario descargarse el código fuente y compilarlo, pero dado que es un programa muy pequeñito y sencillo, no tendremos
ningún tipo de problemas para hacerlo.
Bajaremos el código fuente de la siguiente dirección:
http://mielke.cc/packages/locktones.html ,
en la sección de Download.
Para compilarlo, una vez descomprimido el paquete (ver el tema de paquetes para más información sobre cómo descomprimir con tar.gz), se debe acceder al
directorio ‘locktones-0.5/linux’ y ejecutar el comando make. Si la compilación se ha llevado a cabo correctamente (suelen aparecer algunos Warnings, pero
no son importantes y pueden ignorarse) se instalará en el sistema con el comando make install, esta vez ejecutado como superusuario (root).
Para ejecutarlo basta con escribir locktones desde la línea de órdenes tras habernos autentificado en el login, pero para que se arranque automáticamente
en el sistema para evitarnos trabajos repetitivos, y, aprovechando que es un demonio, se deberán llevar a cabo los siguientes pasos:
? Crear un script de arranque del demonio. Para ello crear un fichero con el nombre locktones (por ejemplo) en el directorio /etc/init.d con el siguiente
contenido:
########################################
#! /bin/sh
DAEMON=/usr/local/sbin/locktones
PIDFILE=/var/run/locktones.pid
# Arguments to atd
#
ARGS=»»
test -x $DAEMON || exit 0
case «$1» in
start)
echo -n «Arrancando el demonio locktones…..»
start-stop-daemon –start –quiet –pidfile $PIDFILE –exec $DAEMON — $ARGS
echo «…. Hecho. «
;;
stop)
echo -n «Parando el demonio locktones…..»
start-stop-daemon –stop –quiet –pidfile $PIDFILE –exec $DAEMON
echo «….. Hecho. «
;;
reload)
echo «No implementado.»
;;
force-reload|restart)
sh $0 stop
sh $0 start
;;
*)
echo «Uso: /etc/init.d/locktones {start|stop|restart|force-reload}»
exit 1
;;
esac
exit 0
########################################
Si quieres evitar problemas puedes copiar y pegar el texto anterior para crear dicho script sin la posibilidad de cometer errores.
Seguidamente daremos desde el usuario root permisos de ejecución a dicho fichero con la orden:
chmod +x /etc/init.d/locktones
Y por último, también desde el usuario root, crearemos el enlace que lanzará el demonio en el arranque del sistema:
ln -s /etc/init.d/locktones /etc/rcS/S82locktones
Bien, esto es todo por esta vez. En la siguiente ocasión trataremos la reproducción de sonido desde la consola y la gestión del control de volumen.