Uso de HAL en el servidor Xorg

1. Introducción

2. ¿Qué es HAL?

3. Configuración de HAL

4. Restituir el xorg.conf

5. Ventajas

6. Enlaces

7. Fuentes



1.Introducción:

Este artículo surge para solventar dudas sobre el uso de HAL por defecto en las nuevas versiones del servidor X.org en Debian prescindiendo del conocido archivo de configuración xorg.conf.

Un caso común: estando acostumbrados al archivo de configuración xorg.conf usandolo por defecto para la configuración gráfica y de dispositivos en nuestro sistema, actualizamos o nos cambiamos de rama, y nos encontramos con problemas en las X y que nuestro querido archivo xorg.conf ha desaparecido de su ruta.

Esto se debe a que en las últimas versiones del servidor X.org, este se vale de la ayuda de HAL, debido a esto el uso del xorg.conf ahora es opcional.
Al uso de HAL en las nuevas versiones de Xorg, se le llama "Xorg input hotplugging" (i-h).


2. ¿Y qué es HAL?:

HAL (Hardware Abstraction Layer) en español la capa de abstracción de hardware, es una utilidad que funciona como una interfaz entre el software y el hardware del sistema, proveyendo una plataforma de hardware consistente sobre la cual correr las aplicaciones. Cuando se emplea una HAL, las aplicaciones no acceden directamente al hardware sino que lo hacen a la capa abstracta provista por la HAL. Este demonio (en este caso el demonio es hald) permite a las aplicaciones un fácil acceso a la información sobre el hardware de manera que puedan localizar y utilizar tal hardware independientemente del tipo de bus o dispositivo. De esta manera una Interfaz Gráfica de Usuario (GUI) de escritorio puede presentar a su usuario todos los recursos de una manera uniforme y completa.

HAL por ejemplo puede recoger información acerca de los dispositivos de almacenamiento removibles y crear un icono en el escritorio del usuario, permitiendo así, facilidades de acceso y modificación.

Hay que tener en cuenta que HAL es una especie de base de datos de los dispositivos conectados, pero es el kernel junto con udev el que identifica y pone nombre al dispositivo. Asimismo no es HAL el que monta el dispositivo cuando vamos a utilizarlo, sino que será otra aplicación (mount, pmount, ...).


3. Configuración de HAL:

En resumidas cuentas, HAL permite configurar las mismas propiedades permitidas en xorg.conf, pero con mayor flexibilidad: ahora se pueden tener mapas por cada dispositivo. Y al detectar la mayoría de los dispositivos generalmente no se necesitan realizar muchas modificaciones.

HAL usa configuraciones de archivos con extensión fdi que estan escritos en lenguaje XML, podemos encontrar estos archivos y agregar nuevos en la siguiente ruta:

/etc/hal/fdi/policy

Para que los cambios tengan efectos es necesario reiniciar HAL.

Podemos encontrar ejemplos de estos archivos en:

/usr/share/doc/hal/examples

Ignorando dispositivos:

En Xorg si no queriamos que apareciera un dispositivo simplemente no se hablaba de el en el xorg.conf, pero ahora HAL notifica al servidor de todos los dispositivos y todos ellos estan activados por defecto, para deshabilitarlo se puede usar algo como:

<match key="info.producto" contains="minombre">
    <remove key="input.x11_driver"/>
  </match>

Para visualizar los dispositivos detectados por HAL existen herramientas gráficas como gnome-device-manager (kde-hal-device-manager para KDE) basadas y derivadas del viejo paquete hal-device-manager del proyecto HAL.

En consola disponemos de varios comandos para obtener información de los dispositivos administrados por HAL:

lshal: muestra una lista de todos los dispositivos.
hal-find-by-property: encuentra objetos de dispositivo por propiedad.
hal-find-by-capability: encuentra objetos de dispositivo por prestación.


4. Restituir el xorg.conf:

Si deseamos deshabilitar la caracteristica de input hotplugging que permite a HAL administrar nuestras configuraciones, y volver a usar nuestro antigüo xorg.conf para usarlo como en los viejos tiempos se puede realizar el siguiente procedimiento:

Añadir las siguientes opciones a la sección ServerFlags en /etc/X11/xorg.conf:

Section "ServerFlags"
     Option "AutoAddDevices" "False"
     Option "AllowEmptyInput" "False"
EndSection

Si el archivo esta vacio y no tenemos a disposición un respaldo de nuestro antigüo xorg.conf recordemos que podemos generar un nuevo xorg.conf básico, ya sea con:

dpkg-reconfigure xserver-xorg

O generandolo con el siguiente comando (se puede especificar la ruta de creación del archivo):

Xorg -configure /etc/X11/

Nota: Es recomendable tener instalados los paquetes xserver-xorg-input-keyboard y xserver-xorg-input-mouse instalados, para evitar quedarnos sin la usabilidad de estos dispositivos al realizar la modificación del xorg.


5. Ventajas:

Las ventajas y desventajas del uso de HAL frente a xorg quedan a criterio de los usuarios. Si bien HAL tiene la ventaja de hacer el reconocimiento y montura de dispositivos automáticamente y hacerle la vida un poco mas fácil al usuario no experto, especificamente en Debian, se han generado discusiones entre grupos de personas a favor y en contra.

Los que estan en contra alegan que el uso de herramientas como HAL para la detección de configuraciones automatizada no estan en la dirección correcta de esta distribución que se caracteriza entre otras cosas por su flexibilidad y configuración personalizada, entre otras cosas mencionan que Xorg funcionaba perfectamente en el pasado sin la dependencia de hal y dbus y que no hay necesidad de referirse a ellas como dependencias ya que puede funcionar independientemente de ellas.


6. Enlaces:

Documentación de HAL (en inglés):

http://www.freedesktop.org/wiki/Software/hal
http://webcvs.freedesktop.org/hal/hal/doc/spec/hal-spec.html?view=co&pat...
http://wiki.debian.org/XStrikeForce/InputHotplugGuide
https://wiki.ubuntu.com/X/Config/Input#Input%20Configuration%20with%20HA...


7. Fuentes:

http://wiki.debian.org/hal
http://www.espaciolinux.com/foros/viewtopic.php?t=42492
http://www.gentoo.org/proj/es/desktop/x/x11/xorg-server-1.5-upgrade-guid...
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515214
http://es.wikipedia.org/wiki/HAL_%28software%29
http://wiki.archlinux.org/index.php/HAL_%28Espa%C3%B1ol%29
http://wiki.archlinux.org/index.php/Xorg_Input_Hotplugging#Configuration
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=debianH...
http://bgoglin.livejournal.com/16734.html