Linux Kernel 2.4.x Driver for

CARRY USB Card Readers

Be warned: use this at your own risk !

[ last update: 2002-03-15 ]

Supported drives:

Supported slots:

Currently missing / todo's:

 

HOWTO

  1. First make sure you have the original carry drivers running under some Win32 plattform first: www.carry.com.tw.
    This driver will NOT work with OEM Firmwares (e.g. PQI Drivers) - they may be totally different.
  2. Copy the installed Win32 drivers from %SystemRoot%\System32\Driver or wherever to your Linux box (eg. to /usr/src/linux-2.4.XX/drivers/usr/storage).
    The drivers are normally named  "uiXXX.sys" / "XXXusb.sys" or similar (XXX = your device model).
    NEW: as carry has changed their drivers, see the download section for "older versions".
  3. Grab the patch and apply it to some recent kernel.
    cd /usr/src/linux-2.4.xx
    wget http://www.dauskardt.de/carry_2001-11-27_fwfree.diff.gz
    gunzip carry_2001-11-27.fwfree.diff.gz (or maybe don't incase apache's already done this)
    [Maybe try patch --dry-run -p1 <carry_2001-11-27.fwfree.diff first]
    patch -p1 <carry_2001-11-27.fwfree.diff
  4. Run paul's carry_make_firmware.pl script over these .dll's (.sys's). You should now have carry_firmwares.h file.
    cd drivers/usr/storage first.
  5. Check the resulting file "carry_firmware.h". It must contain at least one 'loader' and one firmware for your device.
  6. make menuconfig.
    Make sure you have: 
        SCSI (and "probe multiple luns"), SCSI-DISK, 
        all the USB stuff, USB-STORAGE, CARRY, Generic SSFDC, and the appropriate firmwares,
  7. unplug, rmmod usb-storage, make bzImage / modules / whatever.
  8. make modules_install
  9. insmod your new usb-storage or configure your hotplug / usbmgr
  10. plug in your reader
  11. enjoy your new /edv/sdX1 nodes.

 

Notes:

 

Downloads

 Thanks to

 

What things should/could look like (here a uismc): 

root@ice:~ > cat /proc/bus/usb/devices  
...
T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1
P: Vendor=07cc ProdID=0010 Rev= 0.01
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
I: If#= 0 Alt= 1 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl= 10ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=88(I) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=08(O) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=89(I) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=09(O) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=8a(I) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=0a(O) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
I: If#= 0 Alt= 2 #EPs=13 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb-storage
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl= 10ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=88(I) Atr=01(Isoc) MxPS= 256 Ivl= 1ms
E: Ad=08(O) Atr=01(Isoc) MxPS= 256 Ivl= 1ms
E: Ad=89(I) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=09(O) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=8a(I) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
E: Ad=0a(O) Atr=01(Isoc) MxPS= 16 Ivl= 1ms
root@ice:/home/sda > lsmod
Module                  Size  Used by
usb-storage           139776   0  (unused)
usb-uhci               21888   0  (unused)
usbcore                49376   1  [usb-storage usb-uhci]
root@ice:~ > cat /proc/scsi/scsi 
Attached devices: 
...
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: Carry Model: UISMA Rev: 0001
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 01
Vendor: Carry Model: UISMA Rev: 0001
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 02
Vendor: Carry Model: UISMA Rev: 0001
Type: Direct-Access ANSI SCSI revision: 02
root@ice:/home/sda > cat /proc/scsi/usb-storage-0/1 
   Host scsi1: usb-storage
       Vendor: Carry
      Product: UISMA
Serial Number: None
     Protocol: Transparent SCSI
    Transport: Carry Control/Bulk
         GUID: 07cc00100000000000000000
     Attached: Yes