Difference between revisions of "HAL (Русский)"

From ArchWiki
Jump to navigation Jump to search
(Начальные установки)
Line 3: Line 3:
 
[[Category: Демоны и системные службы]]
 
[[Category: Демоны и системные службы]]
 
[[Category: Русские_HowTo]]
 
[[Category: Русские_HowTo]]
 +
 +
{{accuracy}}
  
 
{{i18n_links_start}}
 
{{i18n_links_start}}

Revision as of 15:46, 27 September 2008


Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:HAL (Русский)#)

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end

Обзор HAL

HAL (Hardware Abstraction Layer) это демон, который представляет программам быстрый доступ к информации об оборудовании. Взаимодействуя с HAL приложения сами могут определять и использовать железо, не обращая внимания на такие особенности как шина или тип устройства. Таким образом графический интерфейс оказывается способным представлять пользователю все ресурсы компьютера в однотипном и унифицированном виде.

Например, HAL способен собирать информацию об устройствах хранения информации (флешках, внешних HDD, и.пр.) и создавать иконки этих устройств на рабочем столе пользователя, упрощающие доступ к этим устройствам.

Начальные установки

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

Тонкости и хитрости

Автомонтирование 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>

Задание точки монтирования 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>

Автомонтирование только съёмных устройств

По умолчанию 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

Возможные проблемы

Вставленный CD/DVD диск не распознается hal`ом

Если вставленный CDs/DVDs диски не распознаются hal`ом (не создаются иконки на рабочем столе), просмотрите файл /etc/fstab и удалите из него все строки, касающиеся оптических приводов.

USB диски и флешки не автомонтируются корректно

Данный подраздел взят с форума.

Если вы испытываете проблемы с автомонтированием usb дисков, но проблем с CD/DVD дисками у вас не возникает, и монтировать вручную USB диски вы можете, вы можете попробовать создать файл "preferences.fdi" в папке /etc/hal/fdi/policy и вставить туда следующую строку

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

Группы Dbus and HAL

Некоторые пользователи считают, что HAL работает если ваш пользователь также является членом групп dbus и hal . Чтобы это проверить запустите следующие команды от пользователя root:

# gpasswd -a username dbus
# gpasswd -a username hal

Если это не решит вашей проблемы удалите пользователя из этих групп на всякий случай, чтобы избежать в дальнейшем проблем:

# gpasswd -d username dbus
# gpasswd -d username hal

Использвание PMount

Если всё вышеперечисленное у вас так и не заработало, то можете попробовать устоновить pmount. PMount - это обёртка для стандартного mount, позволяющая обычным пользователям монтировать устройства без прописывания их в /etc/fstab.

# pacman -Sy pmount