HAL (Español)
From ArchWiki
i18n |
---|
English |
Español |
Polish |
Русский |
简体中文 |
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 un IGU (Interfaz gráfico de usuario) de escritorio 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 -Sy pmount