Code: Select all
<!-- example - mount volume with UUID 4170-DC9F accessible only for user with UID 1000 -->
<ivm:Match name="hal.volume.uuid" value="4170-DC9F">
<ivm:Option name="mountoption" value="umask=0077" />
<ivm:Option name="mountoption" value="uid=1000" />
</ivm:Match>
<!-- example - don't mount /dev/camera -->
<ivm:Match name="hal.block.device" value="/dev/camera">
<ivm:Option name="mount" value="false" />
</ivm:Match>
<!-- example - log whenever someone mounts or unmounts a device -->
<ivm:Match name="ivm.mountable" value="true">
<ivm:Option name="exec" value="/bin/sh -c 'echo %d mounted at `date` >> /var/log/mounts'" />
<ivm:Option name="execun" value="/bin/sh -c 'echo unmounted at `date` >> /var/log/mounts'" />
</ivm:Match>
Code: Select all
/usr/lib/libIvmConfig.a
/usr/lib/libIvmConfig.0.0.0
/usr/lib/libIvmConfig.la
/usr/lib/libIvmConfig.0 -> libIvmConfig.0.0.0 1103209948
/usr/lib/libIvmConfig -> libIvmConfig.0.0.0 1103209948
Code: Select all
rw-r--r-- 1 root root 12636 dic 16 22:31 /usr/lib/libIvmConfig.a
-rwxr-xr-x 1 root root 982 dic 16 22:31 /usr/lib/libIvmConfig.la
lrwxrwxrwx 1 root root 21 dic 16 22:31 /usr/lib/libIvmConfig.so -> libIvmConfig.so.0.0.0
lrwxrwxrwx 1 root root 21 dic 16 22:31 /usr/lib/libIvmConfig.so.0 -> libIvmConfig.so.0.0.0
-rwxr-xr-x 1 root root 11636 dic 16 22:31 /usr/lib/libIvmConfig.so.0.0.0
Code: Select all
<merge key="storage.policy.default.mount_option.users" type="bool">true</merge>
Code: Select all
<ivm:Match name="hal.volume.uuid" value="0bad-f00d">
<ivm:Option name="mount" value="false" />
</ivm:Match>
Code: Select all
MD5 6faad9e6dfb54e700bf6fe105e008ca2 ivman-0.4_rc1.tar.bz2 205862
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<ivm:ActionsConfig version="0.2" xmlns:ivm="http://www.eikke.com/ivm">
<!-- unlock everything - harmless for devices without tray locking -->
<ivm:Option name="unlock" value="true" />
<ivm:Match name="hal.volume.uuid" value="5C06-B183">
<ivm:Option name="mount" value="false" />
</ivm:Match>
<ivm:Match name="hal.volume.uuid" value="ecb0c588-45b8-47d7-96e0-9ee4417e2984">
<ivm:Option name="mount" value="false" />
</ivm:Match>
<!-- try to mount any mountable volume at all -->
<ivm:Match name="ivm.mountable" value="true">
<ivm:Option name="mount" value="true" />
</ivm:Match>
<!-- don't try to mount audio CDs -->
<ivm:Match name="hal.volume.disc.has_audio" value="true">
<ivm:Match name="hal.volume.disc.has_data" value="false">
<ivm:Option name="mount" value="false" />
</ivm:Match>
</ivm:Match>
<!-- mount some non-Linux filesystems read/write for everyone -->
<ivm:Match name="hal.volume.fstype" value="vfat">
<ivm:Option name="mountoption" value="umask=0000" />
</ivm:Match>
<ivm:Match name="hal.volume.fstype" value="ntfs">
<ivm:Option name="mountoption" value="umask=0000" />
</ivm:Match>
<ivm:Match name="hal.volume.fstype" value="npfs">
<ivm:Option name="mountoption" value="umask=0000" />
</ivm:Match>
<ivm:Match name="hal.volume.fstype" value="udf">
<ivm:Option name="mountoption" value="umask=0000" />
</ivm:Match>
<!-- example - autoplay CDs with audio tracks and no data tracks -->
<!--
<ivm:Match name="hal.volume.disc.type" value="cd_rom">
<ivm:Match name="hal.volume.disc.has_audio" value="true">
<ivm:Match name="hal.volume.disc.has_data" value="false">
<ivm:Option name="exec" value="cdplay -d %d -c" />
<ivm:Option name="execas" value="nobody" />
</ivm:Match>
</ivm:Match>
</ivm:Match>
-->
<!-- example - autoplay video DVDs -->
<!-- video DVD detection is an ugly hack at the moment, because it's not
possible to tell if a DVD contains video without mounting it first.
That's why we don't use a 'Match' to tell if a volume is a video
DVD yet. -->
<!--
<ivm:Option name="execdvd" value="/usr/bin/mplayer dvd://1 -really-quiet -fs" />
-->
<!-- example - mount volume with UUID 4170-DC9F accessible only for
user with UID 1000 -->
<!--
<ivm:Match name="hal.volume.uuid" value="4170-DC9F">
<ivm:Option name="mountoption" value="umask=0077" />
<ivm:Option name="mountoption" value="uid=1000" />
</ivm:Match>
-->
<!-- example - don't mount /dev/camera -->
<!--
<ivm:Match name="hal.block.device" value="/dev/camera">
<ivm:Option name="mount" value="false" />
</ivm:Match>
-->
<!-- example - log whenever someone mounts or unmounts a device -->
<!--
<ivm:Match name="ivm.mountable" value="true">
<ivm:Option name="exec" value="/bin/sh -c 'echo %d mounted at `date` >> /tmp/mounts'" />
<ivm:Option name="execun" value="/bin/sh -c 'echo unmounted at `date` >> /tmp/mounts'" />
</ivm:Match>
-->
</ivm:ActionsConfig> Code: Select all
<device>
<match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
<merge key="storage.policy.default.mount_root" type="string">/media</merge>
<merge key="storage.policy.default.use_managed_keyword" type="bool">true</merge>
<merge key="storage.policy.default.managed_keyword.primary" type="string">managed</merge>
<merge key="storage.policy.default.managed_keyword.secondary" type="string">kudzu</merge>
<merge key="storage.policy.default.mount_option.noauto" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.pamconsole" type="bool">false</merge>
<merge key="storage.policy.default.mount_option.users" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.exec" type="bool">true</merge>
</match>
</device>
I dont know about that, i only had a video-dvd lying around. I can get a data-dvd, but probably not before monday.rohan28 wrote: I'm also curious about video DVDs - I was under the impression that video DVDs are just like data DVDs, except they contain video. But if people are having problems ejecting video DVDs and not data DVDs, I guess that's not the case![]()
Code: Select all
Dec 18 08:46:17 charon ivman: Property modified on device: /org/freedesktop/Hal/devices/block_3_0
Dec 18 08:46:17 charon ivman: Property modified on device: /org/freedesktop/Hal/devices/block_3_0
Dec 18 08:46:18 charon ivman: New Device: /org/freedesktop/Hal/devices/block_OEL_DVD
Dec 18 08:46:18 charon ivman: Attempting to mount /dev/hda
Dec 18 08:46:18 charon ivman: Calling /bin/mount -o umask=0000 /dev/hda
Code: Select all
Dec 18 12:03:04 charon ivman: Property modified on device: /org/freedesktop/Hal/devices/block_OEL_DVD
Dec 18 12:03:04 charon ivman: Mounted: /org/freedesktop/Hal/devices/block_OEL_DVD
Dec 18 12:03:04 charon ivman: Devices table has 5 entries
Dec 18 12:03:04 charon ivman: "/org/freedesktop/Hal/devices/block_b20b2ac2-14f7-469b-88e5-885474827036" "/"
Dec 18 12:03:04 charon ivman: "/org/freedesktop/Hal/devices/block_BA48-6399" "/media/_XTERNALDOS"
Dec 18 12:03:04 charon ivman: "/org/freedesktop/Hal/devices/block_d1f2a75a-35eb-4739-aa4d-69925a08ecb1" "/home"
Dec 18 12:03:04 charon ivman: "/org/freedesktop/Hal/devices/block_OEL_DVD" "/media/cdrecorder"
Dec 18 12:03:04 charon ivman: "/org/freedesktop/Hal/devices/block_c1a18590-6e62-4875-aeb4-09ada08e2917" "/media/usbdisk"
Dec 18 12:03:04 charon ivman: Property modified on device: /org/freedesktop/Hal/devices/block_OEL_DVD
Dec 18 12:03:04 charon ivman: Property modified on device: /org/freedesktop/Hal/devices/block_OEL_DVD
Dec 18 12:03:04 charon ivman: Event received but no action taken Name: VolumeMount
Code: Select all
udi = '/org/freedesktop/Hal/devices/block_3_0'
volume.is_partition = false (bool)
storage.policy.desired_mount_point = 'cdrecorder' (string)
storage.policy.mount_filesystem = 'auto' (string)
storage.policy.should_mount = true (bool)
info.udi = '/org/freedesktop/Hal/devices/block_3_0' (string)
storage.requires_eject = true (bool)
storage.hotpluggable = false (bool)
storage.cdrom.write_speed = 8467 (0x2113) (int)
storage.cdrom.read_speed = 8467 (0x2113) (int)
storage.cdrom.support_media_changed = true (bool)
storage.cdrom.dvdplusrw = true (bool)
storage.cdrom.dvdplusr = true (bool)
storage.cdrom.dvdram = false (bool)
storage.cdrom.dvdrw = false (bool)
storage.cdrom.dvdr = true (bool)
storage.cdrom.dvd = true (bool)
storage.cdrom.cdrw = true (bool)
storage.cdrom.cdr = true (bool)
storage.removable = true (bool)
storage.firmware_version = '2.16' (string)
info.product = '_NEC DVD_RW ND-3500AG' (string)
storage.drive_type = 'cdrom' (string)
block.storage_device = '/org/freedesktop/Hal/devices/block_3_0' (string)
storage.physical_device = '/org/freedesktop/Hal/devices/ide_0_0' (string)
storage.vendor = '' (string)
storage.model = '_NEC DVD_RW ND-3500AG' (string)
storage.automount_enabled_hint = true (bool)
storage.no_partitions_hint = true (bool)
storage.media_check_enabled = true (bool)
storage.bus = 'ide' (string)
block.minor = 0 (0x0) (int)
block.major = 3 (0x3) (int)
info.capabilities = 'block storage.cdrom storage' (string)
info.category = 'storage' (string)
info.parent = '/org/freedesktop/Hal/devices/ide_0_0' (string)
block.device = '/dev/hda' (string)
block.is_volume = false (bool)
block.have_scanned = true (bool)
block.no_partitions = true (bool)
linux.sysfs_path_device = '/sys/block/hda' (string)
linux.sysfs_path = '/sys/block/hda' (string)
info.bus = 'block' (string)
Code: Select all
udi = '/org/freedesktop/Hal/devices/block_Shrek 2'
info.udi = '/org/freedesktop/Hal/devices/block_Shrek 2' (string)
volume.disc.is_rewritable = false (bool)
volume.disc.is_appendable = false (bool)
volume.disc.is_blank = false (bool)
volume.disc.has_data = true (bool)
volume.disc.has_audio = false (bool)
volume.disc.type = 'dvd_rom' (string)
volume.size = 4294965248 (0xfffff800) (uint64)
volume.block_size = 2048 (0x800) (int)
volume.num_blocks = 9193984 (0x8c4a00) (int)
volume.is_disc = true (bool)
volume.is_mounted = false (bool)
volume.mount_point = '' (string)
volume.label = 'Shrek 2' (string)
volume.uuid = '' (string)
volume.fsversion = '' (string)
volume.fsusage = 'filesystem' (string)
volume.fstype = 'udf' (string)
info.product = 'Shrek 2' (string)
info.parent = '/org/freedesktop/Hal/devices/block_22_0' (string)
info.category = 'volume' (string)
info.capabilities = 'block volume' (string)
info.bus = 'block' (string)
block.no_partitions = true (bool)
block.have_scanned = false (bool)
block.is_volume = true (bool)
block.device = '/dev/hdc' (string)
block.major = 22 (0x16) (int)
block.minor = 0 (0x0) (int)
block.storage_device = '/org/freedesktop/Hal/devices/block_22_0' (string)
Code: Select all
/dev/hdc /mnt/dvd auto noauto,user,exec,ro,unhide 0 0Hmm, well I guess the mount man-page lied to me thenIf i comment the udf option... Yes!! it gets mounted
Its the same here, if i comment out the udf line it gets mounted.rohan28 wrote:Anyone having problems with video DVDs, try commenting the UDF lineIf i comment the udf option... Yes!! it gets mounted
No problemThere's some more I'd like though (sorry to bug you)
Code: Select all
/dev/hda /media/cdrecorder auto exec,user,noauto,managed 0 0
Code: Select all
udi = '/org/freedesktop/Hal/devices/block_OEL_DVD'
info.udi = '/org/freedesktop/Hal/devices/block_OEL_DVD' (string)
volume.disc.is_rewritable = false (bool)
volume.disc.is_appendable = false (bool)
volume.disc.is_blank = false (bool)
volume.disc.has_data = true (bool)
volume.disc.has_audio = false (bool)
volume.disc.type = 'dvd_rom' (string)
volume.size = 4294965248 (0xfffff800) (uint64)
volume.block_size = 2048 (0x800) (int)
volume.num_blocks = 6931836 (0x69c57c) (int)
volume.is_disc = true (bool)
volume.is_mounted = true (bool)
volume.mount_point = '/media/cdrecorder' (string)
volume.label = 'OEL_DVD' (string)
volume.uuid = '' (string)
volume.fsversion = '' (string)
volume.fsusage = 'filesystem' (string)
volume.fstype = 'iso9660' (string)
info.product = 'OEL_DVD' (string)
info.parent = '/org/freedesktop/Hal/devices/block_3_0' (string)
info.category = 'volume' (string)
info.capabilities = 'block volume' (string)
info.bus = 'block' (string)
block.no_partitions = true (bool)
block.have_scanned = false (bool)
block.is_volume = true (bool)
block.device = '/dev/hda' (string)
block.major = 3 (0x3) (int)
block.minor = 0 (0x0) (int)
block.storage_device = '/org/freedesktop/Hal/devices/block_3_0' (string)

Code: Select all
Ikke's Volume Manager, http://ivman.sf.net
hal_interface.c:133 (hal_property_modified) Property modified on device: /org/freedesktop/Hal/devices/block_22_0
hal_interface.c:40 (hal_device_added) New Device: /org/freedesktop/Hal/devices/block_SMC7204BRA
libhal.c 1134 : Error sending msg: No property volume.policy.should_mount on device with id /org/freedesktop/Hal/devices/block_SMC7204BRA
libhal.c 1134 : Error sending msg: No property storage.policy.should_mount on device with id /org/freedesktop/Hal/devices/block_22_0
IvmConfigActions.c:58 (parseIvmConfigActions) /dev/hdc does not appear to be mountable