NEC Aterm WG2200HP

WG1400HP/WG1800HP/WG1800HP2に前後して同じQCA9558搭載機であることを把握し、何度か迷いつつ確保し作業を行ったものです。
まとめていきます。
仕様
既に9年程前に発売されたQCA9558搭載機であり、AR9344搭載のWR8750N等よりはやや新しいとはいえ、全体的な構成は古めです。
法律の関係上、無線機能の使用は非推奨です。
共通
- SoC: Qualcomm Atheros QCA9558
- RAM: DDR2 128MiB
- WAN/LAN: 1000Mbps x1/1000Mbps x4
- USB 2.0 Type-A x1
- Flash: SPI-NOR 16MiB
- UART: 9600bps(三角マークから3.3V, GND, NC, TX, RX)
その他詳細については、雑記を参照。
OpenWrt化
後述のメーカーファームウェアにおける仕様によりWebUIからの投入が不可能である為、シリアルコンソールでの操作が必要です。
手順はコミットを参照してください。
備考
全てのLEDはSoCではなくI2Cのエキスパンダに接続されており、それ故にエキスパンダの認識が完了するまでは制御することができない。過去に同系統のエキスパンダを採用しているデバイスのサポートが投入された際、kernelのconfigによりドライバがビルトインされるよう構成されている為、幸いにもWR8750Nとは異なりブート中にステータス表示用のLEDとして使用できるようになっている。
内部USBハブのRESETラインがLED同様にエキスパンダのGPIOに接続されており、こちらもLED同様にWR8750N等とは異なり早い段階で構成されUSBポートもすぐに使用可能になる。
メーカー出荷時に搭載されているブートローダは、WR8750N等やWG1400HP等と同様にファームウェア領域において特殊なファイルシステムを必要とする。このファイルシステムはOpenWrtで扱うことができず、sysupgradeイメージをFlashからブートすることができない為、initramfsベースのfactoryイメージでブートした際にブートローダをU-Bootへ入れ替える必要がある。
このU-Bootは利用できるパーティションサイズが
0x20000 (=128KiB)に限られる関係上、サイズ低減の為にネットワークサポートやその他様々な機能/コマンドを無効化しており、kernelが破損していて文鎮化した際などの復旧にはloadbやloadxほかシリアルコンソール経由の投入のみが利用可能。また、環境変数領域の保存に使用できるパーティションが存在しない為、saveenvコマンドは利用不可。元のブートローダで設定されている
baudrate=9600bpsでは遅すぎることもあり、U-Bootではbaudrate=115200bpsに設定し、Linux Kernelにもそれを渡すように設定済。なお、元のブートローダからinitramfs-factoryイメージをブートした場合は、9600bpsで表示される。
作業時の色々
WG1800HPの複数バージョンと同様に、WebUIからのファームウェア投入時にファームウェアデータのサイズチェックが行われ、一定以上のデータ長である場合蹴られるようである。手元で確認したところ、現在公式サイトからダウンロードできる全バージョンでこのチェックが行われており、WG1800HPの様に古いバージョンへダウングレードすることによるこの制限の回避ができない。この為、OpenWrtの導入にはどうしてもシリアルコンソールを介した操作が必要となる。
モチベーション次第では、将来的にU-Bootを使用したWebUIから投入可能な踏台用factoryイメージを独自に出す可能性が無きにしも非ず。
色々
WebUIから投入できない点は引っ掛かるものの、QCA9558を搭載するNetBSDベースなAtermシリーズとしては最後の1つも投入でき、やり切った感が大きい。
モノとしてはこの機種も既に古い為、積極的に確保して使うようなものではないものの、USBポートを搭載しているので余っている個体で遊んでみるには良さそうか。