注意 DD-WRTではFONのアクセスポイントとしての利用はできなくなります。後でオリジナルに戻すことは可能ですが、リセットで戻せなくなる事例もあり、その際は相応の知識が必要です。La Foneraを壊す危険もあります。理解できない場合は絶対に実行しないこと!(自己責任。誰も助けません)

DD-WRTとは

  • DD-WRTはオープンソースな無線LAN APファームウェア
  • 中身はファームウェアというよりは無線LAN AP向けのLinuxディストリビューション
  • WPA2やVPNサーバー・クライアント、フリーホットスポット機能など、メーカーが出し惜しみしてる機能満載
  • OpenWRTと違いLinuxの知識が無くてもブラウザから設定できる
  • ファームのバージョンアップでsshを封印されたLaFoneraハードを最大限活用できる

ファームウェア

  • Fonが公式にリリースしているものではないことに留意。
    • 配布元は http://www.dd-wrt.com/site/
    • 脆弱性報告の状況や有無を調べ、その対策版を入れるとか設定で回避する等の対処を。
    • 目的の機能が安定して稼働するとレポートされている版を用いるのが賢明。

以下は2chスレからの最近の状況。

  • 10/04/23にv24-preSP2が出た。(SVN revision 14311)
  • 10/04/13にv24-preSP2が出た。(SVN revision 14144)
  • 09/10/10にv24-preSP2が出た。(SVN revision 13064)
  • 09/07/21にv24-preSP2が出た。(セキュリティ対策の暫定リリース版、SVN revision 12533)
  • 08/07/26にv24 SP1が出た。
  • 08/05/18にv24が出た。

推奨ファーム

以下のバージョンのファームがDD-WRTのフォーラムでのおすすめになっています。

対象機種

ブートローダにRedBootを採用する機種で、dd-wrtファームウェアが公開されている。

  • LaFonera Fon2100E (別称: Fon1.0、元祖、特徴:小型筐体、5V電源仕様)
  • LaFonera Fon2200 (別称:Fon1.1、特徴:電源が7.5V仕様、元祖と同サイズの小型筐体)
  • LaFonera+ Fon2201 (別称:Fon1.5、特徴:LAN/WAN独立装備、7.5V仕様、元祖よりもひとまわり大きい)
  • LaFonera2.0 Fon2202 (別称:Fon2.0、特徴:USBコネクタ装備、LAN/WAN独立装備、7.5V仕様、LaFonera+と同じサイズの筐体)

なお、FONERA2.0Nはブートローダがu-bootに変更されているため、以下の手順ではdd-wrt化はできない。(公式サイトでも、現時点では対応予定で「work_in_progress」であり、対応するファームウェアをダウンロードすることはできない@20100403)

DD-WRT化手順概略

v24正式版(&その直前のRC7版)と、それ以前のファームウェアでは、更新手順が異なる。

1. シリアルコンソール経由(v24 RC6.2までに適合)

  • シリアルコンソールでLa FoneraとPCを接続しroot.fsとvmlinux.bin.l7をTFTPで流し込む
  • (ファイル名に注意 バージョン情報などの違いがあれば、vmlinux.bin.l7 にリネームすること)
  • Foneraを分解し、コンソールケーブルを作成しなければならず、作成の手間と追加費用がかかる
  • 失敗した時の復旧の保険が欲しい人、いじり倒す人はこちらの方法を推奨
  • ケーブル作成と接続方法は下のシリアル端子配列を参照

代替無線ファームウェアDD-WRT SS2ch:pc11.2ch.net/test/read.cgi/linux/1165810666/ から
(元ネタ:http://www.dd-wrt.com/wiki/index.php/La_Fonera_Flashing

  1. PCとルータのLANポートにLANケーブルで接続(PCのIPアドレスは192.168.1.1に設定 La Foneraは192.168.1.2にする想定)
  2. PCとルータのシリアルにコンソールケーブル(カモン9-KEなど)で接続
  3. TFTPサーバ起動後、TFTPサーバーのディレクトリにファーム(root.fs、vmlinux.bin.l7)をぶっこむ。
  4. Tera Termの設定を 9600-8-N-1にする。
  5. ルータの電源をいれて、Ctrl+C、>Redbootプロンプトになったら以下のコマンド実行
    >Redboot ip_address -l 192.168.1.2/24 -h 192.168.1.1
    >Redboot fis init
    >Redboot load -r -v -b 0x80041000 root.fs
    >Redboot fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
    >Redboot load -r -v -b 0x80041000 vmlinux.bin.l7
    >Redboot fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7
    >Redboot fis create -f 0xA83D0000 -l 0x00010000 -n nvram
    >Redboot reset
  6. 再起動されてしばらくして文字化けしたメッセージが表示されてたらWRT化に成功してるのでTera Termの設定を115200-8-N-1にすれば表示なおる。何かエラーでてたらもう一度やり直し。
  7. fis 〜 vmlinux.bin.l7を修正、ブラウザからのアップデートに失敗する方はRedbootからfis listを実行し、vmlinux.bin.l7のLength値が0x000E0000かどうか確認して下さい

2. シリアルコンソール経由(v24正式版以降への更新)

  • v24 正式版(&RC7版)から更新の手順が変更になっていて、web設定画面経由で更新できない場合がある。
  • 元ネタ(http://www.dd-wrt.com/dd-wrtv2/downloads/v24-sp1/Consumer/Fon/Fonera/fonera_flashing.txt )に目を通して、ファームウェア更新の流れを一通り理解してから作業に臨むこと。
  • パソコン1台でコンソール接続とTFTPサーバ機能を行う前提で記述している。
  • 既にdd-wrtを導入済みのLaFoneraをアップデートする場合、既存の設定が影響して、壊したかも(?)と思わせる原因になる場合もあるため、万全を期してFactory_Default設定で環境設定を初期化してから以下の手順に入るとよい。
  1. シリアルコンバータ経由で、LaFonera内部のシリアルポートとPCを接続する。
    以下の手順ではLa Fonera側のIPアドレスは192.168.1.2、PCのIPアドレスは192.168.1.10と想定して記述
    異なる場合は、適宜読み替えて実行する。
  2. PC側では、ターミナルソフト(Tera Term)のシリアルポート設定を 9600-8-N-1にする。
    既にv24 RC7が導入されている場合や、それ以前のファームウェアでもfconfigでシリアルポートの通信速度を変更している場合はそれに合わせる(ex. 115200bps)
    重要:ファームウェア更新時の操作ミス(もしあれば)を後で検証できるよう、作業開始からDD-WRTのwebセットアップ画面にアクセスできるまで、ログファイルを保存しておくことを強く推奨。特に、初めてファームウェア更新にトライする場合など。
  3. TFTPサーバを起動し、アップロードフォルダに、La Foneraに注入するファームウェアを入れておく(公式サイトでダウンロード時、Console imageとして表記されているlinux.binを用いる)
  4. La Foneraの電源を投入し、RedBootコンソールに入る。(Ctrl+C操作)
    Redbootプロンプトになったら以下のコマンド実行 (実際には、各コマンド毎にメッセージが表示される)
    > RedBoot> ip_address -l 192.168.1.2/24 -h 192.168.1.10
    > RedBoot> fis init
    > RedBoot> load -r -v -b 0x80041000 linux.bin
    > RedBoot> fis create linux
    2番目のコマンド、fis initで確認メッセージが表示されるので「y」を入力。
    最後のコマンド、fis create linuxにおいて書き込みに30分以上かかるので気にせず放置。
    (PCのパワーセーブ設定次第では)スタンバイまたは休止状態に入らないよう、予め電源の設定を(一時的に)変更しておくとよいかも。
  5. RedBootの起動環境を設定する。
    変更の主な目的は起動スクリプトの記述変更。それ以外のパラメータ変更は必須ではない。
    最後の確認に「y」と入力し、fconfigは設定保存して終了する。
    > RedBoot> fconfig
    > Run script at boot: true
    > Boot script:
    > .. fis load -l vmlinux.bin.l7
    > .. exec
    > Enter script, terminate with empty line
    > >> fis load -l linux
    > >> exec
    > >>
    > (途中省略)
    > Update RedBoot non-volatile configuration - continue (y/n)? y
    > ... Erase from 0xa87e0000-0xa87f0000: .
    > ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . 
  6. 再起動する
    電源のoff/onでもよい
    > RedBoot> reset
  7. 書き換え後の設定等
    コンソール側に諸々のメッセージを吐きながら、RedBootを経てDD-WRTファームウェアが起動してくる。
    v24sp1ではファームウェアを書き換えた最初の起動で(Factory Default実行時も同様)ユーザ名とパスワードの変更を促す画面が表示されるようになった。 ここで変更してもいいし、後で変更することも可能なので好きなタイミングで変更(初期設定のまま運用することは避けるべき)。続いてFactory Defaultに初期化する場合はその際に変更した方が手間が少ない。 ユーザ名やパスワードを忘れたらリセットボタンで初期化可能
    > Your Router is currently not protected and uses an unsafe default username and password combination, 
    > please change it using the following dialog!
    デフォルトのままのセキュリティによるwebセットアップへの不正アクセスやその他のトラブルを防ぐため、実運用に入る前にユーザ名&パスワード変更を行っておくことを推奨。
  8. (ついでに)Console baud rateの設定 (必須ではない。 この手順は省略可)
  • 手順が前後するが、RedBootの起動環境を設定する工程の一部。fconfigで Console baud rateを 115200 に変更。
  • メリット: シリアルポート接続でコンソールに吐き出されるメッセージをモニタする際、RedBoot(ブートローダ)とlinux(dd-wrtファーム)起動後で通信速度が同じため、どちらも文字化けしない。
  • デメリット: うまく設定できずにRedBoot起動環境設定を壊してしまう事例がある。
    (やるなら二度手間になるが)DD-WRTの稼働が確認できた後に、フタ閉め直前にここだけ再設定する方が無用なトラブルを回避できる。この設定はRedBootの通信速度を指定するものなので、ここがおかしくなるとRedbootへのアクセスが出来なくなり、ファームウェアの再注入さえも難しくなる。
  • 特にbackspaceで以前の数値が消せないような場合 RedBootの起動環境設定を壊す可能性が高く、保存せずに終了させる(=編集中止)。ターミナルソフトの設定も関与してくるものなので一概に(以前の数値が消せないような場合が)ダメだとは言い切れないが、トラブル事例の多くで、元の数字を消せなかったまま保存したとのレポートから。
  • 必須の設定ではなく、この設定に拘る必要もない(コンソールのメッセージ全てを常時モニタしたい場合など、必要性は限定的)。

3. SSH経由

  • RedBootのtelnet化 ベース
  • 特に必要になるものは無いが以下のように手順が複雑、DD-WRT化以降はブラウザから書き換え可能
  • 箱を開けない前提なら以下の手順になる
  • ファームウェアの書き換えに失敗してFoneraが起動しなくなった場合の復旧は例1でのみ可能
  • シリアル経由と同様 http://www.dd-wrt.com/wiki/index.php/La_Fonera_Flashingを参照のこと
  • 注意 fis createでめっちゃ時間かかるから(10分くらい)じっと我慢の子。その間 Enterおさないようにね。 失敗してもtelnet 192.168.1.254 9000からある程度やり直せるよ

4. telnet経由

ssh化不要でかつシリアルケーブルなしでdd-wrt化が可能。ただしLa Fonera+だけ利用可能な方法かもしれないので注意されたい。

あらかじめホストPCに

  • linux.bin
  • tftpd
  • telnetクライアント(putty推奨、teratermではダメだった)

を用意しておき、IPアドレスを192.168.1.254/24にする。La Fonera+とクロスケーブルなりで直結し電源を入れ、タイミングよくtelnetクライアントから192.168.1.1:9000に接続しにいくとRedBootにつながる。あとの操作は他と一緒(参考1参考2)。

シリアル端子配列

La Foneraを分解してアクセスする内部シリアルポートのピン配列や関連事項など

1. LaFonera、FON2100E(ヘッダピン10本)

La Fonera v1.0という呼び方もある。
シリアル端子からPCに接続するには電圧レベルシフタが必要。
携帯電話用接続ケーブルの9-KE等を流用するときは

 (コンデンサ) (コンデンサ)
| | | | |  |
| |RX|TX| |GND|
 (メモリIC)
FON2100E_internalSIO.jpg
9-KEの場合UP12Cの場合9-CDMの場合
GND
TX
RX

こんな感じにつなぐ
(9-KE 色違いのバージョンあり GND-緑  TX-赤  RX-黒 )

2. LaFonera、FON2200(ヘッダピン4本)

La Fonera v1.1という呼び方もある。
FON2100Eと比べてシリアルポートJP1のヘッダピンが4本に変更されているが、必要最小限のピンに限定したもの。
ケースを開封する際、専用ドライバが必要、ヘックスローブの6番(T6)が該当。
シリアル端子からPCに接続するには電圧レベルシフタが必要。
LEDを手前側に、電源ジャックを遠くに見て、JP1の手前側から順に
Vcc(+3.3V)、TxD、RxD、GND

FON2200_internalSIO.jpg

3. LaFonera+、FON2201(ヘッダピン4本)

LaFonera+とLaFonera2.0で、シリアルポートの配置は共通。
FON2100Eと比べてシリアルポートJP1のヘッダピンが4本に変更されているが、必要最小限のピンに限定したもの。
ケースを開封する際、専用ドライバが必要、ヘックスローブの9番(T9)が該当。
シリアル端子からPCに接続するには電圧レベルシフタが必要。
WANポート(白色RJ-45コネクタ)を手前に見て、JP1の手前側から順に
Vcc(+3.3V)、TxD、RxD、GND

FON2201_internalSIO.jpg

La Fonera+には La Fonera v1.5という呼び方があり、La Fonera2.0には La Fonera v2.0という呼び方もある。
La Fonera+と La Fonera2.0はハードウェア的な基本設計は共通で、使用される部品が異なる程度。但し、搭載されるファームウェアはハードウェアの違いを吸収する部分が異なる(256Mbitメモリ&USBサポート)。

移行後の初期設定

ファームウェア書き換え後のリセット(または電源off/on)後に、La FoneraはIPアドレス192.168.1.1/24 で動作を開始する。 http://192.168.1.1/ でアクセスできるはず。これは無線側からアクセスできる。(La Foneraと同じサブネット内からアクセスすれば)有線側からもアクセスできる。
有線側からアクセスする場合、以下の設定で可能。

La Foneraを検証用PCとLANケーブルで直接接続する。(HUB経由でもok)
検証用PCで、IPアドレス/マスク:192.168.1.10/24 Gateway:192.168.1.1と設定。
webブラウザから http://192.168.1.1/ にアクセス。
webセットアップ(ログイン名・パスワードの変更を促す画面)が表示される。
環境設定部分のアクセスには デフォルトのユーザ名 root、パスワードは admin でログインできる。

正常に書き換えされていれば、SSIDが dd-wrt であるAPが(信号強度最大で)発見できるはず。その時点では暗号化やアクセス制限が無いため(=野良AP状態)、そのまま接続すればdd-wrtのwebセットアップ(ログイン名・パスワードの変更を促す画面)にアクセスできる。

正常にdd-wrt化できているはずなのに何か挙動がおかしいと思われる場合は、再度dd-wrtファームウェアを注入するか、リセットボタンによる初期化処理で本来の動作になる可能性もあるので試してみる。
リセットボタンで対処する場合は

電源onの状態で本体裏のリセットボタン(赤色または黒色)を楊枝など先端の細い物で約30秒押し続ける。
暫く(ボタンを離してから約60秒)待つとwebセットアップの情報を全て消去してから起動してくる。
webセットアップ画面のアクセスは SSID: dd-wrt、IPアドレス/マスク:192.168.1.1/24 、
デフォルトのユーザ名 root、パスワードは admin です。

但し、リセットボタンは 電源投入直後から有効になるわけではないため、ファームウェアの起動途中でハングアップしているような場合はリセットボタンによる初期化はできない場合がある。そのような場合だと思われる場合はファームウェアを入れ直すしかない(滅多にそんなことにはならないハズだが)。
dd-wrtのwebセットアップでリセットボタン監視を禁止していた場合で、webセットアップ(編集画面)にアクセスできなくなった場合でも、同様にファームウェアの入れ直しが必要となる。(特に、ユーザ名やパスワードを変更していた場合に陥る可能性あり)

日本語化

webセットアップの表示言語を日本語に変更できます。

移行後のアップグレード

version 2007 - 0117以降の場合

  1. DD-WRTのページからfonera-firmware.binをダウンロード
  2. Foneraにブラウザからアクセスし、Administration>Firmware Upgrade
  3. Please select a file to upgradeの欄にはfonera-firmware.binを指定します
  4. 現在の設定をアップグレード後も使用する場合はAfter flashing, reset toをDon't resetにして下にあるUpgradeボタンを押します
  5. カウントダウンが始まりアップグレードが開始されます、カウントダウン終了後も処理を行っているのでFoneraの電源をきったりリセットしてはいけません
  6. この時処理が一瞬で終了したように表示される場合は初回の書き換えに失敗している可能性があります下記の方法で書き換えて下さい
  7. 数分経過した後にアップグレード完了画面が出れば成功です
  8. アップデートが正常に完了したかは右上のバージョン情報を参照して下さい

version 2007 - 0117以前の場合や書き換えに失敗している場合

  1. La Foneraにsshでloginする。
  2. /tmp以下に新しいファイルを持ってくる(WANにアクセスできるなら直接取得、できないなら他マシンを経由する)。
    ~ # cd /tmp
    /tmp # wget 'http://www.dd-wrt.com/dd-wrtv2/downloads/beta releases/fonera builds/(date)/vmlinux.bin.l7'
    /tmp # wget 'http://www.dd-wrt.com/dd-wrtv2/downloads/beta releases/fonera builds/(date)/root.fs'
  3. mtdコマンドを使ってFlash ROMを書き換える(root.fsのピリオドに注意)。
    /tmp # mtd write vmlinux.bin.l7 vmlinux.bin.l7
    /tmp # mtd write root.fs rootfs
  4. リブートする。
    /tmp # reboot
  5. 設定が初期値になるので、適宜戻す(せめてsshを有効にしないと)。最近のやつは初期値に戻らないみたい。

イーサネットコンバータ化の設定

イーサネットコンバータとは? 簡単に言うと、有線LANポートを無線に変換するもの。 無線LANを搭載していない機器で、無線LANを利用できるようにする。

  • 下準備として Admin > Factory Defaults > Yes > Save で設定を初期化してから作業することを推奨
    • 設定クリア後、Lafoneraを既存のLANから切り離し、PCから無線LANで SSID:dd-wrt に接続
  1. ブラウザから設定画面を開く
  2. Security > Firewall
    SPI Firewall: Disable
  3. Setup > Advanced Routing (RIP2 Router ではなく RouterにしないとDHCPがうまくいかない場合もある)
    Operating Mode: RIP2 Router
    Dynamic Routing > Interface: LAN&WLAN
  4. Wireless > Wireless Security
    既存の無線APで使用しているWPAやWEPのキーに設定
  5. Wireless > Basic Settings
    Regulatory Domain: Japan
    Wireless Mode: Client Bridge
    Wireless Network Name (SSID): 既存の無線APのSSID
  6. Setup > Basic Setup
    Connection Type: Disable
    STP: Disable
    Router Name & Host Name: 適当に
    MTU : Manual にして「1454」に設定する(Bフレッツ利用者のみ)
    Router IP - Local IP address: 既存のLANのセグメント内の空いてるIPに
    SubnetMask & Gateway & LocalDNS: 既存のLANと同じものに
    DHCP Server: Disable

以上の設定を行った後、Lafoneraに有線でPC等を接続すれば既存のLANに接続できます。

APモードの設定

このAPモードにするとLa FoneraはNAT機能を停止するので、 無線側と有線側の間のアクセスは完全に自由に行えます。 有線側PCと無線側PCのファイル共有で特別な設定をする必要がなくなります。 ルーター、ルーター機能付モデムをもっている場合、ルータはそれに任せて、無線化だけすることができます。 LaFonera Software AP-modeを意訳したものがソース。

  • 下準備として Admin > Factory Defaults > Yes > Save で設定を初期化してから作業することを推奨
  1. ブラウザから設定画面を開く
  2. Security > Firewall
    SPI Firewall: Disable
  3. Setup > Basic Setup
    Connection Type: Disabled
    あとは好きなように
    Router IP - Local IP address: 同じネットワーク上の他の機器と重複しないように設定する
    今のところLafonera自体のIPアドレスは、DHCPで上位ルータから取得できない
    DHCP Server: Disable
  4. Setup > Advanced Routing
    Operating Mode: RIP2 Router 
  5. Wireless > Basic Settings
    Wireless Mode: AP
    Network Configuration: Bridged
    あとは好きなように
  6. Wireless > Security
    必要であれば設定

今後追加予定の機能や判明しているバグ・不具合など

  • セキュリティ・脆弱性の問題
    • httpdにまつわる脆弱性とその対処策が報告されている(2009年7月22日付)。詳細は本家を参照のこと。その後の対処策を含むファームウェアとしてDD-WRT v24 preSP2 (Build13064)がリリースされている。
    • psyb0tワーム(2009年3月28日付) デフォルトの設定では感染しない。詳細は本家を参照のこと。
  • メインデバイス(クライアントモード)で暗号化してないとバーチャルデバイス(APモード)の暗号化ができない。
  • WDS(APモード)で暗号化が使えない。
  • Web設定の NAT / QoS -> QoS で4つのEthernetポートの優先度を設定できる。(La FoneraにはEthernetポートは1個しかない)
  • LaFoneraファーム時と比較して、高熱になりやすいという報告があります。ビルド・設定によっても違うらしい。

仕様

  • もともとひ弱なLaFoneraだが、DD-WRT化でさらにスループットが落ちる。
  • ランプはでたらめに点滅?(v24正式版以降のファームウェアではアクセスしているデバイスに連動した点滅になった風合)

オリジナルのファームウェアに戻す

ぶっちゃけDD-WRT化と同じで、書き込むファームウェアが純正版というだけ。

  1. ファームウェアをダウンロードしてくる
    • 7.1.1のバージョン(SSHが使える) ダウンロード
    • 7.1.2のバージョン(以降SSHが使えない) ダウンロード(404)
    • 7.1.5のバージョン(FONから)ダウンロード
      • 7.1.5(というかFONからダウンロードした場合)はファイルに変更を加える必要があります。
      • OSがLinuxかMacOS Xなら以下のコマンドで可能です。(バイナリエディタ使えばwinでも可能?)
      • tail --bytes +520 fonera_0.7.1.5.fon > fonera_0.7.1.5.tar.gz
  2. ファイルを解凍し、kernel.lzma と rootfs.squashfsをTFTPサーバのルートディレクトリに置く。
  3. RedBootに接続し、以下のコマンドをタイプ(IPアドレスは自分の環境に合わせて変更すること)
    • ip_address -l 192.168.1.254/24 -h 192.168.1.2
    • fis init
    • load -r -v -b 0x80040450 rootfs.squashfs
    • fis create -b 0x80040450 -f 0xA8030000 -l 0x00700000 -e 0x00000000 rootfs
    • load -r -b %{FREEMEMLO} kernel.lzma
    • fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
    • fis load -l vmlinux.bin.l7
    • exec
  4. FONを再起動。

関連スレ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-04 (火) 23:45:42 (87d)