それぞれ柏豊四季と吉川のハードオフで見付けて少し迷った末に確保し、作業して投げ込んだものです。
まとめていきます。
仕様
基本的なハードウェア構成としては、既にサポート済のWRC-X1800GSTと大体同じものです。ただし、有線ポート数などが異なります。また、RAMは何故かMT7621機としては異様に大きい512MiBを搭載。
WMC-X1800GSTとWSC-X1800GSTでは、有線ポートを除けばほぼ同一のハードウェア構成。
法律の関係上、無線機能の使用は非推奨です。
共通
- SoC: MediaTek MT7621A
- RAM: DDR3 512MiB
- Flash: RAW-NAND 128MiB
- UART: J4, 115200bps(三角マークから3.3V, GND, TX, RX)
WMC-X1800GST
- WAN/LAN: 1000Mbps x1/1000Mbps x2
WSC-X1800GS
- WAN/LAN: -/1000Mbps x2
その他詳細については、雑記を参照。
OpenWrt化
メーカーファームウェアにおけるNAND Flash上のパーティション構成に絡んで、initramfs-factoryイメージを使用した2段階の導入です。
- WMC-X1800GST/WSC-X1800GSを起動
なお、WMCはルータモードに設定されていること、WSCは親機との連携が行われていないを前提とする http://192.168.2.1/
にアクセスし、ファームウェア更新ページに移動- OpenWrtのinitramfs-factory.binイメージを選択し、適用ボタンを押下
- 更新が完了し再起動後、OpenWrt上でsysupgrade.binイメージを用いてsysupgradeを実行
- Flashに書き込み後再起動され、OpenWrtが起動して完了
備考
メーカーファームウェアにおいてOSデータ用に割り当てられている領域が
0xF00000
(15MiB) しか無く、OpenWrtにおいてNAND機に用いるUBIフォーマットを使用するにはあまりにも少な過ぎる為、NAND Flash後方の未使用領域をrootfsに割り当てている。NAND Flashのbadblockを管理する機能がメーカーファームウェアとブートローダの両方で実装されておらず、OpenWrtにおいても有効化することができない為、ファームウェアの更新やその他Flashの書き換えを頻繁に行わないようにし、badblockを発生させないよう注意する。
- kernelの領域でbadblockが発生した場合、ブートローダが読み出したデータが破損している為ブート不可に陥り得る。rootfsではUBIを使用している為、多少の耐性はある。
作業時の色々
備考で触れた通り、メーカーファームウェアにおいて、NAND Flashに何故か異様なパーティション割り当てが為されている。OSデータ格納パーティションとして何故か
0xF00000
(15MiB) しか割り当てられていない上、全てのパーティションを合わせても0x1B80000
(27.5MiB) しか使用しておらず、128MiBあるFlashの4分の1にも満たない。
15MiBではOpenWrtにおいてNANDで使用されるUBIを使うとなるとあまりにも少な過ぎる為、そこはkernelのみに充て、rootfsとユーザー用領域にはNAND Flash後方の未使用領域 (0x6480000
, 100.5MiB) を充てることとした。既にサポート済のWMC-S1267GS2と同様に、LANポートのみのWSC-X1800GSでは親機との連携前は有線側のIPアドレスが
192.168.2.1
に設定されており、PC側のIPアドレスをそのアドレス帯に固定することでWebUIにアクセスが可能であった。
色々
特に意図せず親機と子機両方を確保することになったものの、両方ともマージされて一安心。
前述の通りRAMが異様に多く、Flashもまあ結果的にOpenWrtで使用できる領域は大きくなったものの、NANDであるにも係わらずbadblockの管理が行われていないのが不安要素ではある。なお、後継のGST2/GS2ではbadblockの管理が行われている模様。
パーティション構成の件は、32MiBのSPI-NOR用のレイアウトを流用したのだろうかなどと思うものの、真実は開発担当者のみぞ知る。