[sisyphus] Отвадить HAL от CD и DVD

Michael A. Kangin =?iso-8859-1?q?mak_=CE=C1_rsmu=2Eru?=
Пт Авг 1 20:38:18 MSD 2008


В сообщении от Friday 01 August 2008 19:24:13 Yury Aliaev написал(а):

> Я пытаюсь разобраться с халовским колдовством (в порядке изучения
> врага). Не могли бы Вы прокомментировать несколько моментов в Вашей
> fdi'шке?
>
> <?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
>
> <deviceinfo version="0.2">
>     <device>
> 	<match key="@block.storage_device:storage.drive_type" string="cdrom">
> 	      <merge key="volume.policy.should_mount" type="bool">false</merge>
> 	      <remove key="info.callouts.add" type="strlist">mount-hal-fs</remove>
> 	      <remove key="info.callouts.remove"
> type="strlist">mount-hal-fs</remove>
> 	</match>
>     </device>
>
> 1) Какой смысл выносить параметры из секции, имеющей в названии
> @block.storage_device:storage.drive_type в секцию, имеющую в названии
> @block.storage_device:storage.drive_type? 

Из откуда вкуда?

> Или этим как раз и 
> обеспечивается монтирование привода вместо носителя?

Здесь описываются правила для двух разных HAL-сущностей: в первом случае, для 
ТОМА, который возникает по факту вставления диска в привод и распознания его. 
То, что это ТОМ, создаваемый компакт-диском, определяется по ссылке на 
хранилище (storage) тома (volume), (нотация с @), свойство storage.drive_type 
этого хранилища должно иметь значение "cdrom". 
В базовых fdi'шках hal-mount-subfs настроено монтирование именно ТОМОВ, и тут 
мы это поведение исправляем: говорим, что том не должен монтироваться и 
удаляем упоминания об обработчиках монтирования/размонтирования.

>     <device>
> 	<match key="storage.drive_type" string="cdrom">

А вот здесь уже назначаются все свойства монтирования для хранилища, aka 
привода компакт-дисков.


> 		<merge key="storage.policy.should_mount" type="bool">true</merge>
> 		<append key="info.callouts.add" type="strlist">mount-hal-fs</append>
> 	        <prepend key="info.callouts.remove"
> type="strlist">mount-hal-fs</prepend>
> 		<remove key="volume.policy.should_mount"></remove>
>
> 		<merge key="storage.policy.mount_filesystem" type="string">subfs</merge>
> 		<merge key="storage.policy.mount_option.fs" type="string">cdfss</merge>
> 		<merge key="storage.policy.mount_options"
> type="string">nodev,nosuid,noexec,noatime,mode=0444,utf8,ro</merge>
>
> 		<append key="info.callouts.add" type="strlist">mount-hal-fs</append>
> 		<prepend key="info.callouts.remove" type="strlist">mount-hal-fs</prepend>
>
> 2) Две вышеприведённые строки уже встречались в данном блоке
> <match></match>. Их повторение имеет какой-то тайный, не ясный для меня
> смысл, или это просто опечатка?

Да, это просто опечатка :)
ни на что, впрочем, не влияющая. Спасибо, поправлю.

> 	</match>
>     </device>
> </deviceinfo>
>
>
> Прошу прощения за то, что вопросы, возможно, глупые. Просто всё
> околохаловское хозяйство сильно смахивает на запретную магию этак 50-й
> ступени, в которой я пока не силён...

Вротмненоги! 8)
Куча документации есть тут: 
http://people.freedesktop.org/~david/hal-spec/hal-spec.html
Ну и задумчивое фффтыкание в вывод hal-device.


-- 
wbr, Michael A. Kangin


Подробная информация о списке рассылки Sisyphus