Re: [Banshee-List] iPod is seen as read only since 0.12.1 (and changes to libipoddevice)
- From: Aaron Bockover <abockover novell com>
- To: banshee-list gnome org, bill billdawson com
- Subject: Re: [Banshee-List] iPod is seen as read only since 0.12.1 (and changes to libipoddevice)
- Date: Thu, 05 Apr 2007 15:55:37 -0400
Hi Bill,
I did this same research yesterday and as it turns out, I need to revise
my position on this in libipoddevice as I need to support HAL >= 0.5.6,
and thus can't rely on this property.
Thus I will be committing a patch to make it work in < 0.5.8. It will
use the volume.is_mounted_read_only if the property exists and if not it
will fall back to legacy checks to determine of the volume can be
written to.
Thanks for looking into this though. I could have sworn
volume.is_mounted_read_only was a lot older than 0.5.8.
--Aaron
On Thu, 2007-04-05 at 12:31 +0200, Bill Dawson wrote:
> Just in case anybody else ever has this problem, here's what I found:
>
> volume.is_mounted_read_only started as part of the HAL spec 0.5.8. (The
> code was added to the HAL source in March 2006.)
>
> Gentoo's latest "unmasked" HAL is 0.5.7, and that's what I'm running,
> which explains why I don't get that property exported.
>
> I don't really care, because I'll upgrade now to 0.5.9 (which is in
> Gentoo's portage tree but masked). 0.5.8 appears to have never been in
> Gentoo's tree.
>
> regards,
> bill
>
> On Wed, 2007-04-04 at 18:44 -0400, Aaron Bockover wrote:
> > I'm not really sure how to troubleshoot this other than that
> > volume.is_volume_mounted_readonly is a mandatory property for volume
> > devices in HAL, is expected to be their by libipoddevice (and if not
> > your volume is considered read only), and your device doesn't have it.
> >
> > http://people.freedesktop.org/~david/hal-spec/hal-spec.html#device-properties-volume
> >
> > I'm not sure when this property was introduced but it should be well
> > before 0.5.7.
> >
> > --Aaron
> >
> >
> > On Wed, 2007-04-04 at 23:31 +0200, Bill Dawson wrote:
> > > Dare I say it? It's gentoo (uh oh?).
> > >
> > > gnome-volume-manager 2.15.0
> > > HAL package version: 0.5.7.1
> > >
> > >
> > > On Wed, 2007-04-04 at 17:08 -0400, Aaron Bockover wrote:
> > > > The problem is that your HAL and/or mount daemon (like GNOME Volume
> > > > Manager) did not merge the volume.is_mounted_read_only property into the
> > > > device tree, so we cannot verify how the mount is set up. I had to
> > > > change the readonly detection logic to cater to HFS+ iPods, hence the
> > > > change. While it may look like a regression in libipoddevice, it's
> > > > actually due to an issue in your HAL/mount daemon.
> > > >
> > > > What version of HAL are you using and what mount daemon and version
> > > > (gnome-volume-manager, ivman, etc.). What distro?
> > > >
> > > > The stuff printed to stderr looks like problems with your DBus
> > > > installation.
> > > >
> > > > --Aaron
> > > >
> > > > On Wed, 2007-04-04 at 21:30 +0200, Bill Dawson wrote:
> > > > > Here you go. The script produced both std and err output, and I
> > > > > redirected them both to the same file, which is now pasted below. (all
> > > > > the err stuff ended up on top.) Thanks for having a look.
> > > > >
> > > > > process 16717: Applications must not close shared connections - see
> > > > > dbus_connection_close() docs. This is a bug in the application.
> > > > > D-Bus not built with -rdynamic so unable to print a backtrace
> > > > > ./ipod-debug-dump.sh: line 20: 16717 Aborted hal-device
> > > > > $udi
> > > > > process 16719: Applications must not close shared connections - see
> > > > > dbus_connection_close() docs. This is a bug in the application.
> > > > > D-Bus not built with -rdynamic so unable to print a backtrace
> > > > > ./ipod-debug-dump.sh: line 31: 16719 Aborted hal-device
> > > > > $child_udi
> > > > > process 16722: Applications must not close shared connections - see
> > > > > dbus_connection_close() docs. This is a bug in the application.
> > > > > D-Bus not built with -rdynamic so unable to print a backtrace
> > > > > ./ipod-debug-dump.sh: line 31: 16722 Aborted hal-device
> > > > > $child_udi
> > > > > wcdiii
> > > > > Host Name: BILLIBM
> > > > >
> > > > >
> > > > >
> > > > > [[-------------------- HAL Dump -------------------]]
> > > > >
> > > > > <---- iPod Device 1 ---->
> > > > > udi =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > info.addons = { 'hald-addon-storage' } (string list)
> > > > > portable_audio_player.output_formats = { 'audio/mpeg', 'audio/aac' }
> > > > > (string list)
> > > > > portable_audio_player.storage_device =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > portable_audio_player.type = 'ipod' (string)
> > > > > portable_audio_player.access_method = 'storage' (string)
> > > > > block.storage_device =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > info.udi =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > storage.requires_eject = true (bool)
> > > > > storage.hotpluggable = true (bool)
> > > > > info.capabilities = { 'storage', 'block', 'portable_audio_player' }
> > > > > (string list)
> > > > > info.category = 'portable_audio_player' (string)
> > > > > info.product = 'iPod' (string)
> > > > > info.vendor = 'Apple' (string)
> > > > > storage.removable = true (bool)
> > > > > storage.physical_device =
> > > > > '/org/freedesktop/Hal/devices/usb_device_5ac_1205_000000925917_if0'
> > > > > (string)
> > > > > storage.lun = 0 (0x0) (int)
> > > > > storage.firmware_version = '1.62' (string)
> > > > > storage.serial = 'Apple_iPod_000000925917' (string)
> > > > > storage.vendor = 'Apple' (string)
> > > > > storage.model = 'iPod' (string)
> > > > > storage.drive_type = 'disk' (string)
> > > > > storage.automount_enabled_hint = true (bool)
> > > > > storage.media_check_enabled = true (bool)
> > > > > storage.no_partitions_hint = false (bool)
> > > > > storage.bus = 'usb' (string)
> > > > > block.is_volume = false (bool)
> > > > > block.minor = 0 (0x0) (int)
> > > > > block.major = 8 (0x8) (int)
> > > > > block.device = '/dev/sda' (string)
> > > > > linux.hotplug_type = 3 (0x3) (int)
> > > > > info.parent =
> > > > > '/org/freedesktop/Hal/devices/usb_device_5ac_1205_000000925917_if0_scsi_host_scsi_device_lun0' (string)
> > > > > linux.sysfs_path_device = '/sys/block/sda' (string)
> > > > > linux.sysfs_path = '/sys/block/sda' (string)
> > > > >
> > > > > udi = '/org/freedesktop/Hal/devices/volume_part1_size_41094144'
> > > > > info.udi = '/org/freedesktop/Hal/devices/volume_part1_size_41094144'
> > > > > (string)
> > > > > volume.partition.msdos_part_table_type = 0 (0x0) (int)
> > > > > info.product = 'Volume' (string)
> > > > > volume.size = 41094144 (0x2730c00) (uint64)
> > > > > volume.num_blocks = 80262 (0x13986) (int)
> > > > > volume.block_size = 512 (0x200) (int)
> > > > > volume.partition.number = 1 (0x1) (int)
> > > > > info.capabilities = { 'volume', 'block' } (string list)
> > > > > info.category = 'volume' (string)
> > > > > volume.is_partition = true (bool)
> > > > > volume.is_disc = false (bool)
> > > > > volume.is_mounted = false (bool)
> > > > > volume.mount_point = '' (string)
> > > > > volume.label = '' (string)
> > > > > volume.uuid = '' (string)
> > > > > volume.fsversion = '' (string)
> > > > > volume.fsusage = '' (string)
> > > > > volume.fstype = '' (string)
> > > > > storage.model = '' (string)
> > > > > block.storage_device =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > block.is_volume = true (bool)
> > > > > block.minor = 1 (0x1) (int)
> > > > > block.major = 8 (0x8) (int)
> > > > > block.device = '/dev/sda1' (string)
> > > > > linux.hotplug_type = 3 (0x3) (int)
> > > > > info.parent =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > linux.sysfs_path_device = '/sys/block/sda/sda1' (string)
> > > > > linux.sysfs_path = '/sys/block/sda/sda1' (string)
> > > > >
> > > > > udi = '/org/freedesktop/Hal/devices/volume_uuid_B258_9E2A'
> > > > > info.hal_mount.mounted_by_uid = 1000 (0x3e8) (int)
> > > > > info.hal_mount.created_mount_point = '/media/BLUEMINI' (string)
> > > > > info.callouts.add = { 'hal-ipod-info' } (string list)
> > > > > volume.unmount.valid_options = { 'lazy' } (string list)
> > > > > volume.mount.valid_options = { 'ro', 'sync', 'dirsync', 'noatime',
> > > > > 'nodiratime', 'noexec', 'quiet', 'utf8', 'shortname=', 'codepage=',
> > > > > 'iocharset=', 'umask=', 'dmask=', 'fmask=', 'uid=' } (string list)
> > > > > org.freedesktop.Hal.Device.Volume.method_execpaths =
> > > > > { 'hal-system-storage-mount', 'hal-system-storage-unmount',
> > > > > 'hal-system-storage-eject', 'hal-ipod-info' } (string list)
> > > > > org.freedesktop.Hal.Device.Volume.method_signatures = { 'ssas', 'as',
> > > > > 'as', 'as' } (string list)
> > > > > org.freedesktop.Hal.Device.Volume.method_names = { 'Mount', 'Unmount',
> > > > > 'Eject', 'WriteIpodInfo' } (string list)
> > > > > info.interfaces = { 'org.freedesktop.Hal.Device.Volume' } (string
> > > > > list)
> > > > > volume.ignore = false (bool)
> > > > > info.udi = '/org/freedesktop/Hal/devices/volume_uuid_B258_9E2A'
> > > > > (string)
> > > > > volume.partition.msdos_part_table_type = 11 (0xb) (int)
> > > > > info.product = 'BLUEMINI' (string)
> > > > > volume.size = 4046837760 (0xf135d800) (uint64)
> > > > > volume.num_blocks = 7903980 (0x789aec) (int)
> > > > > volume.block_size = 512 (0x200) (int)
> > > > > volume.partition.number = 2 (0x2) (int)
> > > > > info.capabilities = { 'volume', 'block' } (string list)
> > > > > info.category = 'volume' (string)
> > > > > volume.is_partition = true (bool)
> > > > > volume.is_disc = false (bool)
> > > > > volume.is_mounted = true (bool)
> > > > > volume.mount_point = '/media/BLUEMINI' (string)
> > > > > volume.label = 'BLUEMINI' (string)
> > > > > volume.uuid = 'B258-9E2A' (string)
> > > > > volume.fsversion = 'FAT32' (string)
> > > > > volume.fsusage = 'filesystem' (string)
> > > > > volume.fstype = 'vfat' (string)
> > > > > storage.model = '' (string)
> > > > > block.storage_device =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > block.is_volume = true (bool)
> > > > > block.minor = 2 (0x2) (int)
> > > > > block.major = 8 (0x8) (int)
> > > > > block.device = '/dev/sda2' (string)
> > > > > linux.hotplug_type = 3 (0x3) (int)
> > > > > info.parent =
> > > > > '/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000000925917'
> > > > > (string)
> > > > > linux.sysfs_path_device = '/sys/block/sda/sda2' (string)
> > > > > linux.sysfs_path = '/sys/block/sda/sda2' (string)
> > > > >
> > > > > ************************* WARNING *************************
> > > > > * This iPod suffers from the volume.fsusage=raid bug. *
> > > > > * As such, it cannot be used in Banshee. This is not a *
> > > > > * Banshee or gnome-volume-manager bug. And the issue is *
> > > > > * very well known. *
> > > > > * *
> > > > > * Please read the following web page for more information *
> > > > > * including possible fixes to the problem: *
> > > > > * *
> > > > > * http://banshee-project.org/Troubleshooting/iPod/RaidBug *
> > > > > ***********************************************************
> > > > >
> > > > >
> > > > >
> > > > > On Wed, 2007-04-04 at 12:51 -0400, Aaron Bockover wrote:
> > > > > > Bill,
> > > > > >
> > > > > > Would you mind running the following script with your Mini plugged in
> > > > > > and paste the results in a reply?
> > > > > >
> > > > > > http://banshee-project.org/files/ipod-debug-dump.sh
> > > > > >
> > > > > > Thanks,
> > > > > > Aaron
> > > > > >
> > > > > > On Wed, 2007-04-04 at 13:43 +0200, Bill Dawson wrote:
> > > > > > > I wonder if anybody else has seen this. The latest changes to
> > > > > > > libipoddevice -- many of which were to determine if an iPod is read-only
> > > > > > > -- have resulted in my 1st Gen ipod mini (blue) being seen as read-only.
> > > > > > > (For example,the synchronize button is no longer available).
> > > > > > >
> > > > > > > I traced it back to ipodsharp's Device.cs bool CanWrite returning false.
> > > > > > > It, in turn, reaches into libipoddevice's "can-write" property (if I
> > > > > > > understand the code correctly.) I've just quickly reviewed the
> > > > > > > libipoddevice's C code recent changes and it looks like a lot has been
> > > > > > > added re making this determination of if something is writeable. I've
> > > > > > > not studied it too closely-- maybe someone knows a quick fix.
> > > > > > >
> > > > > > > I can file a bug to the iPod component if desired.
> > > > > > >
> > > > > > > In the meantime, I'm just forcing ipodsharp's Device.cs CanWrite() to
> > > > > > > return true.
> > > > > > >
> > > > > > > iPod properties in Banshee accurately shows my model info:
> > > > > > >
> > > > > > > Generation: First
> > > > > > > Model: MiniBlue
> > > > > > > Model Number: M9436
> > > > > > > Serial Number: JQ4380FYQKL
> > > > > > > Firmware Version: 2.6.1
> > > > > > > Database version: 13
> > > > > > > Manufactured During: Week 38 of 2004
> > > > > > >
> > > > > > > Thx,
> > > > > > > Bill Dawson
> > > > > > >
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > Banshee-list mailing list
> > > > > > > Banshee-list gnome org
> > > > > > > http://mail.gnome.org/mailman/listinfo/banshee-list
> > > > > >
> > > > >
> > > >
> > >
> >
>
> _______________________________________________
> Banshee-list mailing list
> Banshee-list gnome org
> http://mail.gnome.org/mailman/listinfo/banshee-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]