Weird bugs processing fdi files

Jeff Mitchell kde-dev at emailgoeshere.com
Thu Apr 26 13:07:38 PDT 2007


I'm sending to this list at the request of David Zeuthen.  Using 
hal-0.5.9 on Gentoo.

I'm writing a fdi file so that the iPod I'm testing with (which is not 
mine, but I can hopefully get back to test further) gets some keys 
installed.  Specifically, I'm trying to:

-Override the portable_audio_player.access_method (default from 
10-usb-music-players.fdi of "storage") to "libgpod"
-Add a key called libgpod.name with the data "iPod Shuffle (2G)

I've tried doing this two ways, both of which should have worked 
according to the folks in #hal.  One method doesn't work at all, and the 
other method inserts the keys into the wrong place.

Attached is lshal_original.txt, which contains the relevant output with 
no custom rules (and with the first method below), and 
lshal_method2.txt, which contains the relevant output with the keys in 
the incorrect location (from the second method below).

First method:

    <match key="info.category" string="storage">
      <match key="storage.vendor" contains="Apple">
        <match key="storage.model" contains="iPod">
          <match key="@storage.physical_device:usb.vendor_id" int="0x05ac">
            <match key="@storage.physical_device:usb.product_id" 
int="0x1301">
              <merge key="portable_audio_player.access_method" 
type="string">libgpod</merge>
              <append key="libgpod.name" type="string">iPod Shuffle 
(2G)</append>
            </match>
          </match>
        </match>
      </match>
    </match>

This uses the same structure as in 10-usb-music-players.fdi.  It then 
goes deeper, checking the vendor_id ad product_id.  The two values are 
correct (they match in the other method).  This method, I get absolutely 
no change at all; lshal -lt produces the exact same output as when those 
rules are not in place (other than some device paths).

Second method:

    <match key="info.bus" string="usb">
      <match key="usb.vendor_id" int="0x05ac">
        <match key="usb.product_id" int="0x1301">
          <merge key="portable_audio_player.access_method" 
type="string">libgpod</merge>
          <append key="libgpod.name" type="string">iPod Shuffle 
(2G)</append>
        </match>
      </match>
    </match>

This method does produce a match, and the keys do get merged in.  
However, (using the names from the hal-device-manager GUI) the iPod has 
the following structure:
iPod
->USB Mass Storage Interface
-->SCSI Host Adapter
--->SCSI Device
---->iPod
----->ORANGE

 From 10-usb-music-players.fdi, the various portable_audio_player.xyz 
keys are located under the second iPod entry (child of SCSI Device).  
However, the two keys that are added by my fdi rule instead get placed 
under USB Mass Storage Interface, instead of being placed with the others.

The behavior under both of these conditions was confirmed to me as buggy 
in #hal.  Hopefully you guys will be able to figure out what's going on, 
and how it can be fixed.

Let me know if I can help.

Thanks,
Jeff

-------------- next part --------------
udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'
  info.bus = 'usb_device'  (string)
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'  (string)
  info.product = 'iPod'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.vendor = 'Apple Computer, Inc.'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
  usb_device.bus_number = 1  (0x1)  (int)
  usb_device.can_wake_up = false  (bool)
  usb_device.configuration = 'High Power, High Speed'  (string)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 0  (0x0)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 256  (0x100)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = false  (bool)
  usb_device.linux.device_number = 18  (0x12)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
  usb_device.max_power = 500  (0x1f4)  (int)
  usb_device.num_configurations = 2  (0x2)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 0  (0x0)  (int)
  usb_device.product = 'iPod'  (string)
  usb_device.product_id = 4865  (0x1301)  (int)
  usb_device.serial = '000A2700111D84F4'  (string)
  usb_device.speed = 480.0 (480) (double)
  usb_device.speed_bcd = 294912  (0x48000)  (int)
  usb_device.vendor = 'Apple Computer, Inc.'  (string)
  usb_device.vendor_id = 1452  (0x5ac)  (int)
  usb_device.version = 2.0 (2) (double)
  usb_device.version_bcd = 512  (0x200)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'
  info.bus = 'usb'  (string)
  info.linux.driver = 'usb-storage'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.product = 'USB Mass Storage Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0'  (string)
  usb.bus_number = 1  (0x1)  (int)
  usb.can_wake_up = false  (bool)
  usb.configuration = 'High Power, High Speed'  (string)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 0  (0x0)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 256  (0x100)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 8  (0x8)  (int)
  usb.interface.description = 'Mass Storage Interface'  (string)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 80  (0x50)  (int)
  usb.interface.subclass = 6  (0x6)  (int)
  usb.is_self_powered = false  (bool)
  usb.linux.device_number = 18  (0x12)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0'  (string)
  usb.max_power = 500  (0x1f4)  (int)
  usb.num_configurations = 2  (0x2)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Mass Storage Interface'  (string)
  usb.product_id = 4865  (0x1301)  (int)
  usb.serial = '000A2700111D84F4'  (string)
  usb.speed = 480.0 (480) (double)
  usb.speed_bcd = 294912  (0x48000)  (int)
  usb.vendor = 'Apple Computer, Inc.'  (string)
  usb.vendor_id = 1452  (0x5ac)  (int)
  usb.version = 2.0 (2) (double)
  usb.version_bcd = 512  (0x200)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'
  info.capabilities = {'scsi_host'} (string list)
  info.category = 'scsi_host'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  info.product = 'SCSI Host Adapter'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi_host'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/host14'  (string)
  scsi_host.host = 14  (0xe)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'
  info.bus = 'scsi'  (string)
  info.linux.driver = 'sd'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'  (string)
  info.product = 'SCSI Device'  (string)
  info.subsystem = 'scsi'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/host14/target14:0:0/14:0:0:0'  (string)
  scsi.bus = 0  (0x0)  (int)
  scsi.host = 14  (0xe)  (int)
  scsi.lun = 0  (0x0)  (int)
  scsi.model = 'iPod'  (string)
  scsi.target = 0  (0x0)  (int)
  scsi.type = 'disk'  (string)
  scsi.vendor = 'Apple'  (string)

udi = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'
  block.device = '/dev/sdb'  (string)
  block.is_volume = false  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 16  (0x10)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.addons = {'hald-addon-storage'} (string list)
  info.capabilities = {'storage', 'block', 'portable_audio_player'} (string list)
  info.category = 'portable_audio_player'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  info.product = 'iPod'  (string)
  info.udi = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.vendor = 'Apple'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sdb'  (string)
  org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
  org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
  org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
  portable_audio_player.access_method = 'storage'  (string)
  portable_audio_player.output_formats = {'audio/aac', 'audio/mpeg'} (string list)
  portable_audio_player.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  portable_audio_player.type = 'ipod'  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.bus = 'usb'  (string)
  storage.drive_type = 'disk'  (string)
  storage.firmware_version = '2.70'  (string)
  storage.hotpluggable = true  (bool)
  storage.lun = 0  (0x0)  (int)
  storage.media_check_enabled = true  (bool)
  storage.model = 'iPod'  (string)
  storage.no_partitions_hint = false  (bool)
  storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  storage.partitioning_scheme = 'none'  (string)
  storage.physical_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  storage.removable = true  (bool)
  storage.removable.media_available = true  (bool)
  storage.removable.media_size = 1015021568  (0x3c800000)  (uint64)
  storage.requires_eject = true  (bool)
  storage.serial = 'Apple_iPod_000A2700111D84F4'  (string)
  storage.size = 0  (0x0)  (uint64)
  storage.vendor = 'Apple'  (string)

udi = '/org/freedesktop/Hal/devices/volume_uuid_902C_8F76'
  block.device = '/dev/sdb'  (string)
  block.is_volume = true  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 16  (0x10)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.capabilities = {'volume', 'block'} (string list)
  info.category = 'volume'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.product = 'ORANGE'  (string)
  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_902C_8F76'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sdb/fakevolume'  (string)
  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)
  storage.model = ''  (string)
  volume.block_size = 2048  (0x800)  (int)
  volume.fstype = 'vfat'  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fsversion = 'FAT32'  (string)
  volume.ignore = false  (bool)
  volume.is_disc = false  (bool)
  volume.is_mounted = false  (bool)
  volume.is_mounted_read_only = false  (bool)
  volume.is_partition = false  (bool)
  volume.label = 'ORANGE'  (string)
  volume.linux.is_device_mapper = false  (bool)
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec', 'utf8', 'shortname=', 'codepage=', 'iocharset=', 'umask=', 'dmask=', 'fmask=', 'uid='} (string list)
  volume.mount_point = ''  (string)
  volume.num_blocks = 1982464  (0x1e4000)  (int)
  volume.size = 1015021568  (0x3c800000)  (uint64)
  volume.unmount.valid_options = {'lazy'} (string list)
  volume.uuid = '902C-8F76'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0_scsi_generic'
  info.capabilities = {'scsi_generic'} (string list)
  info.category = 'scsi_generic'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  info.product = 'SCSI Generic Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0_scsi_generic'  (string)
  linux.device_file = '/dev/sg1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi_generic'  (string)
  linux.sysfs_path = '/sys/class/scsi_generic/sg1'  (string)
  scsi_generic.device = '/dev/sg1'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/001/018'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev1.18'  (string)
  usbraw.device = '/dev/bus/usb/001/018'  (string)

-------------- next part --------------
udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'
  info.bus = 'usb_device'  (string)
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'  (string)
  info.product = 'iPod'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.vendor = 'Apple Computer, Inc.'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
  usb_device.bus_number = 1  (0x1)  (int)
  usb_device.can_wake_up = false  (bool)
  usb_device.configuration = 'High Power, High Speed'  (string)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 0  (0x0)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 256  (0x100)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = false  (bool)
  usb_device.linux.device_number = 22  (0x16)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
  usb_device.max_power = 500  (0x1f4)  (int)
  usb_device.num_configurations = 2  (0x2)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 0  (0x0)  (int)
  usb_device.product = 'iPod'  (string)
  usb_device.product_id = 4865  (0x1301)  (int)
  usb_device.serial = '000A2700111D84F4'  (string)
  usb_device.speed = 480.0 (480) (double)
  usb_device.speed_bcd = 294912  (0x48000)  (int)
  usb_device.vendor = 'Apple Computer, Inc.'  (string)
  usb_device.vendor_id = 1452  (0x5ac)  (int)
  usb_device.version = 2.0 (2) (double)
  usb_device.version_bcd = 512  (0x200)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'
  info.bus = 'usb'  (string)
  info.linux.driver = 'usb-storage'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.product = 'USB Mass Storage Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  libgpod.name = 'iPod Shuffle (2G)'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0'  (string)
  portable_audio_player.access_method = 'libgpod'  (string)
  usb.bus_number = 1  (0x1)  (int)
  usb.can_wake_up = false  (bool)
  usb.configuration = 'High Power, High Speed'  (string)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 0  (0x0)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 256  (0x100)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 8  (0x8)  (int)
  usb.interface.description = 'Mass Storage Interface'  (string)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 80  (0x50)  (int)
  usb.interface.subclass = 6  (0x6)  (int)
  usb.is_self_powered = false  (bool)
  usb.linux.device_number = 22  (0x16)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0'  (string)
  usb.max_power = 500  (0x1f4)  (int)
  usb.num_configurations = 2  (0x2)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Mass Storage Interface'  (string)
  usb.product_id = 4865  (0x1301)  (int)
  usb.serial = '000A2700111D84F4'  (string)
  usb.speed = 480.0 (480) (double)
  usb.speed_bcd = 294912  (0x48000)  (int)
  usb.vendor = 'Apple Computer, Inc.'  (string)
  usb.vendor_id = 1452  (0x5ac)  (int)
  usb.version = 2.0 (2) (double)
  usb.version_bcd = 512  (0x200)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'
  info.capabilities = {'scsi_host'} (string list)
  info.category = 'scsi_host'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  info.product = 'SCSI Host Adapter'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi_host'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/host18'  (string)
  scsi_host.host = 18  (0x12)  (int)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'
  info.bus = 'scsi'  (string)
  info.linux.driver = 'sd'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host'  (string)
  info.product = 'SCSI Device'  (string)
  info.subsystem = 'scsi'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/host18/target18:0:0/18:0:0:0'  (string)
  scsi.bus = 0  (0x0)  (int)
  scsi.host = 18  (0x12)  (int)
  scsi.lun = 0  (0x0)  (int)
  scsi.model = 'iPod'  (string)
  scsi.target = 0  (0x0)  (int)
  scsi.type = 'disk'  (string)
  scsi.vendor = 'Apple'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0_scsi_generic'
  info.capabilities = {'scsi_generic'} (string list)
  info.category = 'scsi_generic'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  info.product = 'SCSI Generic Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0_scsi_generic'  (string)
  linux.device_file = '/dev/sg1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'scsi_generic'  (string)
  linux.sysfs_path = '/sys/class/scsi_generic/sg1'  (string)
  scsi_generic.device = '/dev/sg1'  (string)

udi = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'
  block.device = '/dev/sdb'  (string)
  block.is_volume = false  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 16  (0x10)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.addons = {'hald-addon-storage'} (string list)
  info.capabilities = {'storage', 'block', 'portable_audio_player'} (string list)
  info.category = 'portable_audio_player'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Storage', 'org.freedesktop.Hal.Device.Storage'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0_scsi_host_scsi_device_lun0'  (string)
  info.product = 'iPod'  (string)
  info.udi = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.vendor = 'Apple'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sdb'  (string)
  org.freedesktop.Hal.Device.Storage.method_argnames = {'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Storage.method_execpaths = {'hal-storage-eject', 'hal-storage-closetray'} (string list)
  org.freedesktop.Hal.Device.Storage.method_names = {'Eject', 'CloseTray'} (string list)
  org.freedesktop.Hal.Device.Storage.method_signatures = {'as', 'as'} (string list)
  portable_audio_player.access_method = 'storage'  (string)
  portable_audio_player.output_formats = {'audio/aac', 'audio/mpeg'} (string list)
  portable_audio_player.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  portable_audio_player.type = 'ipod'  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.bus = 'usb'  (string)
  storage.drive_type = 'disk'  (string)
  storage.firmware_version = '2.70'  (string)
  storage.hotpluggable = true  (bool)
  storage.lun = 0  (0x0)  (int)
  storage.media_check_enabled = true  (bool)
  storage.model = 'iPod'  (string)
  storage.no_partitions_hint = false  (bool)
  storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  storage.partitioning_scheme = 'none'  (string)
  storage.physical_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_if0'  (string)
  storage.removable = true  (bool)
  storage.removable.media_available = true  (bool)
  storage.removable.media_size = 1015021568  (0x3c800000)  (uint64)
  storage.requires_eject = true  (bool)
  storage.serial = 'Apple_iPod_000A2700111D84F4'  (string)
  storage.size = 0  (0x0)  (uint64)
  storage.vendor = 'Apple'  (string)

udi = '/org/freedesktop/Hal/devices/volume_uuid_902C_8F76'
  block.device = '/dev/sdb'  (string)
  block.is_volume = true  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 16  (0x10)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.capabilities = {'volume', 'block'} (string list)
  info.category = 'volume'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A2700111D84F4'  (string)
  info.product = 'ORANGE'  (string)
  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_902C_8F76'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sdb/fakevolume'  (string)
  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)
  storage.model = ''  (string)
  volume.block_size = 2048  (0x800)  (int)
  volume.fstype = 'vfat'  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fsversion = 'FAT32'  (string)
  volume.ignore = false  (bool)
  volume.is_disc = false  (bool)
  volume.is_mounted = false  (bool)
  volume.is_mounted_read_only = false  (bool)
  volume.is_partition = false  (bool)
  volume.label = 'ORANGE'  (string)
  volume.linux.is_device_mapper = false  (bool)
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec', 'utf8', 'shortname=', 'codepage=', 'iocharset=', 'umask=', 'dmask=', 'fmask=', 'uid='} (string list)
  volume.mount_point = ''  (string)
  volume.num_blocks = 1982464  (0x1e4000)  (int)
  volume.size = 1015021568  (0x3c800000)  (uint64)
  volume.unmount.valid_options = {'lazy'} (string list)
  volume.uuid = '902C-8F76'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1301_000A2700111D84F4_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/001/022'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev1.22'  (string)
  usbraw.device = '/dev/bus/usb/001/022'  (string)



More information about the hal mailing list