GNOME Bugzilla – Bug 486661
Ipod classic 3rd Generation support
Last modified: 2009-07-01 01:06:08 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
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.
Created attachment 97226 [details] [review] Patch to support Ipod classic 3rd Gen on podsleuth r48 Sorry, previous one lacked files paths.
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.
Devs: please review that patch.
*** Bug 537693 has been marked as a duplicate of this bug. ***
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.
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?
Me, same Ipod, 3G grayscale 20GB
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.
I can confirm it doesn't work with 1.3.2 too. The only solution is the patch from nicolas
I committed a slightly modified (to be more defensive) version of this patch. Thanks Nicolas.
we want 101 banshee papercuts ;P