Ich habe sooo lange dafür gebraucht, jetzt möchte ich es leuten anbieten, die folgendes brauchen:

  • Ein mmc.o Kernelmodul
  • kompiliert für OpenWRT Kamikaze mit 2.4er Kernel
  • für einen Linksys WRT54GL 1.1
  • mit den GPIO-Pins SD_DI 2, SD_DO 4, SD_CLK 3, SD_CS 7

Das Kernelmodul ist unter http://stuff.janzen.it/mmc.o herunterzuladen. Einfach ein wget http://stuff.janzen.it/mmc.o -O /lib/modules/2.4.35.4/mmc.o ausführen, eventuell rmmod mmc damit ein vorher geladenes entfernt wird und mit insmod mmc das neue laden.

Fall ein solcher Fehler auftritt:

[INFO] mmc_hardware_init: initializing GPIOs
[INFO] mmc_card_init: the period of a 380KHz frequency lasts 524 CPU cycles
[INFO] mmc_card_init: powering card on. sending 80 CLK
[INFO] mmc_card_init: 80 CLK sent in 43804 CPU cycles
[INFO] mmc_card_init: resetting card (CMD0)
[FATAL] mmc_card_init: invalid response from card: ff found, waiting for 01
[INFO] mmc_card_init: the period of a 380KHz frequency lasts 524 CPU cycles
[INFO] mmc_card_init: powering card on. sending 80 CLK
[INFO] mmc_card_init: 80 CLK sent in 43471 CPU cycles
[INFO] mmc_card_init: resetting card (CMD0)
[FATAL] mmc_card_init: invalid response from card: ff found, waiting for 01
[ERROR] mmc_init: got an error calling mmc_card_init: 01
[ERROR] mmc_check_media: change detected but was not able to initialize new card: ffffffff

dann ist die pinbelegung falsch. Bei meinem Modul ist sie fest reincodiert, wie oben beschrieben.

Richtig sieht es so aus:

[INFO] mmc_hardware_init: initializing GPIOs
[INFO] mmc_card_init: the period of a 380KHz frequency lasts 524 CPU cycles
[INFO] mmc_card_init: powering card on. sending 80 CLK
[INFO] mmc_card_init: 80 CLK sent in 43803 CPU cycles
[INFO] mmc_card_init: resetting card (CMD0)
[INFO] mmc_card_init: doing initialization loop
[INFO] mmc_card_init: card inited successfully in 605 tries (18719153 CPU cycles).
[INFO] mmc_init: MMC/SD Card ID:
02 54 4d 53 44 32 35 36 0d 7a 53 c5 66 00 53 79 [INFO] Manufacturer ID : 02
[INFO] OEM/Application ID: TM
[INFO] Product name : SD256
[INFO] Product revision : 0.13
[INFO] Product SN : 7a53c566
[INFO] Product Date : 2005-3
[INFO] mmc_card_config: size = 249088, hardsectsize = 512, sectors = 498176
[WARN] mmc_init: hd_sizes=249088, hd[0].nr_sects=498176
[INFO] mmc_card_init: set_blocklen (CMD16) succeeded !
Partition check:
mmca: p1 p2

Quelltext von http://forum.openwrt.org/viewtopic.php?id=9653
Weitere Infos auf http://wiki.openwrt.org/OpenWrtDocs/Hardware/Linksys/WRT54GL