2000円で手に入れた中古のブロードバンドルーター「Buffalo WZR-900DHP2」にOpenWrtをインストールしたので、作業記録を紹介します。
なお、作業にあたり以下のサイトを参考にしました。
なお、WZR-900DHP2にOpenWrtをインストールすると、無線LANは正常に動作しなくなります。それでもOpenWrtをインストールしたのは、IPv6対応のファイアウォールとSoftEtherサーバーが動作する有線ルーターとして使うためです。
インストール作業はUbuntu 18.04 LTSをインストールしたPCから接続して行いました。
作業中、WZR-900DHP2に「192.168.11.1」および「192.168.1.1」でアクセスする必要があります。そこで、以下の画像の通りPCのNICに「192.168.11.2」と「192.168.1.2」を追加で設定しました。なお、「192.168.2.10」は元から割り当ててあるアドレスで、ゲートウェイの「192.168.2.1」はインターネットへの出口となる既設のブロードバンドルーターです。
通常はPCとOpenWrtをインストールするルーターを直結して作業しますが、アドレスが重複していなかったのでWZR-900DHP2を既存のLANに接続して作業しました。こうすればPCがインターネットに接続可能な状態のまま作業を行うことができます。ただし、この状態で新たに他のPCをスマホを起動すると、WZR-900DHP2上のDHCPサーバーからインターネットにアクセスできないIPアドレス(192.168.11.xxx)が割り当てられることもある点には注意が必要です。
デバッグモードで純正ファームウェアをバックアップ
OpenWrtをインストールする前に、メーカー純正のファームウェアをバックアップします。バックアップしておかないと、無線LANが正常に使える状態に戻せなくなるそうです。あえて戻すこともなさそうですが、念のためバックアップしておきました。
なおファームウェアがVer2.18以上の場合、2.16以前の古いバージョンにダウングレードしてから作業する必要があるようです。
最初に、爪楊枝で底面のリセットスイッチを長押しして初期化しました。
ルーターのLEDが安定して光るようになってから、ブラウザで「http://192.168.11.1/cgi-bin/cgi?req=frm&frm=py-db/55debug.html」にアクセスすると、以下のように表示されました。画像のURLが異なるのは、リダイレクトされたからです。
ユーザー名「bufpy」、パスワード「otdpopypassword」を入力して「ログイン」をクリックすると、以下の画面になりました。
「telnetd」をクリックすると、次の画面になります。「start」をクリックしてtelnetサーバーをスタートさせました。
これで、Ubuntu PCから以下のコマンドを実行して接続できました。
telnet 192.168.11.1
以下のコマンドを実行し、MTD領域の情報と内容を/tmp以下に書き出しました。
cat /proc/mtd > /tmp/wzr900dhp2_proc_mtd.txt;\
dd if=/dev/mtdblock/0 of=/tmp/wzr900dhp2_mtdblk0.dd bs=1;\
dd if=/dev/mtdblock/1 of=/tmp/wzr900dhp2_mtdblk1.dd bs=1;\
dd if=/dev/mtdblock/2 of=/tmp/wzr900dhp2_mtdblk2.dd bs=1;\
dd if=/dev/mtdblock/3 of=/tmp/wzr900dhp2_mtdblk3.dd bs=1;\
dd if=/dev/mtdblock/4 of=/tmp/wzr900dhp2_mtdblk4.dd bs=1;\
dd if=/dev/mtdblock/5 of=/tmp/wzr900dhp2_mtdblk5.dd bs=1;\
dd if=/dev/mtdblock/6 of=/tmp/wzr900dhp2_mtdblk6.dd bs=1;\
dd if=/dev/mtdblock/7 of=/tmp/wzr900dhp2_mtdblk7.dd bs=1;\
dd if=/dev/mtdblock/8 of=/tmp/wzr900dhp2_mtdblk8.dd bs=1
Ubuntu PCで以下のコマンドを実行して書き出したファイルをダウンロードし、ファイルサーバーに保管しておきました。
wget http://192.168.11.1/html/py-db/tmp/wzr900dhp2_proc_mtd.txt
wget http://192.168.11.1/html/py-db/tmp/wzr900dhp2_mtdblk{0..8}.dd
OpenWrtのダウンロード
2019年3月時点で、OpenWrtの最新stable版は「18.06.2」でした。WZR-900DHP2に対応したイメージファイルを、以下のページからダウンロードしました。
ダウンロードしたファイルは「openwrt-18.06.2-bcm53xx-buffalo-wzr-900dhp-squashfs.trx」です。
なお、「openwrt-18.06.2-bcm53xx-buffalo-wzr-900dhp-squashfs.factory-DHP2-JP.bin」を使ってオリジナルファームの更新画面から書き換えることもできるようなのですが、今回は「CFE miniWeb Server」から更新するため、「openwrt-18.06.2-bcm53xx-buffalo-wzr-900dhp-squashfs.trx」をダウンロードしています。
OpenWrtのインストール
再びtelnetで接続したルーター上のシェルで、以下のコマンドを実行しました。
nvram set boot_wait=on
nvram set wait_time=30
nvram commit
これで、起動時に30秒間「192.168.1.1」でCFE miniWeb Serverが起動し、ファームウェアをアップロードできるようになります。
Ubuntu PCで以下のコマンドを実行し、ルーター背面のスイッチを入れなおしました。
ping 192.168.1.1
WebブラウザにURL「http://192.168.1.1」を入力しておき、pingへの応答を確認してすぐにEnterを押すと、以下のように表示されました。
30秒しかないので、素早く「Browse」ボタンを押し、「openwrt-18.06.2-bcm53xx-buffalo-wzr-900dhp-squashfs.trx」を選択して「Upload」ボタンを押しました。アップロードが成功し、以下のように「Upload completed.」と表示されました。
アップロード直後は「http://192.168.1.1」にアクセスしても「CFE miniWeb Server」の画面となっていましたが、しばらく放置した後にアクセスすると以下のようにOpenWrtのログインページが表示されました。
パスワードの設定とsshアクセス
初期状態でrootユーザーのパスワードは設定されていないようなので、空白のまま「Login」を押すとログインできました。
最初に「Go to password configuration」ボタンを押し、パスワードを設定しました。
デフォルトで、LANからSSHでログインできる設定になっています。端末から以下のコマンドを実行し、SSHで接続しました。先ほど設定したパスワードを入力すると、ログインできました。
ssh [email protected]
以下のコマンドでファームウェアを書き換えるために行った設定を、元に戻しておきました。
nvram set boot_wait=on
nvram set wait_time=30
nvram commit
コメント