dbus, hal, atapicam and cdrecord

Jean-Yves Lefort jylefort at FreeBSD.org
Tue Dec 26 10:27:11 PST 2006


On Tue, 26 Dec 2006 15:06:46 +0000
Matt Dawson <matt at chronos.org.uk> wrote:

> 	sorry if this has been covered before (please direct me to the thread if it
> has), but I'm really struggling. cdrecord refuses to work properly with hal
> and dbus enabled. It locks the whole system tight with messages like these:
>
> Dec 25 22:26:17 laptop64 kernel: acd0: WARNING - TEST_UNIT_READY taskqueue
> timeout - completing request directly
> Dec 25 22:26:23 laptop64 kernel: acd0: WARNING - TEST_UNIT_READY freeing
> taskqueue zombie request
> Dec 25 22:28:17 laptop64 kernel: acd0: WARNING - PREVENT_ALLOW taskqueue
> timeout - completing request directly
> Dec 25 22:28:17 laptop64 kernel: acd0: WARNING - PREVENT_ALLOW freeing
> taskqueue zombie request
>
> All I can do is hard reset the system.
>
> System specifics:
>
> laptop64 ~ $ uname -a
> FreeBSD laptop64 6.1-RELEASE-p11 FreeBSD 6.1-RELEASE-p11 #5: Tue Dec 26
> 10:08:56 GMT 2006
> md001 at central.local.chronos.org.uk:/usr/obj/usr/src/sys/LAPTOP64  i386
>
> laptop64 ~ $ lshal | most
> Dumping 54 device(s) from the Global Device List:
> -------------------------------------------------
> [...]
> udi = '/org/freedesktop/Hal/devices/ide_host_0'
>   ide_host.number = 0  (0x0)  (int)
>   info.bus = 'ide_host'  (string)
>   freebsd.unit = 0  (0x0)  (int)
>   freebsd.driver = 'ata'  (string)
>   info.product = 'ATA channel 0'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/ide_host_0'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/pci_1002_4376'  (string)
>
> udi = '/org/freedesktop/Hal/devices/ide_host_0_scsi_host'
>   info.udi = '/org/freedesktop/Hal/devices/ide_host_0_scsi_host'  (string)
>   info.product = 'SCSI Host Adapter'  (string)
>   scsi_host.host = 0  (0x0)  (int)
>   info.bus = 'scsi_host'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/ide_host_0'  (string)
> [...]
> udi = '/org/freedesktop/Hal/devices/ide_host_1'
>   ide_host.number = 1  (0x1)  (int)
>   info.bus = 'ide_host'  (string)
>   freebsd.unit = 1  (0x1)  (int)
>   freebsd.driver = 'ata'  (string)
>   info.product = 'ATA channel 1'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/ide_host_1'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/pci_1002_4376'  (string)
>
> udi = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host'
>   info.udi = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host'  (string)
>   info.product = 'SCSI Host Adapter'  (string)
>   scsi_host.host = 1  (0x1)  (int)
>   info.bus = 'scsi_host'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/ide_host_1'  (string)
>
> udi = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_scsi_device_lun0'
>   info.udi
> = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_scsi_device_lun0
> '  (string)
>   scsi.type = 'cdrom'  (string)
>   scsi.model = 'DVD-RW GWA-4082N'  (string)
>   scsi.vendor = 'HL-DT-ST'  (string)
>   info.vendor = 'HL-DT-ST'  (string)
>   info.product = 'SCSI Device'  (string)
>   scsi.lun = 0  (0x0)  (int)
>   scsi.target = 0  (0x0)  (int)
>   scsi.bus = 1  (0x1)  (int)
>   scsi.host = 1  (0x1)  (int)
>   info.bus = 'scsi'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host'  (string)
>
> udi = '/org/freedesktop/Hal/devices/temp/48'
>   info.udi = '/org/freedesktop/Hal/devices/ignored-device'  (string)
>   info.ignore = true  (bool)
>   storage.lun = 0  (0x0)  (int)
>   storage.firmware_revision = 'CB03'  (string)
>   info.product = 'Ignored Device'  (string)
>   info.vendor = 'HL-DT-ST'  (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)
>   storage.vendor = 'HL-DT-ST'  (string)
>   storage.model = 'DVD-RW GWA-4082N'  (string)
>   storage.physical_device
> = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_s
> csi_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 = 83  (0x53)  (int)
>   block.major = 0  (0x0)  (int)
>   block.device = '/dev/cd0'  (string)
>   info.bus = 'block'  (string)
>   freebsd.unit = 0  (0x0)  (int)
>   freebsd.driver = 'cd'  (string)
>   info.parent
> = '/org/freedesktop/Hal/devices/ide_host_1_scsi_host_scsi_device_l
> un0'  (string)
>
> laptop64 ~ $ ls /var/db/pkg | grep cdrtools
> cdrtools-2.01_5
> laptop64 ~ $ ls /var/db/pkg | grep hal-
> hal-0.5.8.20061217
>
> Burncd works perfectly and cdrecord works if I disable dbus, polkit and hal.
> This is across all my systems, so it's not limited to this laptop. if it
> matters, I've used both K3B and cdrecord from the command line with the same
> results.
>
> Any ideas/things I've missed? I am in the operator group and cdrecord is suid
> and owned by root. Both acd0 and cd0 are not in fstab and are read/write for
> my user, pass and xpt are both read/write and hal works fine with USB pen
> drives and CDs. It is only cdrecord that causes problems.
>
> I have recompiled cdrtools after enabling the hardware abstraction layer just
> in case, but no change. Any help would be appreciated.

I think the problem is that HAL is talking to your CD-ROM via the
ATAPI device /dev/acd0 while, at the same time, cdrecord is trying to
access it via the atapicam device /dev/cd0. This is not a good idea,
as mentioned in the BUGS section of atapicam(4).

Try to setup HAL so that it uses the atapicam device for talking to
your CD-ROM (see /usr/local/share/doc/hal-0.5.8/README).

--
Jean-Yves Lefort

jylefort at FreeBSD.org
http://lefort.be.eu.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20061226/f9f04e1f/attachment.pgp


More information about the freebsd-ports mailing list