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