大破ログ

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

Sony NCP-HG100/Cellular

NCP-HG100/Cellular内部

某氏が先行して作業されていたものを引き継ぎ、ようやくマージに到達しました。
今回は、後述する通りドライバの不足などから一部機能を除いたサポートです。まとめていきます。

仕様

IPQ4019を搭載し、NCP-HG100/Cellularの持つ様々な機能に対応する為、他に様々なICが搭載されています。 法律の関係上、無線機能の使用は非推奨です

  • SoC: IPQ4019
  • RAM: DDR3 512MiB
  • Flash: eMMC 4GB
  • WAN/LAN: 1000Mbps/1000Mbps x2 (QCA8072)
  • UART: J1, 115200bps(三角マーク側から3.3V, TX, RX, GND)

その他の詳細については、雑記やこのブログの進捗報告を参照。

OpenWrt化

U-Bootがデフォルトでブート時に使用するコマンドは、セキュアブートに対応したKernelが必要と思われ、OpenWrtのKernelはブートに失敗することからU-Bootの環境変数の書き換えが必要です。
UARTのスルーホールにピンを立てる場合は、筐体を閉じた際に干渉するのを防ぐ為L字ピンの使用を推奨。

TFTPサーバを準備
192.168.132.100でTFTPサーバを用意し、NCP-HG100/Cellularのinitramfsイメージを C0A88401.imgのファイル名でTFTPディレクトリ内に配置
U-Bootのコンソールに入る
NCP-HG100/Cellularに電源を接続し、シリアルコンソールに Hit any key to stop autoboot: と表示されたタイミングでいずれかのキーを押下しブートを停止させる
U-Bootのブート用コマンドを設定
以下を入力してブート用コマンドを設定する
setenv bootcmd "mmc read 0x84000000 0x2e22 0x4000 && bootm 0x84000000"
saveenv
initramfsイメージでブート
以下を実行してinitramfsイメージでブートする
tftpboot && bootm
sysupgradeイメージをNCP-HG100/Cellularにダウンロードしsysupgrade
wgetやscp等を用いてsysupgradeイメージをデバイス上にダウンロードし、それを用いてsysupgradeを行う 必要である場合、sysupgrade実行前にddでeMMCのパーティションをバックアップする
完了
sysupgradeが完了し、OpenWrtが起動してくれば完了

備考

  • 本機種はNuvoton MINI54FDEをMCUとして搭載しているが、現状ドライバが存在しない為これを制御することができない。このことから、MCUが管理する以下の機能はユーザーが利用することはできない

    • RGB LED(筐体外周)
    • 冷却ファン
    • 温度センサ(2か所)

    このうち、冷却ファンについてはデフォルトで自動制御されており、計測された温度に従って回転したり停止したりする模様

  • IPQ4019のオーディオ関連機能やオーディオ関連ICのドライバは現状存在しない為、それらが提供する機能は利用不可

  • BluetoothやZWaveは、それらを提供する各ICのドライバが現状存在しない為、利用不可

  • 筐体上面に存在する各ボタンについてはタッチセンサICが介在しており、このICはNCP-HG100/Cellular起動直後はブート中の状態を抜けておらずボタンを利用することができない状態にある
    i2csetを用いてブート完了の状態に遷移させることで、ボタンが利用可能になる

  opkg update
  opkg install i2c-tools
  i2cset -y 1 0x14 0xf 1
  • 本機種ではKernel+RootFSのOSイメージを2つ持っており、OpenWrtにおいては1つ目のみ使用する

  • SONY公式サイトでは "/Cellular" モデル以外に "/WLAN" モデルの存在が示されているものの、市場に実在するかが曖昧であり、後者の実機を確保しておらず互換性が不明であることから、今回のサポートは "/Cellular" モデルに限定したものとした

  • サポートのマージ時点で既にOpenWrt 22.03.0がリリース済みである為、今後OpenWrt 22.03シリーズに含まれることはない 次のメジャーリリースからサポートされると思われる

作業時の色々

  • 作業ついでに学習も兼ねて外周のRGB LED等を制御しているMCUのドライバを試しに書いてみるなどしたものの、あくまで学習程度のレベルである為今回サポートを投げ込むにあたっては含めなかった
    既にこの機種に対する意欲も低下しつつあるため、今後そのドライバを改善したり投げ込む可能性は低い

  • 本機種のサポートがマージされた直後、IPQ40xxが持つ内部スイッチ機能に対するDSA (Distributed Switch Architecture) サポートがマージされ、それに対応する状態に変換されなかったNCP-HG100/Cellularを含む多くの機種はまとめて無効化されてしまった
    急ぎ修正を行って投げ込み、マージされたことで再度NCP-HG100/Cellularのビルドが有効化された

色々

色々あって作業が長期に渡ってしまったが、マージされて一安心。並行してWSR-2533DHP2の作業を行うなどしていた時期もあり、進みがかなり遅くなったりしていた。
本機種はサウンド関連等使用できない機能は多々あるものの、ルータとしての基本的な動作のほかUSBポートもあることから、それらを活用できる機種として良さそう。
上で少し触れたとおり、この機種に対するモチベーションは低下気味であることから、今後の改善はあまり積極的には手を付けないことが予想される為、必要であれば誰かが行うことに若干期待。必要な保守はします。