大破ログ

日々大破、それと側転少々。PC関連その他、気になったことなどをつらつらと。

BUFFALO WXR-5950AX12

WXR-5950AX12内部

某氏から提供頂いて3年弱。
ipq807x targetが一度追加されたものの削除され、1年以上開いてから再度追加されるなどしてようやくデバイスが扱える状態となり、サポートを行って投げマージされました。
まとめていきます。

仕様

個人的に初となる10GbE対応機。AQR113Cにより提供されています。

法律の関係上、無線機能の使用は非推奨です。

  • SoC: IPQ8074A (max. 2.2GHz, 4C4T)
  • RAM: DDR3 1024MiB (NT5CC256M16ER-EK x2)
  • Flash: RAW NAND 256MiB (W29N02GZBIBA)
  • WAN/LAN: 10000Mbps/10000Mbps + 1000Mbps x3
  • UART: J7, 115200bps(丸マークから3.3V, GND, TX, RX)

その他詳細については、雑記を参照。

OpenWrt化

WXR-2533DHP同様、initramfsイメージを経由して導入する方法です。

TFTPサーバを用意
TFTPサーバを 192.168.11.10 で用意し、initramfsイメージを "WXR-5950AX12-initramfs.uImage" にリネームの上TFTPフォルダに配置する
AOSSボタンを押しながらWXR-5950AX12を起動
AOSSボタンを押しながらWXR-5950AX12の電源を投入して起動すると、少ししてinitramfsイメージがTFTPで読み出され、それを使用して自動的にブートされる
OpenWrt上でsysupgradeを実行
WXR-5950AX12に接続してscpなどを用いてsysupgradeイメージをデバイス上にアップロード(またはダウンロード)し、sysupgradeを実行する
完了
Flashへの書き込みが完了後再起動され、OpenWrtで起動する

備考

  • この機種のサポートにおいて、Flashパーティション情報をLinux Kernelに渡す方法はQualcommのsmemを利用した。その関係上、各パーティションは基本的にread-onlyフラグが立っておらずデフォルトで書き換え可能の状態となっている為、誤って書き込んだり消去したりしないよう十分注意する。
  • 10GbE対応のポート2つについては、1Gbpsまではテストしているもののそれを超える速度については手元に検証環境が無いため、未テスト。
  • メーカーファームに戻す際は、ダウンロードした公式ファームウェアを一部加工の上Flashに書き込む必要がある。 手順についてはサポートコミットを参照。
  • WXR-6000AX12S, B, Pについては現状所有しておらず互換性を確認できない為、それらは未サポート。

作業時の色々

  • 冒頭にも書いた通り、この機種が属するipq807x targetは2020年2月末に突然ポンと投入されたものの、デバイスは追加されず何も動きが無いまま時間だけが流れ、その後その時点では難ありとして2022年1月に一旦targetが削除された。理由としては、サポートを実現するにも大量のpatchを投入する必要が生じることなど。
    それから1年、それまでからも継続して主にForumなどでipq806x target等を主に扱っている方々が中心になって上流のLinux Kernelを含めた改善を進め、今年(2023年)1月に再度ipq807x targetが追加され、同時にいくつかのデバイスのサポートもマージされた。
    WXR-5950AX12もサポート作業を一から作り直して投げ込み、マージされた。

  • WXR-5950AX12はaarch64のIPQ8074Aを搭載しているものの、メーカーファームウェアは何故か32bit Kernelを使用している。その為、もしかしたら64bitのKernelはブートできないのではないかと危惧していたものの、上記の通りipq807x targetが復活してからサポート作業を行ったところ、あっさりと64bit Kernelをブートでき、特に問題も無かった。

  • この機種はメーカーファームウェアにおいて、Flash内のファームウェアパーティションファームウェアデータのMD5ハッシュを格納している。このハッシュは現状どこから取られたものであるか不明であり、OpenWrtのサポートに際して不安であった。 ただ、ブート時にこのハッシュのチェックは行われるものの、Flash内に2つあるOSイメージの各ハッシュを文字列として比較するのみであり、特にハッシュに基づいたデータの整合性の確認は行われなかった為、OpenWrtにおいてはダミーの文字列を投げ込むことで対処することとした。

  • WXR-5950AX12は某氏より提供頂いた2020年3月頃にGPLソースコードのリクエストは送ったものの、結局記事執筆時点でも未公開のまま。サポート作業に際してハードウェア仕様について参考にできないし、待つにしてもいつになるか全くわからないので、諦めて実機で色々ひっくり返して情報を集め、コードを詰めて投げ込んだ。

色々

苦節(?)3年、ようやくマージまで到達し、やっと肩の荷が下りた。
BUFFALO特有のAOSSボタンを利用したファームウェア投入はやはり便利であるものの、Flash内部でのファームウェア取り扱いがWXR-2533DHP同様にやはり一手間必要であった。
また、メーカーファームウェアではネットワーク周りの構成が一部未定義となっている箇所があり(おそらくブートローダかどこかで構成される)、各所の情報を基に書き起こす必要が出てくるなどしたものの、技術的な知見となったので良し。