PRを投げたタイミングが丁度OpenWrt 18.06の作業が開始された時期であり、しばらく中の人からのコメント等動きが無かったのでリリース後になるかなーと思っていましたが、今日マージされました。
Tama W06に続き、この機種についてもまとめておきます。
仕様
WSR-1166DHP/DHP2やVR500等でお馴染みのMT7621です。ただし、WN-GX300GRでは上位モデルのWN-AX1167GRに対して下位モデルという位置づけからか、シングルコアの "MT7621S" が搭載されています。
- SoC: MediaTek MT7621S (880MHz, 1C2T)
- RAM: DDR2 SDRAM 64MB
- Flash: SPI Flash 8MB
- WAN/LAN: 1000Mbps x1 / 1000Mbps x4
- UART: 115200bps(RJ45側からVcc, GND, TX, RX)
その他ハードウェアやKernel等細かい点の詳細については、雑記ブログにメモしてあるのでそちらを参照。
OpenWrt化
前回sysupgradeファームのみでOpenWrtを導入できたTama W06に対し、こちらはFlashこそ8MBあるものの、メーカーファームでは各OS領域4MB弱でデュアルイメージを構成しています。そのため、OpenWrtではそれぞれの領域に入りきらないのでfactoryファームは断念しました。
これにより、OpenWrtの導入にはシリアルコンソールの接続が必要になります。
- TFTPサーバを用意
PC側のIPアドレスを192.168.99.8に設定してWN-GX300GRと接続、WN-GX300GRのinitramfsファームをuImageWN-GX300GR
にリネームしたうえでTFTPディレクトリに置き、TFTPサーバを起動。 - U-Bootからinitramfsでブートさせる
WN-GX300GRに電源ケーブルを繋いで起動し、U-Bootの起動方法選択で "1" を選択しTFTPからイメージを取得してRAM上に展開しブートするモードへ。デバイスとサーバのIPアドレス、ファイル名は変更せずEnterキー3回押下でinitramfsイメージをTFTPサーバからダウンロードし、それを使用して自動的にブートが実行される。 - sysupgradeファームを投入
initramfsファームでのブートが完了したら、mtd erase firmware
を実行してメーカーファームを削除したうえでsysupgradeによりsysupgradeファームを焼き込む。 - 完了
2分前後掛かるものの、Flashへの書き込みが完了して再起動する。
備考
- OpenWrtでのシリアルコンソールのBaudrateは115200bpsに設定。ramipsでよくある57600bpsかと思っていたら、メーカーファームではU-BootもKernelも115200bpsだった。このため、OpenWrt化しても57600bpsではU-BootとOpenWrtで異なってしまうので、115200bpsを採用。
- OpenWrtでは2つあるOSイメージ用パーティションを結合して1つとして扱うようにしたため、initramfs上でバックアップしたメーカーファームの2つのOS領域 ("Kernel" + "app") を結合して
firmware.bin
などとし、 [sourcecode] mtd write firmware.bin firmware [/sourcecode] とすることでメーカーファームに書き戻すことが可能。
メーカー公式サイトで公開されているアップデート用ファームでもできそうだけど未検証。 - MT7621ではHW NATが実装されているため、WN-GX300GRでもNATのCPU負荷をかなり抑えることが可能。
雑感
今回はPRを出してからマージされるまで時間は掛かったものの(前述のとおりリリース準備のため)、議論を行うことは無くすんなりマージされたので一安心。
上位機種のWN-AX1167GRも某氏からパッチ案等頂いたのである程度組み上げてあるものの、実機が無く検証できないのでどうしたものやら。