さて、OpenWRTの再インストールで、SDカードの認識につまずいて、バージョンの変更を試みたんだけど、やっぱり新しいバージョン(というかパッケージ違い)はFONなんていうロースペックなデバイスには荷が重かった。動作が鈍すぎて使い物にならない。
というわけで、悩んだあげく、もう一度kamikaze 8.09に戻ってきた。
総本山DD-WRTのwikiページをよーく読んでみたら、kamikaze 8.09でSDカードを使う方法がちゃんと書いてあるじゃないの。
http://www.dd-wrt.com/wiki/index.php/Fonera_SD-Card_hack
このページの下の方ですよ。
まえからluci-app-mmc_over_gpioというパッケージが存在することは気がついていて、これをopkgでインストールしただけではちゃんと動かないことまでは確認していたのだが、このファイルをインストールした上で設定をちゃんとすれば動くことが判明した。
まずはopkgでインストールして設定ファイルの編集だ。
必要なファイルは
kmod-mmc kmod-mmc-over-gpio kmod-mmc-spi kmod-nls-base kmod-nls-cp437 kmod-nls-iso8859-1 luci-app-mmc_over_gpio
でopkg updateした後、opkg installで入れる。続いて
# nano /etc/init.d/mmc_over_gpio
ちなみに私はviのかわりにnanoを入れて使っている。macと共通なので。
add_device "default" 5 4 3 7 0
ここを以下のように編集する。つまりGPIOのピン設定が標準設定と改造FONで違っているわけだ。
add_device "default" 1 3 4 14 0 sleep 1 remove_device "default" sleep 1 add_device "default" 1 3 4 7 0
一旦1 3 4 14 0として消す意味はイマイチわからないが、言われた通りに編集し、
# /etc/init.d/mmc_over_gpio start
で再読み込み。
configfs on /config type configfs (rw) gpio-mmc: Failed to request mmc_spi module. mmc_spi spi32761.0: SD/MMC host mmc0, no DMA, no WP, no poweroff gpio-mmc: MMC-Card "default" attached to GPIO pins di=1, do=3, clk=4, cs=7 mmc_spi spi32761.0: can't change chip-select polarity root@OpenWrt:~# mmc0: new SD card on SPI mmcblk0: mmc0:0000 SD01G 1006080KiB mmcblk0: p1
こういうメッセージが出てくるとOK。
あとはお好きなようにマウントポイントを作って
# mkdir /mnt/mmc # mount /dev/mmcblk0p1 /mnt/mmc
マウントして完了。
なお、phpの状況は結局変わらず。簡単なスクリプトは動くけど、複雑なものになると、どうも上手く動かない。まあこのマシンパワーでphpでバリバリなwebページがまともに使えるとも思えないので、静的htmlでいいやという気になってきた。という訳で、いらないファイルは削って、できるだけ軽くしてやることにした。