LaFonera+をDD-WRT化

投稿日:

使わなくなったFONルータ LaFonera+ を改造。

改造方法は、ここに書いてあるとおり。DD-WRT化、つまりAPやらルータやら好きにいじれるモードに変更。

まずは、必要な材料から。確実に作業するため、シリアルコンソールで制御したかったので、昔買ったUSB-UART変換基板 MFT232RL を引っ張り出してきて、機器内部のUART端子と接続。

  • IO3.3VはFT232RLで生成された3.3Vを使用 (Lafonera+のVddは使わない。)
  • TxDとRxDをお互いつないでクロス接続
  • もちろんGNDも接続

説明書通りTeratermのボーレートを9600bpsに設定して、電源入れてしばらくするとゴニョゴニョメッセージが出てきた。UART接続OK。

ここで、リセットボタンを長押しするとリブートし始める。そのときのメッセージがこんな感じ。

The system is going down NOW !!
Sending SIGTERM to all processes.
Sending SIGKILL to all processes.
Requesting system reboot.
+Ethernet eth0: MAC address 00:18:84:a0:ee:34
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.254

RedBoot(tm) bootstrap and debug environment [ROMRAM]
OpenWrt certified release, version 1.1 - built 22:32:28, May  7 2007

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: FON 2201
RAM: 0x80000000-0x81000000, [0x80040290-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
^C
RedBoot> ^C
RedBoot> ^C

とりあえずRedBootのプロンプトで止めないと話が始まらないので、すかさずCtrl-Cを連打。

続けて、機器のIPアドレスを192.168.1.250(LANと同じサブネットでDHCPで配っていないアドレスで適当に)、TFTPサーバに 192.168.1.8 (いつも使っているVista機) を指定して手順通りにコマンド入力。

RedBoot> ip_address -l 192.168.1.250/24 -h 192.168.1.8
IP: 192.168.1.250/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.8
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> load -r -v -b 0x80041000 linux.bin
Using default protocol (TFTP)
|
Raw file loaded 0x80041000-0x8066efff, assumed entry at 0x80041000
RedBoot> fis create linux
... Erase from 0xa8030000-0xa865e000: ...................................................................................................
... Program from 0x80041000-0x8066f000 at 0xa8030000: ...................................................................................................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> fconfig
Run script at boot: true
Boot script:
.. fis load -b 0x80100000 loader
..  go 0x80100000
Enter script, terminate with empty line
>> fis load -l linux
>> exec
>>
Boot script timeout (1000ms resolution): 2
Use BOOTP for network configuration: false
Gateway IP address: 192.168.1.1
Local IP address: 192.168.1.253
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.2
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

ここでリセット掛けると、デフォルトのIPアドレス 192.168.1.1 で立ち上がるので、コンソールからログインして、ifconfigコマンドでIPアドレスを192.168.1.253 (気が変わって後ろから2つめのアドレスに変更) に設定。それからLAN端子にケーブルをつなぐと、ブラウザからWeb Interface経由でいじれるようになった。

結構電力を吹いているみたいで、AndroidのWiFi Analyzerで見ると最近買ったAPと同じくらいのレベルで見えていた。あと、動作は確認していないけど、40MHzのTurboモードという設定ができるみたいで、Draft N相当のモードになるっぽい。こちらは追々試してみる予定。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です