kern/91896: Serial Number of USB Memory Sticks is not passed through to "camcontrol inquiry" command

Simson L. Garfinkel simsong at acm.org
Mon Jan 16 19:10:16 PST 2006


>Number:         91896
>Category:       kern
>Synopsis:       Serial Number of USB Memory Sticks is not passed through to "camcontrol inquiry" command
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 17 03:10:07 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Simson L. Garfinkel
>Release:        6.0-STABLE
>Organization:
Harvard
>Environment:
FreeBSD h1.ex.com 6.0-STABLE FreeBSD 6.0-STABLE #0: Sat Dec 24 19:27:02 EST 2005     simsong at h1.ex.com:/usr/src/sys/i386/compile/H1  i386

>Description:
The "camcontrol inquiry" command reports the serial number of some USB and FIrewire-attached devices, but not others.  I need these serial numbers for work that I do in computer forensics.

For example, my computer has 3 firewire drives on it now and 1 USB memory sticks. The firewire drives are Maxtor OneTouch II drives. Here is a devlist:

h1# camcontrol devlist
<Maxtor OneTouch II 0310>          at scbus0 target 0 lun 0 (da0,pass0)
<Maxtor OneTouch II 0310>          at scbus0 target 1 lun 0 (da1,pass1)
<Maxtor OneTouch II 0310>          at scbus0 target 2 lun 0 (da2,pass2)
<SONY SDX-300C 0404>               at scbus1 target 0 lun 0 (sa0,pass3)
<SanDisk Cruzer Mini 0.1>          at scbus2 target 0 lun 0 (pass4,da3)
h1# 

I can get the SN of the OneTouch drives:

h1# camcontrol inquiry 0:0:0
pass0: <Maxtor OneTouch II 0310> Fixed Direct Access SCSI-4 device 
pass0: Serial Number B6202SQH
pass0: 50.000MB/s transfers , Tagged Queueing Enabled
h1# 


But I can't get the SN of the Cruzer:

h1# camcontrol inquiry 2:0:0
pass4: <SanDisk Cruzer Mini 0.1> Removable Direct Access SCSI-2 device 
pass4: Serial Number 
pass4: 1.000MB/s transfers 
h1# 

It's worse than it looks; the serial number is actually being reported as control-underbar:

h1# camcontrol inquiry 2:0:0 | cat -v
pass4: <SanDisk Cruzer Mini 0.1> Removable Direct Access SCSI-2 device 
pass4: Serial Number ^_
pass4: 1.000MB/s transfers 
h1# 

So that's probably a bug in the kernel somewhere. 

Notice that I can get the serial number using the sysctl command:

h1# sysctl -a | grep dev.umass.0
dev.umass.0.%desc: SanDisk Corporation Cruzer Mini, rev 2.00/0.10, addr 2
dev.umass.0.%driver: umass
dev.umass.0.%location: port=1 interface=0
dev.umass.0.%pnpinfo: vendor=0x0781 product=0x5150 devclass=0x00 devsubclass=0x00 sernum="SNDK8CB7743691708407" intclass=0x08 intsubclass=0x06
dev.umass.0.%parent: uhub0
h1# 

Unfortunately, I can't figure out how to map from /dev/da3 to dev.umass.0.  THere's no obvious way that I have found. 

If you could tell me how to do that, that would be neat.  In the meantime, this bug should probably be fixed.

>How-To-Repeat:
              Atatch a memory stick and type "camcontrol devlist", then do an "camcontrol inquiry" on the device. You . won't see it's SN
>Fix:
              
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list