ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] HAL как настроить?
@ 2005-02-18 22:36 Yura Zotov
  2005-02-22  9:33 ` Alexey Morozov
  2005-02-22 14:23 ` Zilke Pavel
  0 siblings, 2 replies; 4+ messages in thread
From: Yura Zotov @ 2005-02-18 22:36 UTC (permalink / raw)
  To: Sisyphus List

Подскажите, пожалуйста, как настраивается HAL? И где вообще к
нему документация?

Заранее спасибо за помощь.

--
Юрий А. Зотов



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [sisyphus] HAL как настроить?
  2005-02-18 22:36 [sisyphus] HAL как настроить? Yura Zotov
@ 2005-02-22  9:33 ` Alexey Morozov
  2005-02-23  0:33   ` Yura Zotov
  2005-02-22 14:23 ` Zilke Pavel
  1 sibling, 1 reply; 4+ messages in thread
From: Alexey Morozov @ 2005-02-22  9:33 UTC (permalink / raw)
  To: Sisyphus List

[-- Attachment #1: Type: text/plain, Size: 2757 bytes --]

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-шки - точно на месте :-).


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [sisyphus] HAL как настроить?
  2005-02-18 22:36 [sisyphus] HAL как настроить? Yura Zotov
  2005-02-22  9:33 ` Alexey Morozov
@ 2005-02-22 14:23 ` Zilke Pavel
  1 sibling, 0 replies; 4+ messages in thread
From: Zilke Pavel @ 2005-02-22 14:23 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Yura Zotov пишет:

>Подскажите, пожалуйста, как настраивается HAL? И где вообще к
>нему документация?
>
>Заранее спасибо за помощь.
>
>  
>
Я брал к нему документацию из архива найденного в дебиане:
http://debian.fapeal.br/debian/pool/main/h/hal/hal_0.4.7.orig.tar


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [sisyphus] HAL как настроить?
  2005-02-22  9:33 ` Alexey Morozov
@ 2005-02-23  0:33   ` Yura Zotov
  0 siblings, 0 replies; 4+ messages in thread
From: Yura Zotov @ 2005-02-23  0:33 UTC (permalink / raw)
  To: sisyphus

On Tue, Feb 22, 2005 at 03:33:48PM +0600, Alexey Morozov wrote:
> 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.

У меня есть USB-винчестер. hal его видит вот так:

udi = '/org/freedesktop/Hal/devices/block_8_0'
  storage.policy.should_mount = true  (bool)
  info.udi = '/org/freedesktop/Hal/devices/block_8_0'  (string)
  storage.requires_eject = false  (bool)
  storage.hotpluggable = true  (bool)
  storage.removable = false  (bool)
  info.product = 'Storage Device'  (string)
  info.vendor = 'USB 2.0'  (string)
  storage.drive_type = 'disk'  (string)
  block.storage_device = '/org/freedesktop/Hal/devices/block_8_0'  (string)
  storage.physical_device = '/org/freedesktop/Hal/devices/usb_usb_device_7c4_ad01_100_-1_00001000200000019900_0'  (string)
  storage.vendor = 'USB 2.0'  (string)
  storage.model = 'Storage Device'  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.no_partitions_hint = false  (bool)
  storage.media_check_enabled = true  (bool)
  storage.bus = 'usb'  (string)
  block.minor = 0  (0x0)  (int)
  block.major = 8  (0x8)  (int)
  info.capabilities = 'block storage'  (string)
  info.category = 'storage'  (string)
  block.device = '/dev/discs/disc1/disc'  (string)
  info.parent = '/org/freedesktop/Hal/devices/scsi_10_0_0_0'  (string)
  block.is_volume = false  (bool)
  block.have_scanned = false  (bool)
  block.no_partitions = false  (bool)
  linux.sysfs_path_device = '/sys/block/sda'  (string)
  linux.sysfs_path = '/sys/block/sda'  (string)
  info.bus = 'block'  (string)

Т.е. никаких опознавательных знаков нет, кроме physical_device.
Подскажите, пожалуйста, этот physical_device он на самом деле
уникальный для каждого устройства и не меняется вообще, или нет?
Да, и /org/freedesktop/Hal/devices в начале как-то смущают...
Кстати, не знаете, планируется ли добавить в <match> атрибут
regex? Хорошо бы...

Заранее спасибо за помощь.

--
Юрий А. Зотов



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-02-23  0:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-18 22:36 [sisyphus] HAL как настроить? Yura Zotov
2005-02-22  9:33 ` Alexey Morozov
2005-02-23  0:33   ` Yura Zotov
2005-02-22 14:23 ` Zilke Pavel

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git