On Dec 1, 5:31 pm, John Joyce <dangerwillrobinsondan... / gmail.com>
wrote:
> On Dec 1, 2007, at 4:25 PM, MonkeeSage wrote:
>
>
>
> > On Dec 1, 3:40 pm, John Joyce <dangerwillrobinsondan... / gmail.com>
> > wrote:
> >> On Dec 1, 2007, at 12:10 PM, Tiago Macedo wrote:
>
> >>> An iPod (at least when formatted in FAT32 will contain an
> >>> "iPod_Control" folder on the root.
>
> >>> You can also check the USB device ids:
> >>> Bus 005 Device 003: ID 05ac:1261 Apple Computer, Inc.
> >>> (this is an 80GB Classic Silver)
>
> >>> or just build a wrapper for libgpod (I don't it supports drm'ed
> >>> tracks though)
>
> >>> Tiago Macedo
>
> >> The device ID info is in the right vein for what I'm thinking of.
> >> I know about the "iPod_Control" folder.
> >> It's on every iPod, inside it is the Music folder and that contains
> >> the directories that actually hold the audio files.
> >> I'm just curious, but I'll look into the way the system recognizes
> >> the iPod... there must be some simple trick to go, ok this is an iPod
> >> and not some other device.
>
> > On my system (linux, 2.6.22 kernel), this turns up some interesting
> > results...
>
> > $ sudo grep -R -i ipod /usr/src/linux/*
>
> > ...particularly, the following files look like they have some stuff
> > for identifying ipod devices...
>
> > /usr/src/linux/drivers/ieee1394/sbp2.c
> > /usr/src/linux/drivers/usb/storage/unusual_devs.h
>
> > Regards,
> > Jordan
>
> Interesting, ieee1394 is FireWire, but iPods haven't shipped with
> that in quite some time.
> none the less, if you look in there and happen to see anything
> interesting, let me know please!
> I don't currently have a Linux system running, even it requires
> better hardware than my current crop of old hardware...

Interesting bits...

==snip==

	/* iPod 4th generation */ {
		.firmware_revision	= 0x0a2700,
		.model_id		= 0x000021,
		.workarounds		= SBP2_WORKAROUND_FIX_CAPACITY,
	},
	/* iPod mini */ {
		.firmware_revision	= 0x0a2700,
		.model_id		= 0x000023,
		.workarounds		= SBP2_WORKAROUND_FIX_CAPACITY,
	},
	/* iPod Photo */ {
		.firmware_revision	= 0x0a2700,
		.model_id		= 0x00007e,
		.workarounds		= SBP2_WORKAROUND_FIX_CAPACITY,
	}

========

==snip==

/* Submitted by Sven Anderson <sven-linux / anderson.de>
 * There are at least four ProductIDs used for iPods, so I added
0x1202 and
 * 0x1204. They just need the US_FL_FIX_CAPACITY. As the bcdDevice
appears
 * to change with firmware updates, I changed the range to maximum for
all
 * iPod entries.
 */
UNUSUAL_DEV( 0x05ac, 0x1202, 0x0000, 0x9999,
		"Apple",
		"iPod",
		US_SC_DEVICE, US_PR_DEVICE, NULL,
		US_FL_FIX_CAPACITY ),

/* Reported by Avi Kivity <avi / argo.co.il> */
UNUSUAL_DEV( 0x05ac, 0x1203, 0x0000, 0x9999,
		"Apple",
		"iPod",
		US_SC_DEVICE, US_PR_DEVICE, NULL,
		US_FL_FIX_CAPACITY ),

UNUSUAL_DEV( 0x05ac, 0x1204, 0x0000, 0x9999,
		"Apple",
		"iPod",
		US_SC_DEVICE, US_PR_DEVICE, NULL,
		US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE ),

UNUSUAL_DEV( 0x05ac, 0x1205, 0x0000, 0x9999,
		"Apple",
		"iPod",
		US_SC_DEVICE, US_PR_DEVICE, NULL,
		US_FL_FIX_CAPACITY ),

/*
 * Reported by Tyson Vinson <lornoss / gmail.com>
 * This particular productId is the iPod Nano
 */
UNUSUAL_DEV( 0x05ac, 0x120a, 0x0000, 0x9999,
		"Apple",
		"iPod",
		US_SC_DEVICE, US_PR_DEVICE, NULL,
		US_FL_FIX_CAPACITY ),

========

Don't ask me about what exactly all the code means, I just thought it
looked promising. Ps. You can browse and search the kernel source
online: http://lxr.linux.no/linux

Regards,
Jordan