hal and "criss-crossed" atapicam

Joe Marcus Clarke marcus at marcuscom.com
Sun Feb 17 12:43:20 PST 2008


On Sun, 2008-02-17 at 12:53 +0200, Andriy Gapon wrote:
> [Disclaimer: yes, I've read BUGS section of atapicam(4) (should probably
> be named "CAVEATS"), but this is life.]
> 
> I have a system with two IDE CD/DVD drives. atapicam and atapicd are
> enabled and for some reason cd(4) unit numbers are criss-crossed
> compared to the acd(4) numbers:
> acd0 -> cd1
> acd1 -> cd0
> 
> acd0: CDRW <LITE-ON LTR-40125W/WS03> at ata0-master UDMA33
> acd1: DVDR <HL-DT-ST DVDRAM GSA-4163B/A105> at ata1-master UDMA33
> cd0: <HL-DT-ST DVDRAM GSA-4163B A105> Removable CD-ROM SCSI-0 device
> cd1: <LITE-ON LTR-40125W WS03> Removable CD-ROM SCSI-0 device
> 
> These devices are both masters on different IDE channels.
> 
> Maybe this or maybe something else seems to confuse HAL a little bit.
> Relevant snippets from lshal are pasted at the end.
> As you can see, the net result is that HAL sees 3 non-ignored devices:
> cd1 ("light-on"), cd0 ("dvdram"), acd1 ("dvdram" again).
> For some reason, acd1 was not recognized as having a paired atapicam
> device and situation is quite messy in general.
> And in konqueror, for instance, I see 3 devices if I put disks into both
> drives.
> 
> I would appreciate any advice on how to resolve this, either in atapicam
> or in hald, either via configuration or via code.

You need to provide the entire lshal output first.

Joe

> 
> There is another interesting issue, but maybe it's a KDE problem rather
> than HAL.
> I have a DVD-RAM disk formatted for FAT32 (I did disklabel on cd0 and
> then newfs_msdos on cd0a). Here's a small snippet at how hald sees that
> disk:
> udi = '/org/freedesktop/Hal/devices/volume_size_4580769792'
>   volume.mount.valid_options = {'ro', 'noexec', 'noatime', 'longnames',
> 'shortnames', 'nowin95', '-u=', '-g=', '-m=', '-M=', '-L=', '-D='}
> (string list)
>   org.freedesktop.Hal.Device.Volume.method_execpaths =
> {'hal-storage-mount', 'hal-system-storage-unmount',
> 'hal-system-storage-eject'} (string list)
>   org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as',
> 'as'} (string list)
>   org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount',
> 'Eject'} (string list)
>   info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
>   block.storage_device =
> '/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_4163B'  (string)
>   info.product = 'Volume (vfat)'  (string)
> ...
>   volume.fsversion = 'FAT32'  (string)
>   volume.fstype = 'vfat'  (string)
>   volume.fsusage = 'filesystem'  (string)
>   volume.ignore = false  (bool)
>   volume.is_partition = false  (bool)
>   volume.is_disc = true  (bool)
>   volume.disc.capacity = 4580769792  (0x111090000)  (uint64)
>   volume.disc.type = 'dvd_ram'  (string)
>   volume.disc.is_rewritable = true  (bool)
> ...
> I can manually mount the disk via mount -t msdosfs /dev/cd0a /mnt
> If I double-click in konqueror on acd1 view of this disk there is a
> failed attempt to mount it as cd9660.
> If I double-click on cd0 view, then there is an attempt to mount
> /dev/cd0 as msdosfs, this is closer but is still incorrect, the device
> should be cd0a.
> 
> P.S. it's a different issue why I wasn't able to newfs_msdos the whole
> disk and had to use disklabel on it. I think that shouldn't be required.
> 
> ======= lshal.out for atapicam issue ========
> udi = '/org/freedesktop/Hal/devices/storage_model_LTR_40125W'
>   info.addons = {'hald-addon-storage'} (string list)
>   block.storage_device =
> '/org/freedesktop/Hal/devices/storage_model_LTR_40125W'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/storage_model_LTR_40125W'
> (string)
>   block.is_volume = false  (bool)
>   block.freebsd.cam_path = '0,0,0'  (string)
>   storage.lun = 0  (0x0)  (int)
>   storage.firmware_revision = 'WS03'  (string)
>   info.product = 'LTR-40125W'  (string)
>   info.vendor = 'LITE-ON'  (string)
>   storage.cdrom.write_speed = 0  (0x0)  (int)
>   storage.cdrom.read_speed = 8448  (0x2100)  (int)
>   storage.cdrom.support_media_changed = false  (bool)
>   storage.cdrom.hddvdrw = false  (bool)
>   storage.cdrom.hddvdr = false  (bool)
>   storage.cdrom.hddvd = false  (bool)
>   storage.cdrom.bdre = false  (bool)
>   storage.cdrom.bdr = false  (bool)
>   storage.cdrom.bd = false  (bool)
>   storage.cdrom.dvdplusrwdl = false  (bool)
>   storage.cdrom.dvdplusrdl = false  (bool)
>   storage.cdrom.dvdplusrw = false  (bool)
>   storage.cdrom.dvdplusr = false  (bool)
>   storage.cdrom.dvdram = false  (bool)
>   storage.cdrom.dvdrw = false  (bool)
>   storage.cdrom.dvdr = false  (bool)
>   storage.cdrom.dvd = false  (bool)
>   storage.cdrom.cdrw = true  (bool)
>   storage.cdrom.cdr = true  (bool)
>   storage.vendor = 'LITE-ON'  (string)
>   storage.model = 'LTR-40125W'  (string)
>   storage.physical_device =
> '/org/freedesktop/Hal/devices/ide_host_0_scsi_host_scsi_device_lun0'
> (string)
>   storage.no_partitions_hint = true  (bool)
>   storage.automount_enabled_hint = true  (bool)
>   storage.media_check_enabled = true  (bool)
>   storage.hotpluggable = false  (bool)
>   storage.requires_eject = true  (bool)
>   storage.removable = true  (bool)
>   storage.drive_type = 'cdrom'  (string)
>   storage.bus = 'scsi'  (string)
>   block.minor = 120  (0x78)  (int)
>   block.major = 0  (0x0)  (int)
>   block.device = '/dev/cd1'  (string)
>   info.category = 'storage.cdrom'  (string)
>   info.bus = 'block'  (string)
>   info.capabilities = {'block', 'storage', 'storage.cdrom'} (string list)
>   freebsd.unit = 1  (0x1)  (int)
>   freebsd.driver = 'cd'  (string)
>   info.parent =
> '/org/freedesktop/Hal/devices/ide_host_0_scsi_host_scsi_device_lun0'
> (string)
> 
> udi = '/org/freedesktop/Hal/devices/storage_model_LITE_ON_LTR_40125W'
>   info.ignore = true  (bool)
>   block.freebsd.cam_path = '1,0,0'  (string)
>   block.freebsd.atapi_cam_device = '/dev/cd0'  (string)
>   block.storage_device =
> '/org/freedesktop/Hal/devices/storage_model_LITE_ON_LTR_40125W'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/ignored-device'  (string)
>   block.is_volume = false  (bool)
>   storage.firmware_revision = 'WS03'  (string)
>   storage.cdrom.write_speed = 0  (0x0)  (int)
>   storage.cdrom.read_speed = 0  (0x0)  (int)
>   storage.cdrom.support_media_changed = false  (bool)
>   storage.cdrom.hddvdrw = false  (bool)
>   storage.cdrom.hddvdr = false  (bool)
>   storage.cdrom.hddvd = false  (bool)
>   storage.cdrom.bdre = false  (bool)
>   storage.cdrom.bdr = false  (bool)
>   storage.cdrom.bd = false  (bool)
>   storage.cdrom.dvdplusrwdl = false  (bool)
>   storage.cdrom.dvdplusrdl = false  (bool)
>   storage.cdrom.dvdplusrw = false  (bool)
>   storage.cdrom.dvdplusr = false  (bool)
>   storage.cdrom.dvdram = false  (bool)
>   storage.cdrom.dvdrw = false  (bool)
>   storage.cdrom.dvdr = false  (bool)
>   storage.cdrom.dvd = false  (bool)
>   storage.cdrom.cdrw = false  (bool)
>   storage.cdrom.cdr = false  (bool)
>   info.vendor = 'LITE'  (string)
>   info.product = 'Ignored Device'  (string)
>   storage.vendor = 'LITE'  (string)
>   storage.model = 'LITE-ON LTR-40125W'  (string)
>   storage.physical_device = '/org/freedesktop/Hal/devices/ide_0_0'  (string)
>   storage.no_partitions_hint = true  (bool)
>   storage.automount_enabled_hint = true  (bool)
>   storage.media_check_enabled = true  (bool)
>   storage.hotpluggable = false  (bool)
>   storage.requires_eject = true  (bool)
>   storage.removable = true  (bool)
>   storage.drive_type = 'cdrom'  (string)
>   storage.bus = 'ide'  (string)
>   block.minor = 80  (0x50)  (int)
>   block.major = 0  (0x0)  (int)
>   block.device = '/dev/acd0'  (string)
>   info.bus = 'block'  (string)
>   freebsd.unit = 0  (0x0)  (int)
>   freebsd.driver = 'acd'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/ide_0_0'  (string)
> 
> 
> udi = '/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_4163B'
>   info.addons = {'hald-addon-storage'} (string list)
>   storage.cdrom.write_speeds = {'4155'} (string list)
>   block.storage_device =
> '/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_4163B'  (string)
>   info.udi =
> '/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_4163B'  (string)
>   block.is_volume = false  (bool)
>   block.freebsd.cam_path = '1,0,0'  (string)
>   storage.lun = 0  (0x0)  (int)
>   storage.firmware_revision = 'A105'  (string)
>   info.product = 'DVDRAM GSA-4163B'  (string)
>   info.vendor = 'HL-DT-ST'  (string)
>   storage.cdrom.write_speed = 4155  (0x103b)  (int)
>   storage.cdrom.read_speed = 4155  (0x103b)  (int)
>   storage.cdrom.support_media_changed = false  (bool)
>   storage.cdrom.hddvdrw = false  (bool)
>   storage.cdrom.hddvdr = false  (bool)
>   storage.cdrom.hddvd = false  (bool)
>   storage.cdrom.bdre = false  (bool)
>   storage.cdrom.bdr = false  (bool)
>   storage.cdrom.bd = false  (bool)
>   storage.cdrom.dvdplusrwdl = false  (bool)
>   storage.cdrom.dvdplusrdl = true  (bool)
>   storage.cdrom.dvdplusrw = true  (bool)
>   storage.cdrom.dvdplusr = true  (bool)
>   storage.cdrom.dvdram = true  (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.vendor = 'HL-DT-ST'  (string)
>   storage.model = 'DVDRAM GSA-4163B'  (string)
>   storage.physical_device =
> '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_scsi_device_lun0'
> (string)
>   storage.no_partitions_hint = true  (bool)
>   storage.automount_enabled_hint = true  (bool)
>   storage.media_check_enabled = true  (bool)
>   storage.hotpluggable = false  (bool)
>   storage.requires_eject = true  (bool)
>   storage.removable = true  (bool)
>   storage.drive_type = 'cdrom'  (string)
>   storage.bus = 'scsi'  (string)
>   block.minor = 117  (0x75)  (int)
>   block.major = 0  (0x0)  (int)
>   block.device = '/dev/cd0'  (string)
>   info.category = 'storage.cdrom'  (string)
>   info.bus = 'block'  (string)
>   info.capabilities = {'block', 'storage', 'storage.cdrom'} (string list)
>   freebsd.unit = 0  (0x0)  (int)
>   freebsd.driver = 'cd'  (string)
>   info.parent =
> '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_scsi_device_lun0'
> (string)
> 
> udi = '/org/freedesktop/Hal/devices/storage_serial_K5E4BMF5437'
>   info.addons = {'hald-addon-storage'} (string list)
>   storage.cdrom.write_speeds = {'4155'} (string list)
>   block.storage_device =
> '/org/freedesktop/Hal/devices/storage_serial_K5E4BMF5437'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/storage_serial_K5E4BMF5437'
> (string)
>   block.is_volume = false  (bool)
>   storage.firmware_revision = 'A105'  (string)
>   storage.serial = 'K5E4BMF5437'  (string)
>   storage.cdrom.write_speed = 4155  (0x103b)  (int)
>   storage.cdrom.read_speed = 4155  (0x103b)  (int)
>   storage.cdrom.support_media_changed = false  (bool)
>   storage.cdrom.hddvdrw = false  (bool)
>   storage.cdrom.hddvdr = false  (bool)
>   storage.cdrom.hddvd = false  (bool)
>   storage.cdrom.bdre = false  (bool)
>   storage.cdrom.bdr = false  (bool)
>   storage.cdrom.bd = false  (bool)
>   storage.cdrom.dvdplusrwdl = false  (bool)
>   storage.cdrom.dvdplusrdl = true  (bool)
>   storage.cdrom.dvdplusrw = true  (bool)
>   storage.cdrom.dvdplusr = true  (bool)
>   storage.cdrom.dvdram = true  (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)
>   info.vendor = 'HL'  (string)
>   info.product = 'HL-DT-ST DVDRAM GSA-4163B'  (string)
>   storage.vendor = 'HL'  (string)
>   storage.model = 'HL-DT-ST DVDRAM GSA-4163B'  (string)
>   storage.physical_device = '/org/freedesktop/Hal/devices/ide_1_0'  (string)
>   storage.no_partitions_hint = true  (bool)
>   storage.automount_enabled_hint = true  (bool)
>   storage.media_check_enabled = true  (bool)
>   storage.hotpluggable = false  (bool)
>   storage.requires_eject = true  (bool)
>   storage.removable = true  (bool)
>   storage.drive_type = 'cdrom'  (string)
>   storage.bus = 'ide'  (string)
>   block.minor = 81  (0x51)  (int)
>   block.major = 0  (0x0)  (int)
>   block.device = '/dev/acd1'  (string)
>   info.category = 'storage.cdrom'  (string)
>   info.bus = 'block'  (string)
>   info.capabilities = {'block', 'storage', 'storage.cdrom'} (string list)
>   freebsd.unit = 1  (0x1)  (int)
>   freebsd.driver = 'acd'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/ide_1_0'  (string)
> 
> 
-- 
PGP Key : http://www.marcuscom.com/pgp.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-gnome/attachments/20080217/bc134811/attachment.pgp


More information about the freebsd-gnome mailing list