[sisyphus] HAL как настроить?
Alexey Morozov
alex-altlinux на idisys.iae.nsk.su
Вт Фев 22 12:33:48 MSK 2005
On Sat, Feb 19, 2005 at 01:36:29AM +0300, Yura Zotov wrote:
> Подскажите, пожалуйста, как настраивается HAL? И где вообще к
> нему документация?
Feel the power Luke, trust your schwartz!
Документация по нему - в его конфигурационных файлах
(они XML'ки). Лежат в /usr/share/hal/fdi.
Я немного тормозил, прежде чем понял, как с уровня, скажем,
"тома" (volume) обратиться к свойствам железки,
полчаса медитирования над исходниками дали мне в итоге
такое решение (/usr/share/hal/fdi/95userpolicy/4in1-card-reader.fdi):
------------------8<--->8---------------
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.bus" string="usb">
<match key="usb.vendor_id" int="0x05e3">
<match key="usb.product_id" int="0x0760">
<merge key="storage_lun0.drive_type" type="string">compact_flash</merge>
<merge key="storage_lun1.drive_type" type="string">memory_stick</merge>
<merge key="storage_lun2.drive_type" type="string">sd_mmc</merge>
<merge key="storage_lun3.drive_type" type="string">smart_media</merge>
</match>
</match>
</match>
<match key="@info.parent:@info.parent:@info.parent:@info.parent:usb.vendor_id" int="0x05e3">
<match key="@info.parent:@info.parent:@info.parent:@info.parent:usb.product_id" int="0x0760">
<merge key="volume.policy.desired_mount_point" type="copy_property">@info.parent:storage.drive_type</merge>
</match>
</match>
</device>
</deviceinfo>
------------------8<--->8---------------
То есть, в первой части мы даем "названия типов" различным типам слотов
(это, в силу некоторой "магической логики" HAL можно сделать прямо с
"уровня устройства".
Во второй части мы, находясь на уровне volume (самом нижнем),
проверяем есть ли у нашего "пра-пра-дедушки в дереве устройств"
свойство usb.vendor_id равное 0x05e3 итп, и, если все хорошо,
то копируем родительское свойство drive_type себе в свойство
volume.policy.desired_mount_point (относительно /media, тоже
конфигурируется где-то в недрах /usr/share/hal/fdi).
Возможно, есть более короткие пути решения поставленной задачи, но я
своей цели достиг, и у меня есть игры поинтереснее FDI-гольфа :-).
Вообще, думается, что поколение XSLT счастливо иметь в качестве конфигов
такую игрушку :-)
Дерево устройств можно глядеть в hal-device-manager, kdevicemanager
(kvm), ну, и верятно, другими способами, там все более-менее просто
устроено в части API.
С уважением, Алексей Морозов.
P.S. Disclaimer: я не уверен в том, что в моем устройств первый слот
соответствует memory stick, а 3-ий - smart media, проверять не на чем.
CF'ки и SD-шки - точно на месте :-).
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.ru/pipermail/sisyphus/attachments/20050222/2ccf3c26/attachment.bin
Подробная информация о списке рассылки Sisyphus