2015年8月3日月曜日

Tomato ファームウェアの SD カード動作バージョン

リンクシス WRT54G V2 において SD カードの動作検証を行なっていたところ、SD カードを認識するバージョンと認識しないバージョンが存在することが判明していました。しかし WRT54G V2 ではフラッシュメモリが 4MB しか搭載されておらず、一部のバージョンにおいて、4MB のフラッシュメモリへインストール出来ない大きなになっていたため、どのバージョンから SD カードを認識しなくなったのか不明でした。

WRT54GS V1 へ Shibby 版 Tomato ファームウェアをインストールして SD カードの動作確認を行なっているところです。

そこで昨日 8MB のフラッシュメモリを搭載している WRT54GS V1 に SD カードソケットを取り付ける加工を行なっていました。そしてこの SD カードへの対応が行われた WRT54GS V1 を使用して、どのバージョンから SD カードを認識しなくなったのか調査してみました。

Shibby 版 Tomato ファームウェアのバージョン 108 までは SD カードを認識して動作します。

WRT54G V2 では確認出来なかったバージョン 108 から順次インストールしては SD カードの認識を調査しました。

結果としてバージョン 108 まで SD カードを認識しました。そしてバージョン 109 から SD カードを認識しなくなりました。SD カードを認識しないときには、以下のようなエラーログがシリアルコンソール上に表示されます。
Unhandled kernel unaligned access in unaligned.c::emulate_load_store_insn, line 481:
$0 : 00000000 c01d0000 c01d1f64 818a9420 0000108b 00000000 000001e4 001dc400
$8 : c01d1f04 80148c90 81b51c20 801b0000 801b0000 801b0000 801b0000 ffffffff
$16: c01d1f88 c01cc6fc c01d1e40 ffffffea 00000060 8190f000 81abb680 004a6cf0
$24: 00000018 00000000                   81ae0000 81ae1e58 00000003 c01d0bc8
Hi : 00000000
Lo : 00000c00
epc   : c01d0c44    Tainted: P
Status: 1000b803
Cause : 00000014
PrId  : 00029007
Process modprobe (pid: 119, stackpage=81ae0000)
Stack:    004adb20 00000079 81b51c20 00000004 00000003 00000007 00000020
 00000002 00000001 c01cb000 00000003 c01cb000 004adb20 8001524c 801b0000
 000001f2 000007df 00000002 00000060 c01a9000 c01cb060 00007060 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
 00000000 ...
Call Trace:   [<8001524c>] [<c01cb060>] [<80008ce0>] [<8005cd2c>]

Code: 00063080  3c02c01d  24421f64 <ac22801d> 00260821  ac228ff4  ae070000  3c02c01d  8c421dc4
SD カードの設定画面のエラー表示です。


Shibby 版の Tomato ファームウェアの変更記録(Changelog)のページの中のバージョン 109 を確認してみると次のようになっていました。この中の変更で SD カードを認識しなくなったようです。直接 SD カードに関係する部分は見当たりません。これはちょっと困りました。さてどうするか?思案に暮れそうです。

Tomato by Shibby - Changelog (ang.)
http://tomato.groov.pl/?page_id=78
  • [RELEASE] 109
  • Webmon Backup Script – look Administration -> Logging
  • Busybox: Fix tune2fs and revert e2label tool
  • EtherState: cosmetics changes – looks better
  • Ethernet State: fix when WAN is tagged – thx @Victek
  • Allow WNR3500Lv2 to upgrade from Web interface
  • Openssl: enable s_client
  • rp-pppoe: upgrade to 3.11
  • Dnsmasq upgrade to 2.67test3 – thx @Kevin
  • Added refresh timer to tools/system page – thx @Toastman
  • Add Time 0:01 and 23:59 to Scheduler
  • Backported new exportfs method (365-exportfs1 patch from WL500g) – thx @RMerlin
  • Extended MOTD with GUI – written by @Monter, modified by @Shibby – can be disabled in GUI Administration -> Admin Access -> SSH
  • IPTraffic bugfix – thx @RMerlin
  • StealthMode v0.5 – Sunset – thx @Monter – please run stealthMode via SSH/telnet for more information
  • Fix for dhcpv6 with prefix delegation – thx @Toastman
  • Remove radvd & libdaemon, use dnsmasq for IPv6 RA instead – thx @Kevin
  • Added ipset support – thx @RMerlin
  • Implement multithreaded kernel building to speed up firmware compile time – thx @RMerlin
  • Do not write out ‚no-dhcp-interface’ in dnsmasq.conf as is superfluousas no dhcp-range has been set – thx @Kevin

今後の予定

Shibby 版の Tomato ファームウェアでは、SD カードを動作させるファームウェアは、一部に 4MB のフラッシュメモリへインストール出来ない大きさのファームウェアも存在しますが、ぎりぎりインストールできる状態となっています。しかし USB 対応のファームウェアのように必ず 8MB のフラッシュメモリを必要とするため、SD カード対応のファームウェアは 4MB フラッシュメモリ搭載機種にとって記憶容量を増加させるためのファームウェアとしてはかなり有望なものと思われます。

しかしバージョン 109 から最新の 124 まで SD カードの問題点を発見して修正が行われなかったことを考えると、世間一般では SD カードを追加させて記憶容量を増加させる手法は殆ど行われていないのかもしれません。

なお USB ポートを設置する場合、Shibby 版の Tomato ファームウェアを 4MB フラッシュメモリへインストールすることは不可能ですが、OpenWrt であればストレージの用途に限ってはインストールできることが WRT54G V2 で確認出来ています。

Tomato や OpenWrt の SD カードへの対応の悪さを考えると、これからは USB ポートを追加する方向で注力した方がよい結果が得られそうだと感じています。とりあえず WRT54G v2 と WRT54GS V1 の二機種については USB ポートの追加の加工を完成させる方向で作業を行おうと考えています。とりあえず 12 ボルト電源から USB ポート用の 5 ボルト電源を作り出す三端子レギュレータは発注しました。この三端子レギュレータが到着次第、USB ポートの加工を行いたいと思っています。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。