HAL (Русский)
From ArchWiki
| i18n |
|---|
| English |
| Polish |
| Русский |
Contents |
[edit] Обзор HAL
HAL (Hardware Abstraction Layer) это демон, который представляет программам быстрый доступ к информации об оборудовании. Взаимодействуя с HAL приложения сами могут определять и использовать железо, не обращая внимания на такие особенности как шина или тип устройства. Таким образом графический интерфейс оказывается способным представлять пользователю все ресурсы компьютера в однотипном и унифицированном виде.
Например, HAL способен собирать информацию об устройствах хранения информации (флешках, внешних HDD, и.пр.) и создавать иконки этих устройств на рабочем столе пользователя, упрощающие доступ к этим устройствам.
[edit] Начальные установки
HAL требует для своего функционирования наличие запущенного демона dbus, поэтому необходимо быть уверенным, что они оба установлены. Откройте терминал и запустите следующее под root`ом:
# pacman -S dbus hal
Далее нужно отредактировать файл /etc/rc.conf (под root`ом) своим любимым текстовым редактором, добавив hal в список DAEMONS, например:
DAEMONS=(syslog-ng hal network netfs ...)
Теперь демон hal будет стартовать во время загрузки системы. Во время своей инициализации hal проверяет наличие dbus и загружает его автоматически. Если вы обнаружите, что dbus каким-либо образом попал в список DAEMONS (файл /etc/rc.conf), удалите его оттуда, т.к. в ином случае возможны непредвиденные последствия.
Вы также можете запустить hal вручную, введя под root`ом следующую команду:
# /etc/rc.d/hal start
Для того, чтобы dbus и hal нормально функционировали необходимо добавить локальных пользователей в группы: optical и storage. Это можно сделать, открыв терминал и введя под root`ом следующие команды:
# gpasswd -a username optical # gpasswd -a username storage
Замените username именем реально существующего пользователя (например, johndoe).
Если демон hal был запущен до того, как вы добавили себя в эти группы необходимо перезапустить и dbus и hal для того, чтобы изменения вступили в силу. Это можно проделать, запустив под root`ом следующие команды:
# /etc/rc.d/dbus restart # /etc/rc.d/hal restart
[edit] Тонкости и хитрости
[edit] Автомонтирование NTFS с поддержкой записи (ntfs-3g)
Если у вас появилось желание автомонтировать разделы с NTFS с поддержкой записи, вам необходимо для установить ntfs-3g и создать файл 10-ntfs-policy.fdi в /etc/hal/fdi/policy следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<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>
</deviceinfo>
[edit] Задание точки монтирования iPod
Если вы не укажите hal куда монтировать ваш ipod, он будет монтироваться в папку с тем именем, которое вы ему присвоили. Чтобы испавать это недаразумение надо создать правило для hal. Это правило можно добавить, например, в /etc/hal/fdi/policy/90-user-methods.fdi. Если этого файла не существует просто создайте его.
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<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>
</deviceinfo>
[edit] Автомонтирование только съёмных устройств
По умолчанию hal автомонтирует все доступные (включая скрытые) разделы не смонтированные в /etc/fstab и создает ярлыки на рабочем столе для них. Чтобы переопределить это правило достаточно создать файл 90-user-methods.fdi в /etc/hal/fdi/policy со следующим содержанием:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="volume.fsusage" string="filesystem">
<merge key="volume.ignore" type="bool">true</merge>
<match key="@block.storage_device:storage.removable" bool="true">
<merge key="volume.ignore" type="bool">false</merge>
<merge key="storage.policy.should_mount" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>
Далее необходимо перезапустить hal:
# /etc/rc.d/hal restart
[edit] Возможные проблемы
[edit] Вставленный CD/DVD диск не распознается hal`ом
Если вставленный CDs/DVDs диски не распознаются hal`ом (не создаются иконки на рабочем столе), просмотрите файл /etc/fstab и удалите из него все строки, касающиеся оптических приводов.
[edit] USB диски и флешки не автомонтируются корректно
Данный подраздел взят с форума.
Если вы испытываете проблемы с автомонтированием usb дисков, но проблем с CD/DVD дисками у вас не возникает, и монтировать вручную USB диски вы можете, вы можете попробовать создать файл "preferences.fdi" в папке /etc/hal/fdi/policy и вставить туда следующую строку
<merge key="volume.ignore" type="bool">false</merge>
[edit] Группы Dbus and HAL
Некоторые пользователи считают, что HAL работает если ваш пользователь также является членом групп dbus и hal . Чтобы это проверить запустите следующие команды от пользователя root:
# gpasswd -a username dbus # gpasswd -a username hal
Если это не решит вашей проблемы удалите пользователя из этих групп на всякий случай, чтобы избежать в дальнейшем проблем:
# gpasswd -d username dbus # gpasswd -d username hal
[edit] Использвание PMount
Если всё вышеперечисленное у вас так и не заработало, то можете попробовать устоновить pmount. PMount - это обёртка для стандартного mount, позволяющая обычным пользователям монтировать устройства без прописывания их в /etc/fstab.
# pacman -Sy pmount