From owner-freebsd-gnome@FreeBSD.ORG Sun Feb 17 10:54:06 2008 Return-Path: Delivered-To: freebsd-gnome@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 272D116A417 for ; Sun, 17 Feb 2008 10:54:06 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from falcon.cybervisiontech.com (falcon.cybervisiontech.com [217.20.163.9]) by mx1.freebsd.org (Postfix) with ESMTP id 736D413C457 for ; Sun, 17 Feb 2008 10:54:05 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from localhost (localhost [127.0.0.1]) by falcon.cybervisiontech.com (Postfix) with ESMTP id 25BD543E068; Sun, 17 Feb 2008 12:54:04 +0200 (EET) X-Virus-Scanned: Debian amavisd-new at falcon.cybervisiontech.com Received: from falcon.cybervisiontech.com ([127.0.0.1]) by localhost (falcon.cybervisiontech.com [127.0.0.1]) (amavisd-new, port 10027) with ESMTP id zMdF67pAy-kD; Sun, 17 Feb 2008 12:54:03 +0200 (EET) Received: from [10.74.70.239] (unknown [193.138.145.53]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by falcon.cybervisiontech.com (Postfix) with ESMTP id 5870143E057; Sun, 17 Feb 2008 12:54:00 +0200 (EET) Message-ID: <47B81244.9090802@icyb.net.ua> Date: Sun, 17 Feb 2008 12:53:56 +0200 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.9 (X11/20071208) MIME-Version: 1.0 To: freebsd-gnome@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Thomas Quinot Subject: hal and "criss-crossed" atapicam X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Feb 2008 10:54:06 -0000 [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 at ata0-master UDMA33 acd1: DVDR at ata1-master UDMA33 cd0: Removable CD-ROM SCSI-0 device cd1: 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. 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) -- Andriy Gapon