T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=03f0 ProdID=1004 Rev= 1.00 S: Manufacturer=Hewlett-Packard S: Product=DeskJet 970C S: SerialNumber=ES08J1D0WCJQ C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=01 Driver=usblp E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms I: If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
/dev/usb/scanner0 option connect-device option enable-image-bufferingDevice file: /dev/usb/scanner0 (major 180, minor 48)
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=03f0 ProdID=0401 Rev= 1.00 S: Product=HP ScanJet 5200C S: SerialNumber=SG01G170DDHT C:* #Ifs= 1 Cfg#= 1 Atr=60 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=usbscanner E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms E: Ad=83(I) Atr=03(Int.) MxPS= 1 Ivl=250ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=1894 ProdID=5103 Rev= 0.01 S: Manufacturer=JPC S: Product=JPC USB MOUSE C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=hid E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl= 10ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=0aec ProdID=5010 Rev= 1.00 S: Manufacturer=Card Reader/Writer S: Product=Card Reader/Writer S: SerialNumber=0AEC301000001A00 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl= 0msTo unusual_devs.h you need to add the following lines:
UNUSUAL_DEV( 0x0aec, 0x5010, 0x0100, 0x0100, "Card Reader/Writer", "neodio card reader/writer", US_SC_SCSI, US_PR_BULK, NULL, US_FL_FIX_INQUIRY),This device behaves very much like the Dimage 5 Camera listed below (it's a pseudo SCSI disk).
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0d7d ProdID=0120 Rev= 1.00 S: Manufacturer= S: Product=USB Disk Pro S: SerialNumber=072A101001A2 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=255ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=255ms E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl= 1msYou plug it in, you mount /dev/sda1 and you have access to your files on any Linux system (or other OS).
As of 2.4.22 the usb storage code from 2.6.x has been proted back to 2.4.x. This means a few small changes: My dimage cameras need now the following entries:
UNUSUAL_DEV( 0x0686, 0x4008, 0x0001, 0x0001, "Minolta", "DiMAGE 5", US_SC_SCSI, US_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), UNUSUAL_DEV( 0x0686, 0x400b, 0x0001, 0x0001, "Minolta", "DiMAGE 7i", US_SC_SCSI, US_PR_DEVICE, NULL, US_FL_SINGLE_LUN ),and the card reader works with
UNUSUAL_DEV( 0x0aec, 0x5010, 0x0100, 0x0100, "Card Reader/Writer", "neodio card reader/writer", US_SC_SCSI, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY),For the kernel configuration make sure that you have
CONFIG_SCSI=y CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_SM=m CONFIG_USB=m CONFIG_USB_DEVICEFS=y CONFIG_USB_STORAGE=m # optional: CONFIG_USB_STORAGE_DEBUG=yand do not set CONFIG_SCSI_MULTI_LUN !!. The dimage just hangs if you probe for multiple luns (update: I am now using this US_FL_SINGLE_LUN flag. Since then I have not tried what happens if you use CONFIG_SCSI_MULTI_LUN). USB debug seems to cause also problems:
# CONFIG_SCSI_MULTI_LUN is not set # CONFIG_USB_DEBUG is not setThere is also a problem with linux storage system not beeing able to handle different devices on the fly. I have to e.g unload usb-storage after I unplug one device and add a new one. If I don't "rmmod usb-storage" then the new device will just hang. I have automated this. It is therefore not a big problem but I can only use one device at a time.
remove) # dimage 7i if [ "$PRODUCT" = "686/400b/1" ]; then /sbin/rmmod usb-storage fi # dimage 5 if [ "$PRODUCT" = "686/4008/1" ]; then /sbin/rmmod usb-storage fiThis will automatically unload the module as soon as you unplug it.
2.4.22 (or higher) Kernels: UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x0002, "EagleTec", "External Hard Disk", US_SC_SCSI, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY|US_FL_MODE_XLATE ), The device identifies itself as follows: T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=05e3 ProdID=0702 Rev= 0.02 S: Product=USB TO IDE C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 96mA 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=0msAfter testing this device for a while I found the following problem: If you have the ehci module loaded (ehci-hcd) then it will fail large data transfers of several 100Mb (see below). The solution is to run "rmmod ehci-hcd". I don't know if this is true for all kernel version. I am using 2.4.22 at the moment and this is where I see this fault.
usb_control/bulk_msg: timeout usb_control/bulk_msg: timeout ... I/O error: dev 08:11, sector 0 EXT3-fs error (device sd(8,17)) in ext3_reserve_inode_write: IO failure I/O error: dev 08:11, sector 0 EXT3-fs error (device sd(8,17)) in ext3_new_inode: IO failure I/O error: dev 08:11, sector 0 I/O error: dev 08:11, sector 1980896 I/O error: dev 08:11, sector 1981144 I/O error: dev 08:11, sector 1981392 I/O error: dev 08:11, sector 1981640
Page Maintained by: Guido Socher, e-mail : guidosocher (at) gmail.com