これは mstdn.maud.io Advent Calendar 2024 の記事です。
毎年何かしらの記事を書き散らしていますが、今年は2024年のOpenWrt活動を記憶の整理も兼ねて振り返ってみることにしました。
1月下旬のはじめ
なんとなく市川大野のハードオフに行ってみたところ、ジャンクでWSR-2533DHPLSを発見。MediaTek MT7621A (MIPS 1004Kc 2C4T, 880MHz) 搭載であることを把握していたので少し迷って確保。
ただ、2023年12月に実家からアパートに引っ越してまだ然程経っておらず、バタバタしていたのもあって作業開始は保留に。その間に他の海外勢が確保したらしく、PRが投げ込まれるなどした。これについてはWSR-2533DHPL2も絡んでくるので、続きはまた後で。
2月中旬頃
突如としてELECOM公式の販売ルートで11ac (Wi-Fi 5)のAPであるWAB-I1750-PSがかなりの割引で販売され、一躍話題に。過去にOpenWrtでPRが投げ込まれていた(ただしその頃は既にクローズ済)こともあり、OpenWrtで動かそうとする動きも起きていた。
個人的には、過去に上記PRを投げ込んだ方が作業していた際、それを眺めて気になって確保しており、しかし少し弄っただけで後は前述の方にお任せということで放置していた。
しかし今回の盛り上がりを受けて、折角だからと仕舞い込んでいたWAB-I1750-PSを引っ張り出したほか、ハードウェアが近似であると予想できていたWAB-S600-PS, WAB-S1167-PS(+PoE用途でPanasonic GA-AS4TPoE+) も追加で調達し、まとめて投げ込むために作業を開始。 ハードウェアを調べ、放棄していた作業途中のコードを復活させて、前述の方の変更も取り込み、まとめ上げてPRを投げ込みマージされた。
サポートがマージされた後、ふと気になってWAB-I1750-PSのみに搭載されている "CONSOLE" ポートを調べたところ、比較的容易に使用可能にできることがわかり、OpenWrtのシリアルコンソールとして構成したうえでPRを投げ込み、これもマージされた。

ちなみに、OpenWrtサポート作業中に使用するシリアルコンソールは内部のピンヘッダか、もしくは "SERVICE" ポートを過去に制作した基板を使用して接続していたものの、接続する為に都度筐体を開けるのは面倒だし、基板の方は他にCentury Systems MA-E3xxシリーズとの共用とした関係で面倒が発生していたので、3月頃に新しく "SERVICE" ポート用基板を設計して製造に投げた。この基板は今後東京方面のOSCの際に持ち込む予定なので、入用の方は声を掛けてください。

3月上旬の終わり頃
OSC 2024 Tokyo/Springに参加。今回も東海道らぐ展示ブースに便乗して置かせてもらい、
の4機種を展示。FortiGate 52Eよりも認知度が高い50Eがいいかな?と思ったものの、この時50Eはアパートの最上位ルータとして稼働していたので、代打として52Eを持ち込んだ。内部にSSDを搭載する変わり種として良かったかも?

3月下旬
ふらっと行った吉川のハードオフで、WSR-2533DHPL2とWMC-DLGST2(WMC-M1267GST2とWMC-S1267GS2のセット)を確保。
WMCシリーズの2台については、これまでに投げ込んだELECOM WRC-*GS/GSV/GSTシリーズとほぼ共通のハードウェアを採用していることから、差分のみを記述してさっくり仕上げ、確保した翌日にはもうPRを投げ込み、少々時間を要したもののマージ達成。
WSR-2533DHPL2に関しては、当時ハードウェアが近いWSR-2533DHPLSのサポートが他の方によって行われ、PRが投げられていたものの、NAND機特有の実装が抜けていることに気付いていた。この為、こちらでWSR-2533DHPL2とでコードを共通化したサポートを組み上げ、NAND機用の実装も追加したうえで前述の方に連絡の上PRを投げ込み、マージされた。

4月上旬
3月末頃確保していた、Check Point V-80の作業を開始。聞いていた話では内部にMiniPCIeスロットとMicroSDカードスロットがあるということだったが、確保した個体では実装無しで悲しくなった。
Marvellの64bit ARMが初めてであること、Linux Kernelの64bit ARMプラットフォームにおける仕様などの関係で手間取りつつ、ある程度問題無く動作するようになったので、PRを投入。ただ、必要が生じてOpenWrtのベースシステム周りにもいくらか手を入れた為か、OpenWrtチームメンバーからの反応が鈍く、現在停滞気味。

4月下旬
諦め悪く、NetBSDベースなNEC Atermシリーズの作業を再開。2019年頃は某氏の私的forkのU-Bootを改変して使用していたものの、mainline U-BootにもAtheros AR934xのサポートが存在していることを知り、そちらでのサポートに挑戦した。
結果として、アドレスなどを正しく構成してやれば拍子抜けしてしまうほどあっさりとAtermでのU-Bootの起動に成功した。ただ、ルータ内部のFlashストレージに存在するブートローダ領域があまりにも小さく、そこに収まりきるU-Bootを生成できるコンフィグを探るのに非常に時間を要した。最終的にかなりの機能やコマンドを削ったものの、一応は文鎮化時に復旧できるようにしたほか、U-BootからブートされるLinux Kernelも正常に動作するところまで持って行くことができた。
そのほか、公式ファームウェアから投げ込めるOpenWrtファームウェアの生成などで手間取ったものの解決し、PRを投げ込んでマージされた。
その辺りのメモ記事:
5月上旬のはじめ
諦めの悪さ第2弾。過去に手を付けたものの、ブートローダの問題で中止し廃棄したNEC Aterm WG1400HPを再度確保し、今度はmainline U-BootにおけるQualcomm Atheros QCA955x SoCサポートを追加するところからトライ。
OSどころかブートローダから弄る関係上、トラブル時にはブートローダを通した復旧が不可能となり完全に文鎮化することから、Flashチップを基板から剥がして変換基板に載せ、それを載せたユニバーサル基板を通してFlashライタと簡単に接続できるようにし、文鎮化からの復旧を前提とした体制を構築して作業を行った。QSDKやQCA955xを搭載するtp-link機のGPLソースコード、既存のQCA956xサポートを参考にして作業を進め、時間は掛ったものの、なんとか成功。
その後WG1800HP, WG1800HP2も調達してコードを共通化し取りまとめ、PRを投げ込んでマージされた。

5月上旬の終わり頃
これまた突如として秋葉原のショップなどでWRC-X1800GSが投げ売りされ始めた。当初眺めているだけだったものの、とある方より提供の話を頂いてそれを受け、作業開始。
既にサポートされている11ac (Wi-Fi 5) 世代のWRC-*GS/GSV/GSTシリーズとは恐らく異なる製造元であり、またハードウェア自体もSoCは同一ながら無線他のハードウェアが異なっている為1から組み立てた。基板上のUART用ピンヘッダやファームウェア内部に存在するフラグ等を見るに、I-O DATAのMitraStar Technology Corp. (MSTC) 製の機種と近いようであった。
少し手間取ったもののサポートを完了し、PRを投げ込んでマージされた。

5月中旬
Twitter(現X)で、10GbE対応スイッチが話題に。そのうちの一つであるSKS8300-8XはSFP+ポートを8つ搭載しながらも比較的安価であることから人気に火が付き、ネットユーザーにより解析が行われるなどしてRTL9303搭載であることが判明。
これもとある方(WRC-X1800GSとは別の方)からGitHub Sponsorsで支援を頂いたので、Amazonで購入し作業開始。
ただ、よくあるRealtek機と異なりKernelがJFFS2内に格納されていたり、そのバイナリが暗号化されている為OpenWrtでもそれに落とし込む必要が生じるなどしている他、それらを後回しにしてハードウェアサポートに手を付けたものの、どうにもSFP+ポートが接続されているRTL9303の SerDes (Serializer/Deserializer) が接続を検知できない状態であり、リンクが確立できず。ドライバをひっくり返して探ってみるも原因がわからず、現在まで保留中。
少し前にrealtek targetのドライバに修正が入っていて気になっているので、再度の検証を予定。

9月上旬の終わり頃
ふらっと行った吉川のハードオフにて、WSC-X1800GSを確保。8月の半ば頃に豊四季のハードオフでWMC-X1800GSTを先に確保しており、ハードウェアがほぼ共通であることからコードも共通化しサポートを行った。
当初WRC-X1800GSと同じハードウェアかな?と思っていたものの、実際見てみると近くはありながらもLED等の割り当てが異なっており、WRCとは共通化できず別物として組み立てることとなった。
"WPS" LEDがドライバ側で未実装と思われる仕組みを使用している為にOpenWrtでは使用不可であるものの、それ以外は特に問題は無く、既知のプラットフォームであることから然程時間は掛らずサポート作業を完了し、PRを投げ込んでマージされた。

10月中旬
OpenWrt ForumのCheck Point機のスレッドで見掛けて気になっていた、V-81を思い切って確保。V-80以上に内部がゴツく、SFP+ではないのは少々残念ながらもSFPポートを搭載。
SoCが近い系統故にV-80とコードを共通化できるかも?と思ったものの、SoC内のペリフェラルの取り扱いが予想以上にV-80搭載のものと異なっており、やむなく共通化を断念し詰めていくことに。V-81のSFPポートはRJ-45ポート1つとコンボになっており、ブート時に接続されいてる方で構成されるものの、一度切断すると再度SFPポートを使用するにはethtoolで明示的に切り替える必要がある模様。メーカー公式ドキュメントなどで明確にSFPポートが供給できる電力量は記載されていないものの、公式オプションとしてDSL用SFPモジュールが提供されており、ネット上で見付かる同様のモジュールでの電力仕様から、V-81のSFPポートの電力上限を設定した。なので、NTTの小型ONUも多分動作するようになっていると思われる。
ちなみに、LAN側8ポートはスイッチングハブチップがSoCと10GbEで接続されており、トラフィックの処理にかなりの余裕があると思われる。
ハードウェア部分は共通化を断念したものの、ファームウェア生成などは同じである為共通化しPRを投げたものの、こちらもまたOpenWrtのベースシステムの変更量故か停滞中...。

10月下旬
OSC 2024 Tokyo/Fallに参加。今回も相変わらず東海道らぐに便乗し、
の5機種を置かせて頂いた。後から気付いたけど、5台中マージ済みが2機種のみで、後はまだマージされていないというのはどうなんだ...。

11月上旬
HDL-A/HDL2-Aの作業を通して、同系統のMCUを載せていることから気になっていたHDL-XVを確保。
こちらも数多くの機能をSoCではなくMCUが担っており、既に作成したHDL-A/HDL2-AのMCU用ドライバがある程度使えるかと思ったものの、LEDほかでいくらか差異があり、調整する必要が生じた。具体的にはLEDの色の数や点灯/点滅の割り当て違いなど。
また、HDL-A/HDL2-Aとは異なりHDL-XV(+多分HDL-XR)ではSoCのEthernetではなくIntel 82574LをNICとして搭載しており、ネットワークを機能させる為にはドライバを追加したり、WoLを使用するにはethtoolで操作する必要が生じるなどした。
現在はおおよそ大体の機能が動作する状態となり、細かいところを気付いたときに修正/改善中。HDL-XRは今のところ確保は未定。

11月末頃
WAB-I1750-PSにおいて、以前見掛けて気になりながらも対処を忘れていた、他の方によるコミットに起因してトラブルが起きていることを把握し、その修正を実施。
具体的には、MACアドレスなど個体の情報を格納している領域を読み取るドライバが認識に失敗してデバイスが登録されず、WAB-I1750-PSのLANポート2つの内片方がそれに巻き込まれて認識されなくなり、もう片方の1ポートしか使用できない状態に陥っていた。基本的には前述の過去のコミットを撤回するのが妥当である為それを行い、正しく動作することを確認したうえでPRを投げ込んでマージされた。
2023年の12月からアパートへ移り、生活費諸々が全部自分に掛かってくるようになった関係上デバイスの調達は以前に比べて低調になったものの、振り返ってみると案外色々と手を出していてビビる。
11月末に吉川のハードオフで偶然Brainuxに対応しているらしいPW-SA2を見付けて確保し、ひとまずBrainuxをざっくり一通り動かしてみるなどした。が、それだけでは飽き足らず、搭載しているSoC(NXP IMX28シリーズ)がOpenWrtでもサポートされている (mxs target) ことから、そちらでもサポートできないかなぁとぼんやり思案中...。来年(2025年)もぼちぼちやっていきます。
mstdn.maud.io Advent Calendar、明日12/09は ゆんたん (@yuntan_t)氏です。