[sane-devel] Slightly off topic: Anyone know anything about SCSI CD commands?

kilgota at banach.math.auburn.edu kilgota at banach.math.auburn.edu
Mon Jan 5 23:24:14 UTC 2009


Wishing everyone a prosperous, happy, and peaceful year 2009.

For a lark, I bought a rather worthless but very cheap gadget for myself 
for Christmas. It is a very small digital picture frame which one can hang 
on the key ring. The little book which came with it says that to use it, 
one merely plugs it in on a computer running XP or Vista, and the app is 
already installed which will communicate with it. I tried this, and it is 
so. With the app, one can view JPEG images on the device, also move images 
to/from, and delete what is on the device. Then, the device has a 
primitive OS which will allow various things to be done, such as to 
display the time instead of a picture. It also gets reported as an 
external drive, with the information that it is "full" and AFAIK one 
cannot access it directly.

I made one snoop log, which probably does not yet have the serious 
information needed to continue with this thing. I spent most of my time 
fighting Vista to get the log made.

So much for the background. What it is, is a Mass Storage Bulk Transport 
device which comes up as a /dev/sg, not as a /dev/sd. So in other words it 
is possible to talk to it with Mass Storage Bulk Transport, but one can 
not mount it. In other words, similar to some audio CDs, or to some 
scanners. In the forwarded message below, there is some report of the 
results of various commands, and also a question at the end, about a 
certain SCSI command with which I am not acquainted and can not seem to 
find relevant documentation. I hope that someone can help me with the 
question.

Theodore Kilgore


---------- Forwarded message ----------
Date: Mon, 5 Jan 2009 12:57:13 -0600 (CST)
From: kilgota at banach.math.auburn.edu
To: Pete Zaitcev <zaitcev at redhat.com>
Cc: usb-storage at lists.one-eyed-alien.net
Subject: Re: [usb-storage] A keychain digital picture frame.



On Thu, 1 Jan 2009, Pete Zaitcev wrote:

> On Thu, 1 Jan 2009 21:34:00 -0600 (CST), kilgota at banach.math.auburn.edu 
> wrote:
> 
>> I successfully made a snoop log of one photo being moved over to the
>> device. Indeed, it appears to be using Mass Storage Bulk Transport
>> commands.
> 
> Try to eject the pseudo-CD on Linux, maybe the device will re-enumerate
> itself then.
> 
> -- Pete
>

Well, as I mentioned earlier, the eject did not work. Therefore, I have done a 
bit of looking through that log file. I have also gotten a copy of sg3-utils 
and played with it a little bit.

One thing seems clear, that the device reports itself as a CD. The sectors are 
2048 bytes, and it uses READ_10 to read a sector, or sectors. Lots of fairly 
routine stuff. Some selections:

     00000000: 55 53 42 43 c8 e6 95 84 08 00 00 00 80 00 0a 25
     00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

reports

     00000000: 00 01 e7 ff 00 00 08 00 (0x1e7ff sectors of size 0x800)

so I wonder if it has the off-by-one error. It would not make any difference 
unless one were going to mount it, I suppose...

I do not know enough about this to understand the response to REQUEST_SENSE

     00000000: 55 53 42 43 88 d5 9f 84 12 00 00 00 80 00 0c 03
     00000010: 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00

which gets various responses. One of them is

     00000000: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00
     00000010: 00 53

Windows keeps insisting on sending

     00000000: 55 53 42 43 28 3e 6e 84 20 00 00 00 80 00 0a 51
     00000010: 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00

which makes the device to throw a fit, and a reset is required. I think that 
this has something to do with initializing RAID setup?

Now, scsi.h says the following one is READ_TOC:

     00000000: 55 53 42 43 88 2b 82 84 0c 00 00 00 80 00 0a 43
     00000010: 00 01 00 00 00 00 00 0c 00 00 00 00 00 00 00

I do not understand what the response might be telling me, which is

     00000000: 00 0a 01 01 01 14 00 a0 00 00 00 00

though I do vaguely remember that the device claimed to have room for 45 
images. The numbers strung out here do add up to that, which might or might not 
be significant.


Here is a sample of READ_10

     00000000: 55 53 42 43 c8 e6 95 84 00 08 00 00 80 00 0a 28
     00000010: 00 00 00 00 19 00 00 01 00 00 00 00 00 00 00

(read one sector at 0x19)
to which the reply begins with

     00000000: 5b 41 55 54 4f 52 55 4e 5d 0d 0a 49 43 4f 4e 3d
                A  u  t  o  r  u  n     i  c  o        O  P  E
     00000010: 41 75 74 6f 72 75 6e 2e 69 63 6f 0d 0a 4f 50 45
     00000020: 4e 3d 49 6d 61 67 65 56 69 65 77 65 72 34 2e 65
                x  e     -  C  O  P  Y  F  I  L  E
     00000030: 78 65 20 2d 43 4f 50 59 46 49 4c 45 00 00 00 00
     00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     00000050: 00 00 00 (the rest of the sector is empty)

and then

     00000000: 55 53 42 43 08 00 5b 84 38 00 00 00 80 00 0c 12
     00000010: 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00

followed by a "reply" (my annotations, which could be partly wrong of course)

05 means CDROM 0x80 means removable medium then 0s means scsi(?) and 02(?)
1f is something about extra length and then

                                        I  n  s  i  g  n  i  a
     00000000: 05 80 02 02 1f 00 00 00 49 6e 73 69 67 6e 69 61
                N  S  -  D  K  U  Y  X  X  0  9
     00000010: 4e 53 2d 44 4b 45 59 58 58 30 39 00 20 20 20 20
                            t  e  n  x  d  s  k        E  Y  X
     00000020: 00 20 20 20 74 65 6e 78 64 73 6b 00 00 45 59 58
                X  0  9
     00000030: 58 30 39 00 20 20 20 20


But then I got a bit of the way through the log file, and it came up with

     00000000: 55 53 42 43 08 00 5b 84 00 80 00 00 80 00 0c c1
     00000010: 11 31 0f 30 01 80 00 00 00 00 00 00 00 00 00

to which the reply is a block, and then the command is repeated, apparently 
with a different answer, then still a third time (at least).

I cannot find much information about the SCSI command 0xc1. What little I did 
find would lead me to believe that, again, it has something to do with a CD. 
Does anyone know where to learn more about this, or actually know the 
information, to save the trouble of chasing it?


Theodore Kilgore



More information about the sane-devel mailing list