Connectez le pilote alauda à un périphérique mtd

J'ai un lecteur de carte USB, un Olympus MAUSB-10. Il fournit un access flash direct aux maps SmartMedia ou xD, en utilisant le pilote Linux alauda . Ceci est différent d'un lecteur de carte typique qui l'expose simplement comme un périphérique de stockage de masse USB standard.

Il y a des pilotes dans le kernel Linux qui vont faire la chose FTL et exposer cela comme un bloc standard, mais je veux un access direct au flash. Je me demandais s'il est possible d'utiliser les divers utilitaires de mtd-tools pour lire, écrire et effacer directement.

L'appareil est donc reconnu par lsusb , et les pilotes aluada et nand_ecc sont chargés. Mais cat /proc/mtd ne révèle pas un autre périphérique MTD disponible, et je ne vois aucun périphérique supplémentaire dans /dev . Comment puis-je créer un nouveau périphérique mtd et le connecter au pilote alauda?

Si nous regardons le code source du pilote dans le kernel Linux ( drivers/mtd/nand/alauda.c ), nous voyons que le périphérique mtd doit être appelé "alauda".

Par exemple, dans cmx270_nand.c le nom mtd est cmx270-0. Dans les informations de journal du kernel à ce sujet, ressemble à:

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

Vérifiez dmesg (grep alauda, ​​MTD), et si votre carte xD est reconnue avec succès, enfin pour accéder au périphérique MTD, essayez de créer /dev/mtdblockX et /dev/mtdX avec mknod .

  1. retirer (rmmod) le pilote ums-alauda
  2. après avoir branché l'appareil, vérifiez si l'printing de la sonde du module alauda est visible via dmesg
  3. si périphérique / dev / mtd0 pas vu, rmmod alauda, ​​et insmod à nouveau
    • il ne devrait pas y avoir un besoin de mknod. (essayez avec le 'couvercle' fermé).