HAL (Español)

From ArchWiki
Revision as of 17:02, 20 October 2012 by Pedro (Talk | contribs)

Jump to: navigation, search

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:HAL (Español)#)
Note: HAL esta desaprovado y ya no aparece en los depósitos oficiales. Es mejor usar udev/ PolicyKit.

Visión general de HAL

HAL (siglas inglesas de Hardware Abstraction Layer) o Capa de abstración de hardware es un demonio que 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 por sus siglas en ingles) puede presentar a su usuario todos los recursos de una manera uniforme y completa.

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

Configuración inicial

El demonio hal requiere de la presencia del demonio dbus, así que debemos asegurarnos de que ambos están instalados. Abra un terminal como root y teclee lo siguiente:

# pacman -S dbus hal

Edite a continuación el archivo /etc/rc.conf como root, y usando su editor favorito añada hal al array DAEMONS, por ejemplo:

DAEMONS=(syslog-ng hal network netfs ...)

El demonio hal cargará ahora en tiempo de arranque. Cuando hal arranque chequeará la presencia de dbus y lo cargará automáticamente. Si tiene a dbus en su lista de demonios, quítelo, ya que puede dar problemas.

También puede arrancar hal manualmente ejecutando como root la siguiente orden:

# /etc/rc.d/hal start

Para que tanto dbus como hal funcionen adecuadamente, las cuentas de los usuarios locales deben ser miembros de los siguientes grupos: optical, storage. Para lograr esto, abra un terminal y teclee las órdenes siguientes como root:

# gpasswd -a username optical
# gpasswd -a username storage

Reemplace username con su nombre de usuario real (p.ej. johndoe).

Si arrancó el demonio hal antes de añadir su propio usuario a estos grupos, debería rearrancar ambos, dbus y hal para que estos cambios tengan efecto. Puede conseguir esto tecleando como root:

# /etc/rc.d/dbus restart
# /etc/rc.d/hal restart

Normativa

NOTA: esto está obsoleto para versiones de hal => 0.5.10

Cree el archivo "/etc/hal/fdi/policy/preferences.fdi" y ábralo con un editor de texto. Inserte

 <?xml version="1.0" encoding="UTF-8"?> 
 <deviceinfo version="0.2">
 
   [RULE_1]
 
   [RULE_2]
 
 </deviceinfo>

y en vez de [RULE_X] añada las reglas pertinentes (las que usted necesite) de entre las que se refieren a continuación.

Montaje automático de sistemas de ficheros NTFS con posibilidad de escritura (ntfs-3g)

Si quiere tener la posibilidad de escritura para los sistemas NTFS automontados, deberá instalar ntfs-3g, añada a continuación esta regla:

   <device>
     <match key="volume.fstype" string="ntfs">
       <match key="@block.storage_device:storage.hotpluggable" bool="true">
         <merge key="volume.fstype" type="string">ntfs-3g</merge>
         <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
         <append key="volume.mount.valid_options" type="strlist">locale=</append>
       </match>
     </match>
   </device>

Nota: comenzando con la versión 2.20, Gnome usa ntfs-3g para montar las particiones ntfs, así que ya no necesita más esto.

Enlazar mount.ntfs

Para una versión de hal => 0.5.10 lo anterior puede que no funcione. Lo siguiente es un apaño para obligar a hal a utilizar el controlador ntfs-3g en vez del controlador ntfs estándar. Tenga en cuenta por favor que este método utilizará el controlador ntfs-3g para todas las unidades NTFS de su sistema. Cree como root un enlace simbólico desde mount.ntfs a mount.ntfs-3g.

# ln -s /sbin/mount.ntfs-3g /sbin/mount.ntfs

Posibles pegas de este método:

  • no funciona si la orden mount es llamada con la opción "-i"
  • posibles problemas con el módulo ntfs del núcleo

Problemas con los "locales"

Si utiliza KDE, puede tener problemas con los nombres de fichero que contengan caracteres no latinos. Esto sucede porque el programa mounthelper de KDE no hace un análisis sintáctico correcto de las normas y de la opción de "locale":

1) Quite el enlace simbólico "/sbin/mount.ntfs-3g". código: rm /sbin/mount.ntfs-3g

2) Reemplacelo por un guión bash nuevo que contenga:

#!/bin/bash
/bin/ntfs-3g $1 $2 -o locale=en_US.UTF-8 #ponga su "locale" aquí

3) Hágalo ejecutable: chmod +x /sbin/mount.ntfs-3g

Sólo hay problemas con aquellas etiquetas de partición que contienen espacios, de manera que si tiene una etiqueta así, reemplace el espacio con un carácter de subrayado, si no lo hace cuando intente montarla obtendrá un mensaje de error.

4) Añada NoUpgrade=sbin/sbin/mount.ntfs-3g al archivo pacman.conf.

Permitir dmask y fmask para ntfs-3g

dmask y fmask son muy útiles para establecer diferentes derechos de acceso a los directorios y archivos, p.ej. dmask=000,fmask=111 hará que los directorios sean accesibles a todo el mundo, mientras que los archivos permanecerán como no ejecutables.

    <device>
        <match key="volume.fstype" string="ntfs">
            <append key="volume.mount.valid_options" type="strlist">dmask=</append>
            <append key="volume.mount.valid_options" type="strlist">fmask=</append>
        </match>
    </device>

Establecer el punto de montaje del iPod

Si usted no le dice a hal donde quiere montar los ipods los montará con el nombre que tenga su ipod. Para cambiar esto cree una norma para hal.

  <device>
    <match key="@block.storage_device:storage.model" string="iPod">
      <merge key="volume.policy.desired_mount_point" type="string">ipod</merge>
      <merge key="volume.policy.mount_option.iocharset=iso8859-15" type="bool">true</merge>
      <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
    </match>
  </device>

Automontar únicamente los dispositivos removibles

hal hace por defecto el automontaje de todas las particiones disponibles que no están montadas en /etc/fstab y crea iconos en el escritoria para ellas. Para modificar este comportamiento y que automonte únicamente los dispositivos removibles, sólo tiene que añadir esta regla:

 <device>
   <match key="storage.hotpluggable" bool="false">
     <match key="storage.removable" bool="false">
       <merge key="storage.automount_enabled_hint" type="bool">false</merge>
     </match>
   </match>
 </device>

Si está corriendo KDE, y el dispositivo está siendo automontado (esto es, aparece en Konqueror), pero no está en el escritorio vaya a Centro de control -> Escritorio -> Comportamiento -> Símbolos de dispositivo (3º pestaña) y aegúrese de que la caja esta marcada.

Active las opciones sync y noatime para los dispositivos menores de 8GB y desactivelas para los mayores

Esto podría impedir la corrupción de los datos en elos dispositivos pequeños (como las unidades flash USB), mientra que mejora los rendimientos para las unidades más grandes (aceptando 1GB = 1000000000 byte).

 <device> 
   <match key="block.is_volume" bool="true">
     <match key="volume.size" compare_lt="8000000000">
       <match key="@block.storage_device:storage.hotpluggable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
       </match>
       <match key="@block.storage_device:storage.removable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
       </match>
     </match>
     <match key="volume.size" compare_ge="8000000000">
       <match key="@block.storage_device:storage.hotpluggable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
       </match>
       <match key="@block.storage_device:storage.removable" bool="true">
         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
       </match>
     </match>
   </match>
 </device>

... finalmente

Rearranque el demonio hal:

# /etc/rc.d/hal restart

Resolución de problemas

Error de seguridad

Si los /DVDs insertados son reconocidos y se coloca un icono en el escritorio, pero no es usted capaz de abrir y explorar el dispositivo, necesita usted añadir su usuario al grupo 'storage'. Esto es aplicable cuando al hacer doble-click en el icono se abre la ventana de error "A security policy prevents this sender from sending this sender from sending this message to this recipient...".

Añada su usuario al grupo 'storage' haciendo como root lo siguiente:

gpasswd -a USERNAME storage

Puede ver a qué grupos pertenece mediante

groups USERNAME

Además de lo anterior, puede verificar también si pertenece a un determinado grupo abriendo el archivo '/etc/group' y comprobando que su nombre de usuario esta listado detrás del nombre de grupo al cual quiere pertenecer. Esto es muy recomendable ya que la orden 'groups USERNAME' podría decirle que pertenece a cierto grupo pero no verse reflejado esto en el archivo '/etc/group', y no obtendría los permisos de ese grupo.


Los CD/DVD insertados no son reconocidos por hal

Si los CDs/DVDs insertados no son reconocidos por hal (no aparece ningún icono en el escritorio), compruebe el archivo /etc/fstab y quite las líneas que tienen que ver con las unidades ópticas.

Dispositivos USB y unidades que no se montan correctamente

Esta subsección procede de de esta página del foro.

Si está Ud. experimentando problemas con el automontaje de los dispositivos USB o con las unidades, pero no tiene problemas para automontar CDs o DVDs, y es capaz de montar el dispositivo USB en cuestión manualmente, entonces debería crear el archivo "preferences.fdi" en la carpeta /etc/hal/fdi/policy y pegar la siguiente línea en el archivo

<merge key="volume.ignore" type="bool">false</merge>

Tambié, si tiene instalado gparted, podría necesitar este archivo:

/usr/share/hal/fdi/policy/gparted-disable-automount.fdi

como se menciona al final de este hilo [1]

Otra solución para el automontado de dispositivos USB

De Antix:

Ninguna de estas soluciones funcionaba para el automontaje de los dispositivos USB en mi notebook SONY VGN-N365E corriendo XFCE.

Edité /etc/dbus-1/system.d/hal.conf y cambié el "0" bajo mi nombre de usuario:

 <policy user="0">
   <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
   <allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
   <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
   <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
   <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
 </policy>

Ahora todo se automonta bien.

Usando PMount

Si como yo no puede conseguir que nada de lo anterior le funcione puede probar a instalar pmount. PMount es un programa que utilizando el programa mount estándar permite a los usuarios normales montar los dispositivos removibles sin necesidad de establecer una entrada en el archivo /etc/fstab.

# pacman -S pmount