H3C Magic NX30 ProをOpenWRT最新ファームウェアへ入れ替え

公開 | 更新 

前回、H3C Mqgic NX30 Pro に初めから開いているのを確認したTelnetポートを足掛かりに、現行版 OpenWrt ファームウェア への入れ替えに挑戦します。

お手本にする記事

H3C Mqgic NX30 ProへのOpenWrt謹製ファームウェア書き込み手順について、中華テック界隈で多くの記事が散見される中、書き込み前のバックアップ手順含めて丁寧に解説されていたこちらの記事に沿って、作業を進めます(鳴謝!)。

OpenWrtファームウェアの調達

まず、必要なファームウェアファイル群をOpenWrtの機器別ダウンロードページから調達。本記事執筆時点では23.05.2が安定最新版でした。表示されている4つ全てのファイルを作業用Ubuntu 22.04 PCへ保存します。

図1.機器別ダウンロードページ

図1.機器別ダウンロードページ



 

Ubuntu 22.04にtftpdの準備

次に、ファームウェア入れ替えの最終工程で必要になるtftpサーバを、作業用Ubuntu PC内に立てます。

まず、パッケージのインストール。

設定ファイルに記述されているtftpルートディレクトリ /srv/tftp/ の確認、オプションを多少変更。

tftpルートディレクトリ /srv/tftp/ の所有権を変更します。

tftpサーバサービスを再起動。

最後に先ほどダウンロードしたファイルのうち、 ...initramfs-recovery.itb と記載のあるファイルをtftpルートディレクトリ /srv/tftp/ へ配置するのですが、その際には次のようにファイル名からバージョン番号の部分を除去しておきます。

作業PC側のお膳立ては以上です。

 

telnetで中に入りdropbearの導入

NX30 Proと作業用Ubuntu PCを有線ケーブルで繋いだら、前回確認したtelnetのカスタムポート 99/tcp へ入り、

パッケージマネージャでdropbearをインストールしようとするも、このプラットフォームのOpenWrt 21.02には、レポジトリにdropbearパッケージはなし。

図2.dropbearパッケージの有無

図2.dropbearパッケージの有無

少し古いOpenWrt 19.07では存在していたので、curlで直接このパッケージファイルをダウンロードし、パッケージマネージャでこのファイルからインストールします。tmpfsの /tmp は容量が限られているので、掃除はこまめに。

サービス開始とrootのパスワード設定を済ませたら、一旦telnetから抜けてSSHで入り直してみます。

なお、dropbearのレガシーなSSHへは、Ubuntu 18.04からそのまま接続しようとすると怒られてしまうので、 ~/.ssh/config に例外許可を記述しました。

また、下述でdopbearからのscp転送も同様の理由で怒られてしまうはずなので、 /etc/ssh/sshd_config に次のオプションを追記しておきます。

 

現在のMTDをバックアップ

ファームウェア書き換えの前に、現在のMTD (Memory Technology Device)をバックアップしておきます。

NX30 ProのMTDは、次のような構成でした。

今回の作業で入れ替えるのは次の4つ。

  • mtd5 : ubi
  • mtd1 : BL2
  • mtd3 : Factory
  • mtd4 : FIP

まずは少しサイズの大きい mtd5 を /tmp へ吸出し、scpでUbuntu PCへ転送します。

残る3つはいずれもサイズが小さいので、それぞれ /tmp へ書き出した後、まとめてscpで転送すればOK。

 

BL2とFIP(uboot)の書き込み

冒頭でダウンロードした ...preloader.bin (BL2)と、 ...uboot.fip (FIP)をUbuntu PCからNX30 Proへscp転送します。

NX30 Proに入り、BL2から書き込みを試みるも、やはりロックが掛かっていて失敗終了。

気にせずそのままFIPを書き換えます。こちらは成功。

 

initramfsとsysupgradeのインストール

Ubuntu PCを静的IPアドレス 192.168.1.254/24 へ変更したら、NX30 Proの電源を抜き差しして再起動を促します。

再起動後、 192.168.1.1/24 になったNX30 Proからtftpサーバに対して、 initramfs ファイルのリクエストがあるのを確認。

しばらくして、NX30 Proとの疎通に問題ないことを確認の後、残る sysupgrade.itb をscpで転送、

sshで中に入って、 sysupgrade コマンドで適用します。

 

BL2の書き込みに再チャレンジ

OpenWrt 23.05.2ファームウェアへの入れ替えは無事に終わりましたが、BL2のロックを解除して再度書き込みにチャレンジしてみます(BL2は書き換えなくても正常に動作します)。

preloader.bin をもう一度scpで転送、

sshでNX30 Proの中に入り、パッケージリストの更新の後、MTDのアンロックに必要なパッケージ kmod-mtd-rw をインストール。

カーネルモジュールをロードすればロックは解除されるので、BL2を書き換え、デバイスを再起動して作業完了です。

 

OpenWrt 23.05.2初期状態の確認

あらためて、コンソールからシステムの状態を確認します。

LuCIもすでに導入済みの状態です。

図3.OpenWrt 23.05.2 Status Overview

図3.OpenWrt 23.05.2 Status Overview

MT7981の2.4Gと5Gの各WiFiインターフェイスも、正しく認識されています。

図4.OpenWrt 23.05.2 Wireless Overview

図4.OpenWrt 23.05.2 Wireless Overview

OpenWrt 23.05.2へ無事に入れ替え終わったところで今回はここまで。このデバイスは既存LAN環境のアクセスポイントとして使いたいので、次回はルータのアクセスポイント化(Dumb AP)へと続きます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA