When i bought my digital camera (a Olympus C990Z), an USB card reader was given with this camera. Linux has no support for this USB reader, and it’s not recognized as a UMS (USB Mass Storage). After a long time, i finished to wrote my own driver for Linux 2.4 after contacting all manufacturers (Foxconn, …) with no luck.

This driver patch the Linux Kernel (a patch for the 2.6 exists) and add read support. You needs an external device (like camera) to delete or format the card. Write support can be add, but when i play with unknown writing command, I format all sectors of the card. And now it is unusable, so write support is not enable in this driver (but the some userland tools can write to the card).

I've test this USB smartmedia reader with the following card: 8Mo 32Mo 64Mo

You can found patches for Linux (2.4 and 2.6) below.

Size in bytes Name
32149 patch-2.4.10-hh501-0.3
36282 patch-2.6.10-ac1-hh501-0.3.patch
36642 patch-2.6.2-rc2-hh501-0.3.patch

I don't support Windows OS, so don't send me mails about where to find a windows drivers for your computer. I will juste delete them, please save my bandwidth.

How to use:

You need a small firmware for the cardreader to works. Firmware is found in the original windows driver. Some random bits can be found here.

Size in bytes Name
18306 hh501.hex
46752 hh501_firmware.h

If you are using the hotplug subsystem. You can put this 3 files into /etc/hotplug/usb

Size in bytes Name
668 hh501
18306 hh501.hex
263 hh501.usermap

Then do a chmod 755 /etc/hotplug/usb/hh501. This little shell script load the firmware using fxload. That comes with hotplug (or packages fxload on Debian GNU/Linuw). The firmware will be loaded into the reader when plugged in your computer. The reader reboots and will be recognized by the usb_storage module.

Now, you need to patch your kernel with the appropriate patch. Choose these options in the kernel config.

Kernel 2.6

Device Drivers —>   USB support —>    <M> Support for Host-side USB    <M> USB Mass Storage support    [*] Foxconn HH501 SmartMedia support (EXPERIMENTAL)

Technical Information


Size in bytes Name
4096 files
4096 patches