使わなくなった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相当のモードになるっぽい。こちらは追々試してみる予定。