Silly me, a couple of mistakes in the above. Firstly I was trying to pass /mnt/cf as an argument rather than /dev/hda1, secondly I wasn\'t even passing that in the start_storage.sh script as I\'d left in a $2 instead.
With those errors fixed I\'m up to maslovsky\'s last point, WinXP recognises that there\'s a mass storage device attached, but that\'s it. In fact in the device manager it tells me that it has encountered error #10 (\"This device cannot start\"). I will look on msdn to see if I can find out what this means.
In the meantime here\'s the output of /proc/usb-storage to whet your appetites:
Case 1 - attempting to use /mnt/cf rather than /dev/hda1:
Protocol status:STORAGE_IDLE
USB status:USB_DISCONNECT
Media status:MEDIA_EJECT
Media chage:MEDIA_CHANGE_OFF
Device name:/mnt/cf
Device file descriptor:0x00000000
Device size:0x0
Device block size:0x512
Device write protect:WR_PROTECT_ON
Bulk in max size:0
Bulk out max size:0
device write error:0
device read error:0
device flush error:0
write data bulk out timout:0
device write max time:0 msec
Schedule task max num:0x512
Schedule task use num:0x1
Schedule task max use num:0x1
It doesn\'t think there\'s a card there even though the card was unmounted successfully. Fair enough I know this is not how you\'re supposed to do it.
Case 2 - Using /dev/hda1
Protocol status:STORAGE_IDLE
USB status:USB_DISCONNECT
Media status:MEDIA_INSERT
Media chage:MEDIA_CHANGE_ON
Device name:/dev/hda1
Device file descriptor:0x00000000
Device size:0x0
Device block size:0x512
Device write protect:WR_PROTECT_OFF
Bulk in max size:0
Bulk out max size:0
device write error:0
device read error:0
device flush error:0
write data bulk out timout:0
device write max time:0 msec
Schedule task max num:0x512
Schedule task use num:0x0
Schedule task max use num:0x2
Case 3 - Using /dev/hda1 and also passing extra size parameters to storage_fd.o (out_pkt_sz = in_pkt_sz = 256)
Protocol status:STORAGE_IDLE
USB status:USB_DISCONNECT
Media status:MEDIA_INSERT
Media chage:MEDIA_CHANGE_ON
Device name:/dev/hda1
Device file descriptor:0x00000000
Device size:0x0
Device block size:0x512
Device write protect:WR_PROTECT_OFF
Bulk in max size:0
Bulk out max size:0
device write error:0
device read error:0
device flush error:0
write data bulk out timout:0
device write max time:0 msec
Schedule task max num:0x512
Schedule task use num:0x0
Schedule task max use num:0x6
It looks like the only difference is in the Schedule task numbers. I don\'t know what that means.
I note the following points:
USB status:USB_DISCONNECT - this can\'t be good
Device size:0x0 - ?? Probably not a good sign
Bulk in max size:0
Bulk out max size:0 - ?? also probably not too good.
I now note (after looking at the kernel code) that passing these parameters is not necessary, but I thought it might have something to do with the shortpacket=1 and recvpacket=256 which I can\'t pass to sa1100_bi (as it doesn\'t want to accept them). I also note, after looking at the source for pxa_bi that these two parameters are probably not all that important as they simply override existing defaults (in the pxa, I don\'t have the source for the sa1100).
Right, well I\'m a little stuck now, but still hopeful that this will work itself out. I had wanted to test another mass storage kernel module (instructions here:
http://ahmedahamid.tripod.com/usbmass/usb_mass.html, source here:
http://ahmedahamid.tripod.com/usbmass/usb_mass.c), unfortunately I need the kernel headers for this. Could some kind soul with a set of the latest kernel headers for OZ point me to where I can get them (I use Windows so I can\'t bitkeeper them) or even just compile it and post a link?
I wonder if someone with a C860 could post their /proc/usb-storage file so I can see what it should look like? I\'ll stick a separate post in the Cxxx section to get more attention.
Simon