PDA

View Full Version : Yet Another USB Memory Card Reader Thread



funkyrat
02-21-2004, 09:07 PM
<Obligatory>I Love Knoppix! :D</Obligatory>

It appears that my Shuttle 6-in-1 memory card reader is being recognized and mounted properly, but I still can't get read it. I was hoping somebody could give me a clue.

Here's what I've done (most of this was culled from other threads here)...

(As root)

In the 'append' statement in /etc/lilo.conf I added "max_scsi_luns=6" and then executed /sbin/lilo

When I rebooted the following messages appeared in /var/log/dmesg



usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-ohci.c: USB OHCI at membase 0xe0c82000, IRQ 5
usb-ohci.c: usb-00:02.0, nVidia Corporation nForce2 USB Controller
usb.c: new USB bus registered, assigned bus number 1
usb-ohci.c: USB OHCI at membase 0xe0c84000, IRQ 11
usb-ohci.c: usb-00:02.1, nVidia Corporation nForce2 USB Controller (#2)
usb.c: new USB bus registered, assigned bus number 2
usb.c: registered new driver usb-storage


...also



Kernel command line: BOOT_IMAGE=Linux ro root=303 hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi hdf=scsi hdg=scsi hdh=scsi max_scsi_luns=6 apm=power-off nomce
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Attached scsi removable disk sdb at scsi1, channel 0, id 0, lun 1
Attached scsi removable disk sdc at scsi1, channel 0, id 0, lun 2
Attached scsi removable disk sdd at scsi1, channel 0, id 0, lun 3


cat /proc/scsi/usb-storage-0/1 shows the following...


Host scsi1: usb-storage
Vendor: Ltd
Product: Winter Ver1.3
Serial Number: 104029804230
Protocol: Transparent SCSI
Transport: Bulk
GUID: 07cc03200000104029804230
Attached: Yes


I then made mount points underneath /mnt, called sda1-sda4

mount -t vfat /dev/sda1 /mnt/sda1 returns a "mount: /dev/sda1 is not a valid block device" error. the same error is returned for sda1-sda4.

mount -t usbfs /dev/sda1 /mnt/sda1 works!

However, here are the contents of /mnt/sda1...


dr-xr-xr-x 1 root root 0 Feb 21 14:13 .
drwxr-xr-x 14 root root 368 Feb 21 14:51 ..
dr-xr-xr-x 1 root root 0 Feb 21 14:13 001
dr-xr-xr-x 1 root root 0 Feb 21 14:13 002
-r--r--r-- 1 root root 0 Feb 21 14:13 devices
-r--r--r-- 1 root root 0 Feb 21 14:13 drivers


devices and drivers are both text files. devices contains...


T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=e0c84000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=e0c82000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=07cc ProdID=0320 Rev= 0.05
S: Manufacturer= Ltd
S: Product=Winter Ver1.3
S: SerialNumber=104029804230
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms


drivers contains...


usbdevfs
hub
usb-storage


001 and 002 are directories. 001 contains two binary files 001 and 002, while 002 contains binary file 001.

I've basically tried everything I know and am sort of at a brick wall in terms of my knowledge and understanding of linux devices. Any help would be greatly appreciated.

spurious
02-22-2004, 12:35 AM
It seems that your card reader doesn't use the vfat filesystem. What is the specific model of your Shuttle 6-in-1 reader? You might also want to google the model name along with the keyword "filesystem".

Try mounting with msdos rather than vfat; ie. mount -t msdos /dev/sda1 /mnt/sda1

Unfortunately, I don't have your brand of card reader, so I am limited in my ability to help (http://www.knoppix.net/forum/viewtopic.php?t=6954). It's entirely possible that your card reader may use a non-standard USB CompactFlash chip. See this project for an attempt to reverse engineer a linux driver for an non-standard USB chip: http://sourceforge.net/projects/usbat2

You might also want to check the search results for "Shuttle" (http://www.qbik.ch/usb/devices/search_res.php?pattern=shuttle) on the Linux-USB Device Overview (http://www.qbik.ch/usb/devices/index.php)

funkyrat
02-22-2004, 12:53 AM
Thanks for replying.


It seems that your card reader doesn't use the vfat filesystem. What is the specific model of your Shuttle 6-in-1 reader? You might also want to google the model name along with the keyword "filesystem".

Actually, from the documentation it apparently supports both vfat and msdos. I did try mounting it as msdos as well and got the "not a block device" error as I did with vfat.

It's a Shuttle PC-12 6-in-1 card reader. See here (http://www.newegg.com/app/ViewProductDesc.asp?description=20-212-001&depa=0).

From the Linux How-To that comes with it, it appears to be fairly standard. These are the kernel options it recommends:


The USB reader need following items:
SCSI emulation support = y
SCSI support = y
SCSI disk support = y
SCSI generic support = y
Support for USB = m
UHCI Alternate Drive(JE) or OHCI (Compaq,iMacs,OPTi,SiS,ALi,...) support = m
USB Mass storage support = m
Preliminary USB device filesystem = y
Dos FAT fs support = y
MSDOS fs support = y
UMSDOS: Unix-like file system on top of standard MSDOS fs
VFAT (Windows-95) fs support

The option items:
USB verbose debug message = y
USB Mass storage verbose debug =y


In terms of mounting it, their Linux How-To says that "mount /dev/sd? /mnt/sd?" should work (where ? is the device name/number). I tried that as well, of course, and still got the "not a block device" error.

Do you see anything non-standard about the kernel options it requires?