= WZR-G54の!OpenWrtの書き込みと無線LANコンバータ化 WZR-G54を!OpenWrt化する方法と無線LANコンバータ化する方法を紹介します。無線LAN化は他の!OpenWrt化した機器でも応用できると思います。 == 準備 == * TFTPコマンド(Windowsリソースキットに含まれるので適用にインストール) * ROM。次からダウンロード。 http://downloads.openwrt.org/backfire/10.03.1/brcm47xx/openwrt-brcm47xx-2.6-squashfs.trx * PCのNICにIP: 192.168.11.10、Mask:255.255.255.0など適当な192.168.11.xのIPを設定 * WZR-G54のLAN側のポートとPCを接続(ポート3でないとブート時のネットワークがつながらない?) == ファーム書き込み == WZR-G54の電源を入れ、すぐさま192.168.11.1へpingを実行すると次のようになる。 {{{ C:\Windows\system32>ping -t 192.168.11.1 192.168.11.1 に ping を送信しています 32 バイトのデータ: 192.168.11.10 からの応答: 宛先ホストに到達できません。 192.168.11.10 からの応答: 宛先ホストに到達できません。 192.168.11.10 からの応答: 宛先ホストに到達できません。 要求がタイムアウトしました。 192.168.11.1 からの応答: バイト数 =32 時間 =500ms TTL=128 192.168.11.1 からの応答: バイト数 =32 時間 <1ms TTL=128 192.168.11.1 からの応答: バイト数 =32 時間 <1ms TTL=128 要求がタイムアウトしました。 要求がタイムアウトしました。 }}} 上記の一瞬192.168.11.1へpingが通る瞬間にtftpでイメージを送信すると、ファームウェアを書き換えることができる。 イメージの送信は次のコマンド。 {{{ >tftp -i 192.168.11.1 PUT openwrt-brcm47xx-squashfs.trx 転送を正常に完了しました: 5 秒間に 3018752 バイト、603750 バイト/秒 }}} 成功すれば、完了したメッセージが表示。出なければ、もう一度WZR-G54の電源を切ってやり直す。 2つのコンソールを使って、pingで接続を確認しながら、pingが反応した瞬間にtftpを実行するようにしてやればよい。 == 書き込み終了後の対応 == 書き込み終了後、WZR-G54のLANのIPは192.168.1.1に変更となっている。 マシンのIPを192.168.1.10へ変更し、telnetで192.168.1.1へログインしてパスワードを設定する。 以降、telnetではログインできなくなりsshのみでログイン可能となる。なお、デフォルトの設定では、 ログインはLAN接続からのみであり、無線LANからは接続できない。 == !OpenWrtの設定 == !OpenWrtはGUIで設定することができる。 http://192.168.1.1/ に接続すると、WebUIが表示されるので、ここから設定する. = !OpenWrtでイーサネットコンバータの作り方 = TVやHDDレコーダが家内の別の島にある場合、次のように子機に無線LANのネットワークをブリッジさせたい場合がある。 {{{ 無線LAN親機----無線LAN子機(WZR-G54)----+----TV (192.168.1.xを親機のDHCPで割り当て) 192.168.1.1 192.168.1.2 +----HDDレコーダ (192.168.1.xを親機のDHCPで割り当て) +----ネットオーディオ (192.168.1.xを親機のDHCPで割り当て) }}} メタルケーブルによるLANの場合、ブリッジを作成し、2つのインタフェースをブリッジに追加するだけで、上記のような構成を取ることは可能である。しかし、無線LAN IFはチップセットにおっては通常のブリッジに入れると、利用できなくなるので(パケット転送を無駄にしないような仕様になっている)、relayedを使ってソフトウェアでパケットを転送(ブリッジ)する必要がある。 無線LAN子機から延びるLANを別セグメントにし、ルーティングさせてもいいが、クライアントもしくは無線LAN親機のルーティングの設定が必要になり面倒(親機によっては対応していない場合がある)。なので、親機のネットワークを延ばすようにした。 基本的には、ここ参考 * http://wiki.openwrt.org/doc/recipes/relayclient === 以下手順 === * 子機の無線LAN側のアドレスを192.168.1.2などに設定 * LAN側のアドレスを192.168.2.1など適当に設定(上記のセグメントとは異なるセグメントにする)し'''DHCPサーバを無効'''にする sshでログインして、必要なパッケージを入れる {{{ # opkg update # opkg install relayd # opkg install luci-proto-relay }}} * インタフェースをrelayで作成(ProtocolにRelay bridgeを指定)。relayにlanとwwlan(無線LANのネットワーク)を含める(luci-proto-relayを入れればGUIでできる) * firewallの設定(/etc/config/firewall)を書き換える {{{ config 'zone' option 'name' 'lan' option 'input' 'ACCEPT' option 'output' 'ACCEPT' option 'forward' 'ACCEPT' option 'network' 'lan wwan' }}} ネットワークを再起動すればok。 {{{ # /etc/init.d/network restart }}} あとはLANポートに機器を繋げばDHCPでIPが割り振られるはず。