Подключите драйвер alauda к устройству mtd

8

У меня есть USB кардридер, Olympus MAUSB-10. Он обеспечивает прямой флэш-доступ к картам SmartMedia или xD с помощью alaudaдрайвера Linux . Это отличается от обычного кард-ридера, который просто представляет его как стандартное запоминающее устройство USB.

В ядре Linux есть драйверы, которые будут выполнять FTL и выставлять его как стандартное блочное устройство, но я хочу прямой флэш-доступ. Мне было интересно, если можно использовать различные утилиты mtd-toolsдля чтения, записи и стирания непосредственно к нему.

Так что устройство распознается lsusb, а драйверы aluadaи nand_eccзагружаются. Но cat /proc/mtdне показывает другое доступное устройство MTD, и я не вижу никаких дополнительных устройств в /dev. Как создать новое устройство mtd и подключить его к драйверу alauda?

LawrenceC
источник

Ответы:

2

Если мы посмотрим на исходный код драйвера в ядре Linux ( drivers/mtd/nand/alauda.c), то увидим, что устройство mtd должно называться «alauda».

Например, в cmx270_nand.c имя mtd - cmx270-0. В журнале ядра информация об этом выглядит так:

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

Проверьте dmesg (grep alauda, ​​MTD) и, если ваша карта xD успешно распознается, наконец, для доступа к устройству MTD вы можете попробовать создать /dev/mtdblockXи /dev/mtdXс помощью mknod.

Ренат Зарипов
источник
Спасибо за ваш ответ. Карта xD успешно распознается (отображается как / dev / sde). mknod /dev/mtd0 c 90 0ничего не делает, mtdinfoвыдает ошибку 19 (такого устройства нет). /proc/mtdне показывает никаких устройств MTD. A lsmod | grep alaudaпоказывает, что mtdи mtdcharоба загружены. Любые идеи?
LawrenceC
1
  1. удалить (rmmod) драйвер ums-alauda
  2. после подключения устройства проверьте, виден ли отпечаток зонда модуля alauda через dmesg
  3. если устройство / dev / mtd0 не видно, выполните команду rmmod alauda и повторите его.
    • не должно быть необходимости в mknod. (попробуйте с закрытой крышкой).
user34879
источник