After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 486661 - Ipod classic 3rd Generation support
Ipod classic 3rd Generation support
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: Device - iPod
git master
Other Linux
: Normal normal
: 1.x
Assigned To: Aaron Bockover
Banshee Maintainers
: 537693 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-10-14 19:28 UTC by Nicolas Cortot
Modified: 2009-07-01 01:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to support iPod classic 3rd gen on podsleuth r48 (1.16 KB, patch)
2007-10-14 19:36 UTC, Nicolas Cortot
none Details | Review
Patch to support Ipod classic 3rd Gen on podsleuth r48 (1.80 KB, patch)
2007-10-14 19:51 UTC, Nicolas Cortot
committed Details | Review

Description Nicolas Cortot 2007-10-14 19:28:44 UTC
My old iPod classic 3rd Generation doesn't have the SysInfoExtended XML informations, so podsleuth (SVN r48) won't recognise it:

nc@fujin ~ % podsleuth
No iPods were found in the HAL device tree

nc@fujin ~ % cat /tmp/podsleuth-debug
** Could not read iPod property list from SCSI code page **
System.Xml.XmlException: Document element did not appear.  Line 1, position 1.
  at Mono.Xml2.XmlTextReader.Read () [0x00161] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlTextReader.cs:612 
  at System.Xml.XmlTextReader.Read () [0x0006d] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlTextReader2.cs:551 
  at System.Xml.XmlDocument.ReadNodeCore (System.Xml.XmlReader reader) [0x0003f] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlDocument.cs:842 
  at System.Xml.XmlDocument.ReadNode (System.Xml.XmlReader reader) [0x00033] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlDocument.cs:823 
  at System.Xml.XmlDocument.Load (System.Xml.XmlReader xmlReader) [0x00019] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlDocument.cs:693 
  at System.Xml.XmlDocument.LoadXml (System.String xml) [0x00023] in /var/tmp/portage/dev-lang/mono-1.2.2.1/work/mono-1.2.2.1/mcs/class/System.XML/System.Xml/XmlDocument.cs:716 
  at PropertyList.PlistDocument.LoadFromXml (System.String data) [0x0000d] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PropertyList/PlistDocument.cs:34 
  at PodSleuth.Device.LoadDevicePlist () [0x0000b] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PodSleuth/Device.cs:90 
Pre-Mount Settings:
  - UDI:                    /org/freedesktop/Hal/devices/volume_uuid_2BDF_9A50
  - Block Device:           /dev/ipod2
  - Temporary Mount Point:  /tmp/podsleuth-mount-0
  - FS Type:                vfat
PList Dump:



Exception:

System.NullReferenceException: Object reference not set to an instance of an object
  at PodSleuth.Device.ReadPlistBoolNullable (System.String key) [0x00000] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PodSleuth/Device.cs:68 
  at PodSleuth.Device.ReadPlistBool (System.String key) [0x00000] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PodSleuth/Device.cs:82 
  at PodSleuth.Device.LoadDevicePlist () [0x00052] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PodSleuth/Device.cs:97 
  at PodSleuth.Device.Load () [0x0000c] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth/PodSleuth/Device.cs:39 
  at PodSleuth.HalFrontend.HalPopulator.RunInternal (System.String[] args) [0x000a7] in /var/tmp/portage/media-libs/podsleuth-20071012/work/podsleuth-20071012/src/PodSleuth.Hal/PodSleuth.HalFrontend/HalPopulator.cs:69
Comment 1 Nicolas Cortot 2007-10-14 19:36:18 UTC
Created attachment 97224 [details] [review]
Patch to support iPod classic 3rd gen on podsleuth r48

This patch is quite ugly, but it is enough to detect my old iPod.
It doesn't seem to break support of my Nano 3rd generation.
Comment 2 Nicolas Cortot 2007-10-14 19:51:08 UTC
Created attachment 97226 [details] [review]
Patch to support Ipod classic 3rd Gen on podsleuth r48

Sorry, previous one lacked files paths.
Comment 3 Kai Groner 2008-02-02 03:47:38 UTC
Hi, I can confirm that my 3rd gen ipod doesn't seem to like the code pages that podsleuth requests.  It only seems to offer a few:

: kai@fang podsleuth; sg_modes /dev/sde -e
    Apple     iPod              1.53   peripheral_type: disk [0x0]
Discovered mode pages:
    Read-Write error recovery
    Flexible geometry (obsolete)
    Caching
    [0x1b]

I haven't been able to find what 0x1b is.

Also, this behavior is the same with USB and Firewire.

Comment 4 Pavel Šefránek 2008-02-08 21:23:41 UTC
Devs: please review that patch.
Comment 5 Gabriel Burt 2008-09-03 23:27:47 UTC
*** Bug 537693 has been marked as a duplicate of this bug. ***
Comment 6 Gabriel Burt 2008-09-03 23:33:54 UTC
Please produce your patches from within the root directory of whatever module
you're modifying - in this case you did it from one level too far up.  It's just convention, but it makes it faster to apply a patch b/c I know where to put it and apply it from.
Comment 7 Gabriel Burt 2008-09-03 23:57:12 UTC
I don't have a device where I got this exception, but testing with a new Nano and an oldish 20GB b/w iPod, it at least doesn't mess them up.  Has anybody else tested this?
Comment 8 Andrea Cimitan 2008-09-04 00:35:09 UTC
Me, same Ipod, 3G grayscale 20GB
Comment 9 Gabriel Burt 2008-09-29 16:55:35 UTC
Nicolas,

Can you update the patch with comments explaining why the various Substrings are necessary, etc?

So the SysInfoFile path is relative for your old device but not for your new one?  If that's the case, can we detect whether the path is relative instead of relying on the hard-to-follow/remember behavior of Path.Combine?

Where does "000A2700" come from?  It's not maintainable unless it's clear why things are the way they are.

Also, when you update the patch, please see comment #6 too.
Comment 10 Andrea Cimitan 2008-10-20 12:05:36 UTC
I can confirm it doesn't work with 1.3.2 too.

The only solution is the patch from nicolas
Comment 11 Gabriel Burt 2009-07-01 01:02:06 UTC
I committed a slightly modified (to be more defensive) version of this patch.  Thanks Nicolas.
Comment 12 Andrea Cimitan 2009-07-01 01:06:08 UTC
we want 101 banshee papercuts ;P