Okay, I now have my 5.5G iPod working, and I know why recent iPods won't work.
It's because the recent iPod hard drives have a 2048 byte block size, whereas nearly every hard drive under the sun uses 512 byte block sizes. The wbfs utility assumes that it's going to be writing to 512 block sizes, and so when it performs sanity checks on the number of blocks on the hard drive, the number of blocks present differs by a factor of four.
To compile WBFS to work for the iPod, run the following command from the root of the WBFS source.
Code:
find ./* -type f | xargs sed -i '' -e 's/512/2048/g'
and then make as usual. This is a dirty patch, but seems to work. Use is exactly the same - so you'd start off by
Code:
./wbfs -p /dev/rdisk1s1/ init
or equivalent on your system.
The USBLoader requires no alterations to read from the drive or rip to it - I can only assume it looks at the block size more carefully once a drive has been formatted. The trick was just to get it formatted originally.
My 6G iPod does not work, but it gets the 'Could not initialize USB subsystem' error. I assume that as work on the loader continues, compatibility will improve, and then this technique would also work for it.
EDIT: Code dump on every game other than the first to be ripped, it would seem. Time to tinker with the USB loader.