wiki:OpenWRTWiredRouter

OpenWRTを有線ルータに

 BaffaloのBHR-4RV OpenWRTを入れてみた。

OpenWRTって「無線LANルータ用の勝手ファーム」なので、有線ルータには入らないような気がしちゃいますが、入るルータもあります。 BHR-4RVって、その形状は同社の無線LANルータ、 WZR-RS-G54とそっくり。 きっと中身は同じに違い有りません!…と勝手に思いこんで進めます。 WZR-RS-G54なら、 OpenWRTのページでも動作報告があります。

筐体を開けてみます。

  • CPU -- BCM4704KPBG
  • イーサネットスイッチ -- BCM5325A2KQMG
  • RAM -- MIRA P2S56D40BTP × 2個(合計64MiB)
  • Flash -- Toshiba TC58FVM6T2ATG65(8MiB)

きっと同じはず!Mini-PCIのソケットが載る場所もあって、きっとWZR-RS-G54とかとボードは同じなんでしょうね。

入れたファームはこれ。  openwrt-brcm47xx-2.6-squashfs.trx

入れ方は OpenWRTのページを見ていただけばわかります。 注意!!!本来のファームウェアは消えてしまいます。戻す方法は無いわけではありませんが、ちょっと面倒です。また、ファームウェアの書き込み中に電源が切れたり、ネットが切れると、最悪の場合、再起不能になります。

以下の「192.168.12.XX」のアドレスは、製造時期によって異なる可能性があります。手元の個体では、MACアドレス「00:0D:0B:E3:1A:F3」のが「192.168.12.XX」、「00:16:01:71:00:09」のが「192.168.11.XX」でした。

まずは、IPアドレスを確認します。192.168.12.XXなのか192.168.11.XXなのかわからないと以下の操作で困ります。 ルータのイーサネットポート(4ポートハブになっている側)を、PCのイーサネットポートまたはハブ等に接続します。

# ifconfig eth0:1 192.168.12.10
# ping 192.168.12.1
PING 192.168.12.1 (192.168.11.1) 56(84) bytes of data.
From 192.168.12.10 icmp_seq=1 Destination Host Unreachable
From 192.168.12.10 icmp_seq=2 Destination Host Unreachable
From 192.168.12.10 icmp_seq=3 Destination Host Unreachable
From 192.168.12.10 icmp_seq=4 Destination Host Unreachable
From 192.168.12.10 icmp_seq=5 Destination Host Unreachable
From 192.168.12.10 icmp_seq=6 Destination Host Unreachable
From 192.168.12.10 icmp_seq=8 Destination Host Unreachable
From 192.168.12.10 icmp_seq=9 Destination Host Unreachable
From 192.168.12.10 icmp_seq=10 Destination Host Unreachable
64 bytes from 192.168.12.1: icmp_seq=11 ttl=100 time=5.68 ms
64 bytes from 192.168.12.1: icmp_seq=12 ttl=100 time=0.557 ms
64 bytes from 192.168.12.1: icmp_seq=13 ttl=100 time=0.577 ms
From 192.168.12.10 icmp_seq=53 Destination Host Unreachable
From 192.168.12.10 icmp_seq=54 Destination Host Unreachable

pingを開始してからルータの電源を入れます。10秒くらい経ってpingの応答が返ってくればオーケー。 そうでなければ、192.168.11.10と192.168.11.1に変えて試してみてください。

IPアドレスがわかったので、ファームウェアを書き込みます。 まず、ルータの電源を切っておきます。

% wget http://downloads.openwrt.org/kamikaze/7.09/brcm47xx-2.6/openwrt-brcm47xx-2.6-squashfs.trx
% tftp 192.168.12.1
tftp> binary
tftp> trace
tftp> rexmt 1
tftp> put openwrt-brcm47xx-2.6-squashfs.trx

上記putの最後にエンターキーを押したら、なるべく早く(数秒以内)にルータの電源を入れる。 ぶわーっと状態表示が流れて、最後に

sent DATA <block=3721, 0 bytes>
received ACK <block=3721>
Sent 1904640 bytes in 12.0 seconds
tftp> 

とか出れば成功です。 タイムアウトとか言われた場合もあわてなくていいです。 電源を切って、さっきのputをやりなおして、電源を入れる。 何度かやれば必ず成功します。 ファームウェアの書き込みに成功すると、そのまま新しいファームウェアで起動します。 IPアドレスは192.168.1.1です。このアドレスにtelnetします。

tftp> quit
% sudo ifconfig eth0:1 192.168.1.10
% telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------


BusyBox v1.4.2 (2007-09-29 09:36:14 CEST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (7.09) -----------------------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:/# 

これで成功です。 ユーザ「root」のパスワードを設定すると、telnetの代わりにSSHが使えるようになります。 あとはご自由に。 後片付けはこんな感じで。

root@OpenWrt:/# 
Connection closed by foreign host.
% sudo ifconfig eth0:1 down

そうそう。ルータのLAN側(4ポートハブになってる側)がeth0、WAN側がeth1です。

(2007/8/13 - sgk)