文鎮化した Ubiquiti Networks Edgerouter X を復旧した備忘録

Photo by hyt.

文鎮化した Ubiquiti Networks Edgerouter X を復旧した備忘録です.まずは,ER-X ってなに?ってところからスタートしたいと思います.なお,今回は手順が多いのでとても記事が

長い!

です.御注意ください.

Ubiquiti Networks Edgerouter X って?

製品ページは

です.アメリカの企業なんですが,かなりお安い企業向けネットワーク製品を提供しているところで,特に,この Edgerouter X (略して ER-X)は

  • 安い($50 です.日本で買うと1万円程度)
  • 高性能(らしい)
  • 小さい

の三拍子揃った製品です.ただし,日本で買うには並行輸入するか,個人的に輸入している人のものを Amazon なんかから買うしかない.当然,日本語にも対応していないし,使えなくても自己責任っていう位置づけのものです.

実は,半年ほど前まで私のメインルーターは,IIJ の SEIL/X86 だったのですが,なぜなのか

に記した通り,Hyper-V で動かなくなってしまいました(で,いまだに動きません(泣)).仕方が無いので,その代替えとして調達したのが本製品です.

あたりのページを見て,面白そうだと思ったのももちろん理由なんですが,最も大きな理由は,とても「小さい」から.なんと,5ポートの単なるスイッチの小型のものと同じくらいの大きさしかありません.と言うことで,これは良い,と思って買ったんですが,初っ端からある意味大変愉しい経験をすることができました(そう思わないとやってられない).

文鎮化(Bricked)ってなにしたの?

届いた製品の Firmware が結構古かった(ver. 1.7,今は 1.10.1)ので,まずはファームウェアを最新にしてから設定しようとしただけです.

本製品,日本の家庭用ルーターなんかと同じように,Web インターフェースから色々設定できますし,Firmware のアップデートもここからできたので,最新の 1.10.1 の Firmware を適用しようとしました.でも,なぜだか「アップデートできない」って怒られます.仕方ないので,再起動してもう一度やってみようとしたところ,文鎮化(Bricked) してしまいました(泣).

もう少し詳しく言うと,リセットは効いているように見えるけど,なんどやっても設定画面にはアクセスできなくなってしまいました.

調べてみると,本製品,Firmware のアップデート後,文鎮化する事例が結構おきているみたいです.どうも安全にアップデートしたければ,Web インターフェース経由ではなく,CUI 経由でするべきだったようなのですが,後の祭りです.

アメリカ在住なら交換依頼もアリだと思いますが,並行輸入品なので,どうしたものか……と色々ググってみたところ,

で,USB-TTL Cable を使えば,シリアルコンソールから復旧できる可能性があるとのことが分かったので,まぁ,ものは試しと,やってみることにしました.

USB-TTL を使った ER-X へのアクセス

これはほとんど

と同じです.ただし,私の場合は,USB-TTL として,以下のものを使いました.

Photo by hyt.

Amazon で300円くらいです.

参考にさせて頂いたページで紹介されている USB-TTL も注文したのですが,届くのに3週間ほどかかることが分かったので,注文し直したものです.

本製品に限らず格安品の USB-TTL は,正規のチップが使われていないことから,Windows で使うときは古いドライバを手に入れないといけないなどの問題点があるみたいで面倒なので,MacOS から使うことにします.

まずは,Prolific の

から,PL2303_MacOSX_1.6.1_20171018.zip をダウンロードしてきて,展開すると,

Photo by hyt.

のように,インストーラーと英語ですけどかなり丁寧なインストール方法の解説PDFがあるので,それに従ってまずはドライバを導入し再起動します.

きちんとドライバが導入できていれば,USB-TTL をつなぐと,システム情報の USB に,

Photo by hyt.

のように「USB Serial Controller」が現れます.また,Terminal を立ち上げ,

とすると,

Photo by hyt.

のように,tty.usbserial というデバイスが現れるはずです.

次に,ER-X のカバーを外します.裏面

Photo by hyt.

の両端の2ヵ所にネジがあるので,これを外すと,

Photo by hyt.

のように簡単にカバーを外せます.少なくとも私の場合は封印シールなんかは特に付されていませんでした.で,USB-TTL を

Photo by hyt.

のように接続します.この状態で,まず,brew から,

のように minicom を導入し(brew ってなに?って人は

を参照してください),Terminal の「プロファイル」⇒「キーボードの設定」の「メタキーとして Options キーを使用」にチェックが

Photo by hyt.

のように入っているのを確認してから,

のように minicom を起動します.「メタキーとして Options キーを使用」にチェックが入ってないないと,minicom を終了させられなくなるからです(META Z, X で minicom は終了です).ここまで,キチンと設定できていれば,ER-X の電源を入れると,

Photo by hyt.

のように,1, 2, 3, 4, 7, 9 の選択肢が現れます.で,

だと,4 を選択して,シングルモードで起動させて……という手順が記されていますが,残念ながら私の場合はより深刻な症状で,これだと上手くいきませんでした(具体的に言うと,起動して ID と password は聞かれるのですが,ID: ubnt, password: ubnt ではログインできず,かと言って root なんかでもログインできないし,さらに,eth0 にケーブルを刺すとカーネルパニックでハングアップするという,なんだか中途半端に Firmware が書き込まれてしまったような状態でした).

と言うことで,次の策として,boot 時の選択肢に,

  1. Load system code to SDRAM via TFTP
  2. Load system code then write to Flash via TFTP

ってのがあったので,tftp 経由で正しいファームウェアを送り込めないかを検討することにしました.

tftp server の準備

MacOS High Sierra だと,tftp server ははじめから導入されているようで,単に,

とするだけで使えるようになります.

さて,ここからの手順の大枠は,

に従います.なお,ググると見つかる

に「emrk-0.9c.bin」を tftp で送り込む手順が示されていますが,これは ER-X だとうまくいかないことを注意しておきます.上のページにもありますが,これは「ER-Lite」 もしくは「ER-PoE」でしか使えないイメージのようで,実際に手順に従い書込んでもウンともスンとも言いません.

ブートイメージと書込みイメージの準備

次にER-X で使えるブートイメージと書込みイメージの準備をします.まず,ER-X で使えるブートイメージですが,

から

  • openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.bin

をダウンロードしてください.また,ER-X に書き込むイメージとして,

から

  • ER-e50.v1.10.1.5067582.tar

をダウンロードし,適当なところに

のように展開しておいてください.

ブートイメージの送り込みと起動

次は,ブートイメージを tftp で ER-X に送り込むための準備を行います.

まず,ER-X の「eth0/PoE IN」ポートと Mac を Ethernet ケーブルで接続します.今の Mac は Ethernet ポートが無いので,実際には USB Ethernet 変換アダプタなどを利用することになると思います.私の場合はたまたま所有していた Anker の USB Hub + Ethernet 変換アダプタを使って,

Photo by hyt.

のように接続しました.また,USB Ethernet アダプタに,固定アドレスとして,192.168.1.179 を「システム環境変数」⇒「ネットワーク」経由で割り当てました.

次に,ブートイメージを

の様に,tftp server が管理するディレクトリに送り込みます.この状態で,再び,ER-X の電源を投入し,今度は,シリアルコンソールに表示されるメニュー

から1番を選択し,

のように,ER-X の IP アドレス,tftp server の IP アドレス,そして送り込むイメージの名前を入力します.正しく入力できていると,

のような感じでブートしますので,

まで待ち,Enter キーを入力すると(Enter を入力しないといつまで経っても進まない),

のようにプロンプト # が表示され,コマンド入力待ちとなります.

書き込みイメージの送り込みと書き込み

次は,書き込みイメージを送り込まないといけないのですが,その前に,「eth0/PoE IN」ポートに刺さっているイーサネットケーブルを取り外し,それを下の写真の様に「eth1」ポートに刺し直さなければなりません.

Photo by hyt.

この状態で,Mac の ER-e50.v1.10.1.5067582.tar を展開したフォルダに移動し,ファイル

  • vmlinux.tmp
  • squashfs.tmp
  • squashfs.tmp.md5
  • version.tmp

を scp を使って ER-X の /tmp に

の様に送り込みます.

送り込みが終了したら,次のコマンドをこの順に ER-X のシリアルコンソールから実行していきます.

なお,cp /tmp/squashfs.tmp /mnt/squashfs.img とすると,

のような表示が大量に出てきますし,時間もかかりますが,終わるまでとにかく待ちます.全て終了後,

として再起動し,しばらく待つと,

の様に login プロンプトが出てきますので,

  • ubnt login: ubnt
  • password: ubnt

とするとログインできます.また,再び eth1 に刺さっているイーサネットケーブルを

Photo by hyt.

のように eth0 に刺し直し,http://192.168.1.1 にアクセスすると Web インターフェースにアクセスすることができ,これで復旧完了です.

全体を通して

お気付きの通り,この復旧手順は,先人の努力の賜物なのですが,いろいろな所に情報が断片的に記されているのと,いろいろハマりどころがあり,私の場合,スタートしてから復旧までにほぼ半日要しました.

スムーズにいけば大体30分から1時間程度で復旧できますが,とてもではないけど覚えておけない手順なので,念のため,記録に残しておこうと思ったのがこの記事な訳です.

しかし,まぁ,頑張っただけあって,これで,ER-X なら,物理的に壊れない限りまぁ何とかできるかなという気分になりました.また,本システム,見ての通り u-boot が使われています.実は私は初めて u-boot を使ったのですが,調べてみるとラズパイで u-boot を使える様で,いちいち SD を書き換えなくても u-boot 経由でネットワークブートも実現できるみたいなので,まぁ,収穫かな,と(無理矢理)思うことにしています.

しかしですね,

今のところ復旧しただけ.本来の目的は SEIL/X86 の置き換えなんですが,いつになったらコレ実現できるのかなぁ……

というのが問題ですね.

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement