Not sure if this is even possible to do with HAL... For example, my iPod as two partitions on it. 'sda1' has no filesystem; it's just the binary firmware image. 'sda2' has a vfat FS on it and is mountable. However, since normal USB flash disks use 'sda1', I have a /etc/fstab entry for it, and it shows up in the removable volume list. HAL says this of the device (22 is sda1, 23 is sda2, and 24 appears to be some virtual device describing that it's an audio player): 22: udi = '/org/freedesktop/Hal/devices/volume_part1_size_34099200' info.udi = '/org/freedesktop/Hal/devices/volume_part1_size_34099200' (string) volume.partition.msdos_part_table_type = 0 (0x0) (int) info.product = 'Volume' (string) volume.size = 34099200 (0x2085000) (uint64) volume.num_blocks = 66600 (0x10428) (int) volume.block_size = 512 (0x200) (int) volume.partition.number = 1 (0x1) (int) info.capabilities = { 'volume', 'block' } (string list) info.category = 'volume' (string) volume.is_partition = true (bool) volume.is_disc = false (bool) volume.is_mounted = false (bool) volume.mount_point = '' (string) volume.label = '' (string) volume.uuid = '' (string) volume.fsversion = '' (string) volume.fsusage = '' (string) volume.fstype = '' (string) block.storage_device = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) block.is_volume = true (bool) block.minor = 1 (0x1) (int) block.major = 8 (0x8) (int) block.device = '/dev/sda1' (string) linux.hotplug_type = 3 (0x3) (int) info.parent = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) linux.sysfs_path_device = '/sys/block/sda/sda1' (string) linux.sysfs_path = '/sys/block/sda/sda1' (string) 23: udi = '/org/freedesktop/Hal/devices/volume_uuid_4386_2443' volume.policy.desired_mount_point = 'ipod' (string) volume.policy.mount_filesystem = 'vfat' (string) volume.policy.should_mount = true (bool) info.udi = '/org/freedesktop/Hal/devices/volume_uuid_4386_2443' (string) volume.partition.msdos_part_table_type = 11 (0xb) (int) info.product = 'iPod' (string) volume.size = 4061637632 (0xf217ac00) (uint64) volume.num_blocks = 7932886 (0x790bd6) (int) volume.block_size = 512 (0x200) (int) volume.partition.number = 2 (0x2) (int) info.capabilities = { 'volume', 'block' } (string list) info.category = 'volume' (string) volume.is_partition = true (bool) volume.is_disc = false (bool) volume.is_mounted = false (bool) volume.mount_point = '' (string) volume.label = 'iPod' (string) volume.uuid = '4386-2443' (string) volume.fsversion = 'FAT32' (string) volume.fsusage = 'filesystem' (string) volume.fstype = 'vfat' (string) block.storage_device = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) block.is_volume = true (bool) block.minor = 2 (0x2) (int) block.major = 8 (0x8) (int) block.device = '/dev/ipod' (string) linux.hotplug_type = 3 (0x3) (int) info.parent = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) linux.sysfs_path_device = '/sys/block/sda/sda2' (string) linux.sysfs_path = '/sys/block/sda/sda2' (string) 24: udi = '/org/freedesktop/Hal/devices/storage_model_iPod' info.addons = { 'hald-addon-storage' } (string list) storage.policy.should_mount = true (bool) portable_audio_player.output_formats = { 'audio/mpeg', 'audio/aac' } (string list) portable_audio_player.storage_device = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) portable_audio_player.type = 'ipod' (string) portable_audio_player.access_method = 'storage' (string) block.storage_device = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) info.udi = '/org/freedesktop/Hal/devices/storage_model_iPod' (string) storage.requires_eject = true (bool) storage.hotpluggable = true (bool) info.capabilities = { 'storage', 'block', 'portable_audio_player' } (string list) info.category = 'storage' (string) info.product = 'iPod' (string) info.vendor = 'Apple' (string) storage.removable = true (bool) storage.physical_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1205_000000D2AD77_if0' (string) storage.lun = 0 (0x0) (int) storage.drive_type = 'disk' (string) storage.vendor = 'Apple' (string) storage.model = 'iPod' (string) storage.automount_enabled_hint = true (bool) storage.media_check_enabled = true (bool) storage.no_partitions_hint = false (bool) storage.bus = 'usb' (string) block.is_volume = false (bool) block.minor = 0 (0x0) (int) block.major = 8 (0x8) (int) block.device = '/dev/sda' (string) linux.hotplug_type = 3 (0x3) (int) info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1205_000000D2AD77_if0_scsi_host_scsi_device_lun0' (string) linux.sysfs_path_device = '/sys/block/sda' (string) linux.sysfs_path = '/sys/block/sda' (string)
We currently use only devices with capability 'volume' (block.is_volume=true). We could probably filter on the fstype as well, dunno.
Can you provide a patch for this one? Otherwise I'll move this one to later milestone.
The interesting thing is that at some point the unmountable sda1 stopped appearing both in thunar and xfdesktop's removable volumes list, and now I just get one icon that says 'iPod'. I'm not sure what changed - maybe a HAL update? Perhaps it's correctly noting that it's not mountable now? Not sure. Anyway, I don't have time to look at it, so feel free to move it to future.
Moving to 0.4.0rc1.
Resolving to INVALID for now. Reopen on-demand.