大破ログ

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

Planex VR500をOpenWrt(LEDE)化して弄ってみた

先日Planex社の「SAKOKU 500(VR500)」を確保したので、それにOpenWrtとLEDEを導入して色々弄りまわしてみました。

pic_vr500_wzr-900dhp

↑筐体を開けた状態のVR500(上)。カバーは家庭用ルータに多いハメ込み式ではなく、スライド式のカバーがネジ止めされているのみなので、開けやすくて嬉しいところ。下は毎度おなじみBUFFALO WZR-900DHP。

VR500のスペックは公式サイトにも掲載されていますが、内部的なものも合わせると大体以下の通り。

VR500 仕様(ざっくり)

  • CPU:MediaTek MT7621A (880MHz, 2C4T)
  • RAM:256MB
  • ROM:SPI Flash 64MB
  • WAN / LAN:10 / 100 / 1000 Mbps
  • USB:2.0 x1, 3.0 x1

VR500は、前述のとおりカバーが開けやすいほか、内部のシリアルがランドだったりスルーホールだけだったり、ではなく、きちんと最初からピンが立っています。今までWT1520などで時々ハンダ付け失敗することもあり、これも嬉しいところ。
早速、シリアルを接続してOpenWrtに書き換えていきます。

ちなみに、OpenWrtへの書き換えに関しては、ファームウェアさえ用意していれば特にシリアルを接続する必要無しに導入できてしまいます。

しかし、今回は後でオリジナルファームにも戻せるように、ということで、基板上のフラッシュメモリに格納されているデータ(mtdblock)を全て書き出し、PC上に保存しました。手順は大体以下の通り。メモは取らなかったので、若干記憶がすっぽ抜けてます。

  • ddコマンドを用いて、/dev/mtdblock0 ~ /dev/mtdblock5 を /tmp などの下にファイルで書き出す

    例:# dd if=/dev/mtdblock0 of=/tmp/vr500_mtd0.bin

  • 「1」で書き出したファイルを、VR500のWebUI提供のため動作しているlighttpdのドキュメントルートに配置する

    例:# cp /tmp/vr500_mtd0.bin /(パス忘れ)/vr500_mtd0.bin
    ドキュメントルートのパスは、psコマンドを実行してlighttpdの引数を見ると分かります。

  • ブラウザでVR500のWebUIにアクセスし、ユーザー認証後に「1」で書き出したファイル名を指定してダウンロード

    例:http://192.168.111.1/vr500_mtd0.bin
    IEだとMIMEが誤判定されることがあったため、Firefoxなど他のブラウザを推奨。

以上でオリジナルファームの保存は完了です。ただ、私は取得したファイルを使用してのオリジナルファームへの戻し方は知らないので(ぇ)、その辺りは詳しい人にお願いします。

ここまで完了したら、今度はOpenWrtファームの導入を行います。作業前に、OpenWrtの2種類のVR500用ファームウェア

  • openwrt-ramips-mt7621-vr500-initramfs-kernel.bin
  • openwrt-ramips-mt7621-vr500-squashfs-sysupgrade.bin

を自分のPC上に用意しておきます。とりあえずOpenWrtを導入してみたい、という方は、srchack氏が公開されているものを使用するのが良いと思います。

  • VR500(オリジナル)のWebUI(管理画面)から更新ページを開き、...vr500-initramfs-kernel.binを選択して更新を実行する

    ...vr500-squashfs-sysupgrade.binを選択した場合は、「不正なファイル」というようなエラーが出て弾かれる模様。

  • 「1」の後再起動が行われ、OpenWrtが起動する

    OpenWrtがもういきなり起動してきますが、これはまだFlash内には書き込まれておらず、RAM上でのみ展開され動作しています。そのため、再起動すると全て消えてしまいます。次の「3」にて、Flash上に書き込まれるOpenWrtファームを導入するための、踏み台となるOpenWrtファームです。

  • ブラウザでVR500(OpenWrt)のWebUI(LuCI)にアクセスし、更新ページで ...vr500-squashfs-sysupgrade.binを選択し更新を実行する

    Flash内の消去と書き込みが行われ、自動で再起動します。さよならオリジナルファーム、こんにちはOpenWrt。

以上でOpenWrtの導入は完了です。

え、起動しない?文鎮化した...ですか?やらかしました。

後日自分でビルドしたOpenWrtファームウェアを導入した際、ファーム自体に問題がありVR500がブート中にKernelPanicを起こして止まりました。
その際は、ブート中に「TFTP経由でファームウェアを取得してFlashを書き換える」、「Flashから読み込んで起動する(通常起動)」...などの選択肢が4・5秒程度表示されるので、2番のTFTPから取得し書き換えの項目を選択し、TFTPでsysupgradeのファームを送り付けて復旧しました。
ただ、Planexオリジナルのファームウェアでもこの選択肢が表示されるかはわかりません。ごめんなさい。

以上大体の書き換え方(+その他)でした。LEDE-ProjectのVR500用ファームウェアも、おおよそ同じ方法で書き換えができると思います(未検証)。OpenWrtとLEDE-Projectのファームウェアのビルドに関しては、気が向いたらまた別の記事で書きます(いつになることやら)。


ついでに、当方でビルドしたLEDE-Projectのファームウェアも置いておきます。LuCIやFS何種か(exFAT, Ext4, NTFS, vFATなど)、Samba、miniDLNA、WoLQoSAdBlock, Statisticsなど色々入っています。また、USB関連もUSB 2.0 / 3.0両方のポートでフラッシュメモリや外付けHDDが扱えるほか、当方で使う関係でRTL8192CUのドライバも導入済みです。とりあえず色々な機能を試してみたい方にお勧め? ただし、あくまで当方のVR500で動作確認したのみなので、使用は自己責任で。

  • lede-ramips-mt7621-vr500-initramfs-kernel.bin

  • lede-ramips-mt7621-vr500-squashfs-sysupgrade.bin

2017/04/27追記: 掲載していたファームが古くなっていたため、上記ファームは削除しました。現在は、下記ページにてデイリービルドのファームウェアを公開しています。

大破Jenkins