« sub terrain, north fitzroy | Main | taxi »

minor things

misc/2002-01-17-cf-card-reader-1 misc/2002-01-17-cf-card-reader-2

Got a "CR-V7-UC" USB CompactFlash card reader ? Just to prove I'm not completely useless (merely "almost useless"), here's how you make one of these particular card readers work under Linux with the USB Mass-Storage driver. I picked the thing up in Singapore after buying the new camera, I've got an old 8MB card I figure I could use for portable storage or something (it's certainly not much use for pictures anymore, unfortunately). A few months later I finally sat down and decided I was going to make the damn thing work.

It's got a model number of "CR-V7-UC" on it, and it shows up as a "Genesys Logic, Inc." (vendor id 0x05e3) "USB TO IDE" (product id 0x0700) device (except Linux drives it through the USB-SCSI layer instead. Confused ? Good).

So here it is, in case it's useful to somebody. Apply this in the drivers/usb/storage directory. It's from a 2.4.17 kernel.

--- unusual_devs.h.dist	Wed Jan 16 09:36:09 2002
+++ unusual_devs.h	Thu Jan 17 11:11:30 2002
@@ -251,6 +251,12 @@
 		US_FL_MODE_XLATE | US_FL_START_STOP ),
 #endif
 
+UNUSUAL_DEV(  0x05e3, 0x0700, 0x0000, 0x9999,
+              "Genesys Logic, Inc.",
+              "USB TO IDE",
+              US_SC_SCSI, US_PR_BULK, NULL,
+              US_FL_FIX_INQUIRY | US_FL_MODE_XLATE),
+
 UNUSUAL_DEV(  0x0644, 0x0000, 0x0100, 0x0100, 
 		"TEAC",
 		"Floppy Drive",

Now, when you plug in your card reader, you'll get a heap of kernel messages (especially if you've enabled "USB verbose debugging messages", which, if you're trying to make a USB device work, is a particularly good idea).

If you do, say, a dmesg | grep -v usb-storage: just after plugging in the reader, you should see something like this near the end of all the output :

scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: Genesys   Model: USB TO IDE        Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 125185 512-byte hdwr sectors (64 MB)
sda: Write Protect is off
 sda1

...which will tell you that your card reader (in this case, with a 64MB card plugged into it) is available as /dev/sda1. Of course, if you have other SCSI (or emulated SCSI) hardware attached and running, you might get given a different device name - don't panic.

* 13:17 * geek