Foneraいじりの続き

DD-WRTファームウェアを上書きしてから調子にのって更に新しいバージョンに更新したり、色々な機能を有効にしてみていたら上がってこなくなった。仕方ないのでシリアルコンソールを繋いで、復旧作業。
どうやら起動プロセスの途中で刺さっていたようだ。純正ファームからの上書き手順の後半を再度実行して、復旧。やってから気付いたが、設定系のトラブルならばNVRAMとして使っているフラッシュの領域をクリアしてやれば済むはずだった。DD-WRTのウェブには2分間リセットを押し続ければクリアできるとあるので、シリアル繋いでまで操作する必要はなかった。
前回はファームウェアを更新しただけだったけど、今回は少し詳細を調べる。
まずはコンソールログインのためのssh。これはdropbearというMITライセンスのssh実装を使っている。公開鍵認証も含めて必要とされる機能は揃っているので、OpenSSHと比べても基本機能では遜色ない。実際にはこれをクランチバイナリにして使っているようだ。
このコマンドに限らず、ほとんどのコマンドはクランチバイナリで提供されており、/usr/sbinに若干専用コマンドがあるぐらい。シェルスクリプトによる機能拡張を想定しているため、ディスクの容量のわりにはコマンドがやたらと充実しており。find,awk,sedなんかもbusyboxの中に入ってある。
カーネルはやたらと新しいのを使っているようで、3/23版で2.6.20.3。純正ファームが2.4.xを使っているのに比べると無駄に豪華なカーネルFoneraの特徴はSSIDを二つ持てることだと思うが、DD-WRTにすると一つのデバイスとしてしか認識しないようだ。この辺はAtherosから提供されているBLOBに仕掛けがあるため、有効にできていないのかもしれない。
NetFlowと同等の機能があるようだけど、こちらはまだ正常に使えていない。snmpは内側からのリクエストには反応するけど、Ethernet経由だとiptablesで落とされてしまうようで値が取れない。
ウェブから設定を変更するとその都度反映のために無線のインターフェースが落ちてしまうのは仕方ないとしても、激しくパケットを投げているとそのうち、だんまりになってしまうのは常用するAPとしてはちょっと不安。ファームウェア自体の安定性は純正の方が良いようだ。CPUとWiFiのインターフェースを兼ねているチップが高温になりがちな点も指摘されているし、そもそもが少し余裕が無い設計なのかも。