Fwd: Re: calibre: kindle usb connection problem

Andriy Gapon avg at FreeBSD.org
Thu Mar 29 17:46:41 UTC 2012


Not sure if the problem is caused by something in the device or by one of the
hal's utilities.
This is what I see in the system log:
Mar 29 20:37:20 trant kernel: ugen2.2: <Amazon> at usbus2
Mar 29 20:37:20 trant kernel: umass0: <Mass Storage> on usbus2
Mar 29 20:37:20 trant kernel: ugen2.2: <Amazon> at usbus2 (disconnected)
Mar 29 20:37:20 trant kernel: umass0: at uhub2, port 6, addr 2 (disconnected)
Mar 29 20:37:22 trant kernel: ugen2.2: <Amazon> at usbus2
Mar 29 20:37:22 trant kernel: umass0: <Mass Storage> on usbus2
Mar 29 20:37:22 trant kernel: da0 at umass-sim0 bus 0 scbus8 target 0 lun 0
Mar 29 20:37:22 trant kernel: da0: <Kindle Internal Storage 0100> Removable
Direct Access SCSI-2 device
Mar 29 20:37:22 trant kernel: da0: 40.000MB/s transfers
Mar 29 20:37:22 trant kernel: da0: 3090MB (6328768 512 byte sectors: 255H 63S/T
393C)

Note how the umass driver attaches, then immediately detaches and two seconds
later attaches again.
Here's hald output from that period:

20:37:17.378 [I] hf-devd.c:316: received devd event: !system=DEVFS
subsystem=CDEV type=CREATE cdev=usb/2.2.0^M
20:37:17.378 [I] hf-devd.c:316: received devd event: !system=DEVFS
subsystem=CDEV type=CREATE cdev=ugen2.2^M
20:37:19.448 [I] hf-devd.c:316: received devd event: !system=DEVFS
subsystem=CDEV type=CREATE cdev=usb/2.2.1^M
20:37:20.576 [I] hf-devd.c:316: received devd event: !system=USB
subsystem=DEVICE type=ATTACH ugen=ugen2.2 cdev=ugen2.2 vendor=0x1949
product=0x0004 devclass=0x00 devsubclass=0x00 sernum="B008A0A00527517D"
release=0x0100 mode=host port=6 parent=ugen2.1^M
20:37:20.577 [I] hf-usb2.c:213: received devd attach event, device ugen=ugen2.2^M
Run started hald-probe-usb2-device (20000) (0) ^M
!  full path is '/usr/local/libexec/hald-probe-usb2-device', program_dir is
'/usr/local/libexec'^M
pid 70609: rc=0 signaled=0: /usr/local/libexec/hald-probe-usb2-device^M
20:37:22.640 [I] hald.c:108: Added device to GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D^M
Run started hald-probe-usb2-interface (20000) (0) ^M
!  full path is '/usr/local/libexec/hald-probe-usb2-interface', program_dir is
'/usr/local/libexec'^M
pid 70610: rc=0 signaled=0: /usr/local/libexec/hald-probe-usb2-interface^M
20:37:22.665 [I] hald.c:108: Added device to GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0^M
20:37:22.666 [I] hf-devd.c:316: received devd event: !system=USB
subsystem=INTERFACE type=ATTACH ugen=ugen2.2 cdev=ugen2.2 vendor=0x1949
product=0x0004 devclass=0x00 devsubclass=0x00 sernum="B008A0A00527517D"
release=0x0100 mode=host interface=0 endpoints=2 intclass=0x08 intsubclass=0x06
intprotocol=0x50^M
20:37:22.666 [I] hf-devd.c:316: received devd event: +umass0 at bus=1 hubaddr=6
port=2 devaddr=2 interface=0 vendor=0x1949 product=0x0004 devclass=0x00
devsubclass=0x00 sernum="B008A0A00527517D" release=0x0100 mode=host
intclass=0x08 intsubclass=0x06 intprotocol=0x50  on uhub2^M
20:37:22.671 [I] hald.c:108: Added device to GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0_scsi_host^M
20:37:22.681 [I] hf-devd.c:316: received devd event: !system=USB
subsystem=DEVICE type=DETACH ugen=ugen2.2 cdev=ugen2.2 vendor=0x1949
product=0x0004 devclass=0x00 devsubclass=0x00 sernum="B008A0A00527517D"
release=0x0100 mode=host port=6 parent=ugen2.1^M
20:37:22.681 [I] hf-usb2.c:221: received devd detach event, device ugen=ugen2.2^M
20:37:22.682 [I] hald.c:143: Removed device from GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0_scsi_host^M
20:37:22.682 [I] hald.c:143: Removed device from GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0^M
20:37:22.683 [I] hald.c:143: Removed device from GDL;
udi=/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D^M
20:37:22.685 [I] hf-devd.c:316: received devd event: !system=USB
subsystem=INTERFACE type=DETACH ugen=ugen2.2 cdev=ugen2.2 vendor=0x1949
product=0x0004 devclass=0x00 devsubclass=0x00 sernum="B008A0A00527517D"
release=0x0100 mode=host interface=0 endpoints=2 intclass=0x08 intsubclass=0x06
intprotocol=0x50^M
20:37:22.685 [I] hf-devd.c:316: received devd event: !system=DEVFS
subsystem=CDEV type=DESTROY cdev=ugen2.2^M
20:37:23.188 [I] hald.c:108: Added device to GDL;
udi=/org/freedesktop/Hal/devices/computer_scsi_host_6^M
20:37:23.190 [I] hald.c:108: Added device to GDL;
udi=/org/freedesktop/Hal/devices/computer_scsi_host_6_scsi_device_lun0^M
Run started hald-probe-scsi (20000) (0) ^M


Note how computer_scsi_host_6 device is getting inserted when
usb_device_1949_4_B008A0A00527517D_if0_scsi_host is removed.
I think that this is where the USB ancestry information is lost.


on 29/03/2012 20:26 Andriy Gapon said the following:
> 
> 
> -------- Original Message --------
> Message-ID: <4F749AD1.7020703 at FreeBSD.org>
> Date: Thu, 29 Mar 2012 20:24:33 +0300
> From: Andriy Gapon <avg at FreeBSD.org>
> Subject: Re: calibre: kindle usb connection problem
> References: <4F749941.8070704 at FreeBSD.org>
> 
> on 29/03/2012 20:17 Andriy Gapon said the following:
>>
>> Looks like calibre is no longer able to detect my Kindle via USB (calibre is at
>> version 0.8.40).
>> The problem seems to be that the umass<->da relationship is not reflected in the
>> HAL device hierarchy in the way that calibre expects.
>>
>> This is the ancestry line for the Kindle da device:
> 
> Now even weirder stuff.  I disconnected/reconnected the Kindle and now it is
> directly under the computer device:
> udi = '/org/freedesktop/Hal/devices/computer_storage'
>   block.device = '/dev/da0'  (string)
>   block.is_volume = false  (bool)
>   block.major = 0  (0x0)  (int)
>   block.minor = 232  (0xe8)  (int)
>   block.storage_device = '/org/freedesktop/Hal/devices/computer_storage'  (string)
>   freebsd.device_file = '/dev/da0'  (string)
>   freebsd.driver = 'da'  (string)
>   freebsd.unit = 0  (0x0)  (int)
>   info.capabilities = {'block', 'storage'} (string list)
>   info.category = 'storage'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
>   info.product = 'Storage Device'  (string)
>   info.subsystem = 'block'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/computer_storage'  (string)
>   storage.automount_enabled_hint = true  (bool)
>   storage.bus = 'platform'  (string)
>   storage.drive_type = 'disk'  (string)
>   storage.hotpluggable = false  (bool)
>   storage.media_check_enabled = false  (bool)
>   storage.model = ''  (string)
>   storage.no_partitions_hint = false  (bool)
>   storage.originating_device = ''  (string)
>   storage.removable = false  (bool)
>   storage.removable.support_async_notification = false  (bool)
>   storage.requires_eject = false  (bool)
>   storage.vendor = ''  (string)
> 
> camcontrol sees it properly:
> amcontrol devlist -v
> scbus0 on ahcich0 bus 0:
> <ST3500410AS CC34>                 at scbus0 target 0 lun 0 (pass0,ada0)
> <>                                 at scbus0 target -1 lun -1 ()
> scbus1 on ahcich1 bus 0:
> <ST3500418AS CC34>                 at scbus1 target 0 lun 0 (pass1,ada1)
> <>                                 at scbus1 target -1 lun -1 ()
> scbus2 on ahcich2 bus 0:
> <WDC WD4000AAKS-00YGA0 12.01C02>   at scbus2 target 0 lun 0 (pass2,ada2)
> <>                                 at scbus2 target -1 lun -1 ()
> scbus3 on ahcich3 bus 0:
> <>                                 at scbus3 target -1 lun -1 ()
> scbus4 on ahcich4 bus 0:
> <>                                 at scbus4 target -1 lun -1 ()
> scbus5 on ahcich5 bus 0:
> <Optiarc DVD RW AD-7191S 1.02>     at scbus5 target 0 lun 0 (pass3,cd0)
> <>                                 at scbus5 target -1 lun -1 ()
> scbus6 on ata0 bus 0:
> <>                                 at scbus6 target -1 lun -1 ()
> scbus7 on sbp0 bus 0:
> <>                                 at scbus7 target -1 lun -1 ()
> scbus8 on umass-sim0 bus 0:
> <Kindle Internal Storage 0100>     at scbus8 target 0 lun 0 (da0,pass4)
> scbus-1 on xpt0 bus 0:
> <>                                 at scbus-1 target -1 lun -1 (xpt0)
> 
> 
>> udi = '/org/freedesktop/Hal/devices/computer_scsi_host_6'
>>   info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
>>   info.product = 'SCSI Host Adapter'  (string)
>>   info.subsystem = 'scsi_host'  (string)
>>   info.udi = '/org/freedesktop/Hal/devices/computer_scsi_host_6'  (string)
>>   scsi_host.host = 8  (0x8)  (int)
>>
>> udi = '/org/freedesktop/Hal/devices/computer_scsi_host_6_scsi_device_lun0'
>>   info.parent = '/org/freedesktop/Hal/devices/computer_scsi_host_6'  (string)
>>   info.product = 'SCSI Device'  (string)
>>   info.subsystem = 'scsi'  (string)
>>   info.udi =
>> '/org/freedesktop/Hal/devices/computer_scsi_host_6_scsi_device_lun0'  (string)
>>   info.vendor = 'Kindle'  (string)
>>   scsi.bus = 8  (0x8)  (int)
>>   scsi.host = 8  (0x8)  (int)
>>   scsi.lun = 0  (0x0)  (int)
>>   scsi.model = 'Internal Storage'  (string)
>>   scsi.target = 0  (0x0)  (int)
>>   scsi.type = 'disk'  (string)
>>   scsi.vendor = 'Kindle'  (string)
>>
>> udi = '/org/freedesktop/Hal/devices/storage_model_Internal_Storage'
>>   block.device = '/dev/da0'  (string)
>>   block.freebsd.cam_path = '8,0,0'  (string)
>>   block.is_volume = false  (bool)
>>   block.major = 0  (0x0)  (int)
>>   block.minor = 232  (0xe8)  (int)
>>   block.storage_device =
>> '/org/freedesktop/Hal/devices/storage_model_Internal_Storage'  (string)
>>   freebsd.device_file = '/dev/da0'  (string)
>>   freebsd.driver = 'da'  (string)
>>   freebsd.unit = 0  (0x0)  (int)
>>   info.addons = {'hald-addon-storage'} (string list)
>>   info.capabilities = {'block', 'storage'} (string list)
>>   info.category = 'storage'  (string)
>>   info.interfaces = {'org.freedesktop.Hal.Device.Storage.Removable'} (string list)
>>   info.parent =
>> '/org/freedesktop/Hal/devices/computer_scsi_host_6_scsi_device_lun0'  (string)
>>   info.product = 'Internal Storage'  (string)
>>   info.subsystem = 'block'  (string)
>>   info.udi = '/org/freedesktop/Hal/devices/storage_model_Internal_Storage'  (string)
>>   info.vendor = 'Kindle'  (string)
>>   storage.automount_enabled_hint = true  (bool)
>>   storage.bus = 'scsi'  (string)
>>   storage.drive_type = 'disk'  (string)
>>   storage.firmware_revision = '0100'  (string)
>>   storage.hotpluggable = false  (bool)
>>   storage.lun = 0  (0x0)  (int)
>>   storage.media_check_enabled = true  (bool)
>>   storage.model = 'Internal Storage'  (string)
>>   storage.no_partitions_hint = false  (bool)
>>   storage.originating_device =
>> '/org/freedesktop/Hal/devices/computer_scsi_host_6_scsi_device_lun0'  (string)
>>   storage.removable = true  (bool)
>>   storage.removable.support_async_notification = false  (bool)
>>   storage.requires_eject = false  (bool)
>>   storage.vendor = 'Kindle'  (string)
>>
>> Here is the umass device:
>>
>> udi = '/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0'
>>   freebsd.driver = 'umass'  (string)
>>   freebsd.unit = 0  (0x0)  (int)
>>   info.bus = 'usb'  (string)
>>   info.parent =
>> '/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D'  (string)
>>   info.product = 'Amazon Kindle'  (string)
>>   info.subsystem = 'usb'  (string)
>>   info.udi =
>> '/org/freedesktop/Hal/devices/usb_device_1949_4_B008A0A00527517D_if0'  (string)
>>   info.vendor = 'Amazon'  (string)
>>   usb.bus_number = 2  (0x2)  (int)
>>   usb.can_wake_up = false  (bool)
>>   usb.configuration = 'Self-powered'  (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.freebsd.devname = 'umass0'  (string)
>>   usb.interface.class = 8  (0x8)  (int)
>>   usb.interface.description = 'Mass Storage'  (string)
>>   usb.interface.number = 0  (0x0)  (int)
>>   usb.interface.protocol = 80  (0x50)  (int)
>>   usb.interface.subclass = 6  (0x6)  (int)
>>   usb.is_self_powered = true  (bool)
>>   usb.level_number = 1  (0x1)  (int)
>>   usb.max_power = 0  (0x0)  (int)
>>   usb.num_configurations = 1  (0x1)  (int)
>>   usb.num_interfaces = 1  (0x1)  (int)
>>   usb.num_ports = 0  (0x0)  (int)
>>   usb.port_number = 2  (0x2)  (int)
>>   usb.product = 'Amazon Kindle'  (string)
>>   usb.product_id = 4  (0x4)  (int)
>>   usb.serial = 'B008A0A00527517D'  (string)
>>   usb.speed = 480.0 (480) (double)
>>   usb.speed_bcd = 294912  (0x48000)  (int)
>>   usb.vendor = 'Amazon'  (string)
>>   usb.vendor_id = 6473  (0x1949)  (int)
>>   usb.version = 2.0 (2) (double)
>>
>> What do you think?
>> Is this a FreeBSD HAL problem?
>>
> 


-- 
Andriy Gapon


More information about the freebsd-gnome mailing list