8

I have a USB card reader, an Olympus MAUSB-10. It provides direct flash access to SmartMedia or xD cards, using the Linux alauda driver. This is different from a typical card reader which just exposes it as a standard USB mass storage device.

There's drivers in the Linux kernel that will do the FTL thing and expose this as a standard block device, but I want direct flash access. I was wondering if it's possible to use the various utilities of mtd-tools to read, write, and erase directly to it.

So the device is recognized by lsusb, and drivers aluada and nand_ecc are loaded. But cat /proc/mtd isn't revealing another MTD device available, and I don't see any additional devices in /dev. How do I create a new mtd device and connect it to the alauda driver?

2 Answers 2

2

If we look at the source code of driver in the Linux kernel (drivers/mtd/nand/alauda.c), we see that the mtd device should be called "alauda".

For example, in cmx270_nand.c mtd name is cmx270-0. In kernel log information about it, looks like:

Creating 1 MTD partitions on "NAND 512MiB 3,3V 8-bit":
0x00000000-0x20000000 : "cmx270-0"

Check dmesg (grep alauda, MTD), and if your xD card successfully recognized, finally for accessing MTD device you may try create /dev/mtdblockX and /dev/mtdX with mknod.

1
  • Thank you for your reply. The xD card is successfully recognized (showed up as /dev/sde). mknod /dev/mtd0 c 90 0 doesn't do anything, mtdinfo gives me error 19 (no such device). /proc/mtd doesn't reveal any MTD devices. An lsmod | grep alauda reveals that mtd and mtdchar are both loaded. Any ideas?
    – LawrenceC
    Dec 25, 2012 at 18:13
1
  1. remove (rmmod) the ums-alauda driver
  2. after plugging in the device, check if module alauda's probe print is seen via dmesg
  3. if device /dev/mtd0 not seen, rmmod alauda, and insmod it again
    • there shouldnt be a need to mknod. (try with the 'lid' shut).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .