日々のあれこれ -

2009-01-05

[][] La Fonera FON2100E のOpenWrt化

おおまかな流れは以下の通り

  1. シリアル接続の用意
  2. ファームウェアイメージの用意
  3. TFTPサーバーの用意
  4. FoneraをRedBootで起動し、TFTPサーバからOpenWrtファームウェアを取得
  5. OpenWrtで起動♪

以下、詳細。

1. シリアル接続の用意

 これは割愛。ターミナルソフトの設定は、9600 8N1で。


2. ファームウェアイメージの用意

http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/ からダウンロードする。

ファームウェアイメージは次の2種をダウンロードする。

・ルートファイルシステム openwrt-atheros-2.6-root.squashfs

カーネルイメージ openwrt-atheros-2.6-vmlinux.lzma


3. TFTPサーバーの用意

Windows PC(でも何でも良いけど)でTFTPサーバーを用意。(僕は使い慣れた3CDeamonを利用しました。)

FoneraサーバPCをイーサで接続して、PC側は適当にIPアドレスを振っておく。

以下では、例えば次の様な構成を想定する。


 [TFTP Svr]===== (Ethernet) =====[Fonera]

192.168.1.2                   192.168.1.1



4. FoneraをRedBootで起動し、TFTPサーバからOpenWrtファームウェアを取得

Foneraの電源を投入し、「- enter ^C to abort ^C」の表示が出た時に、Ctrl+Cキーを同時押し。

プロンプトが下記の様に、「RedBoot>」になればOK。

+PHY ID is 0022:5521

Ethernet eth0: MAC address 00:18:84:2a:de:a4

IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0

Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]

Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006

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

Board: ap51

RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available

FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.

== Executing boot script in 1.000 seconds - enter ^C to abort ^C

RedBoot>

RedBoot>

次にFoneraIPアドレスの設定。コマンド入力してから、一応PingでPCとの間の疎通確認をする。

RedBoot> ip_address -l 192.168.1.1/24 -h 192.168.1.2

ip_address

IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0

Default server: 192.168.1.2

RedBoot>

RedBoot> ping -v -n 10 -h 192.168.1.2

Network PING - from 192.168.1.1 to 192.168.1.2

seq: 1, time: 1 (ticks)

seq: 2, time: 0 (ticks)

seq: 3, time: 0 (ticks)

seq: 4, time: 0 (ticks)

seq: 5, time: 0 (ticks)

seq: 6, time: 0 (ticks)

seq: 7, time: 0 (ticks)

seq: 8, time: 0 (ticks)

seq: 9, time: 0 (ticks)

seq: 10, time: 0 (ticks)

PING - received 10 of 10 expected

RedBoot>


IPでの疎通確認が出来たので、あとは、以下の流れ。

RedBoot>

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>

RedBoot>

RedBoot> load -r -b 0x80041000 openwrt-atheros-2.6-root.squashfs

Using default protocol (TFTP)

Raw file loaded 0x80041000-0x80160fff, assumed entry at 0x80041000

RedBoot> fis create -l 0x06f0000 rootfs

... Erase from 0xa8030000-0xa8720000: ...............................................................................................................

... Program from 0x80041000-0x80161000 at 0xa8030000: ..................

... Erase from 0xa87e0000-0xa87f0000: .

... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

RedBoot>

RedBoot>

RedBoot> load -r -b 0x800410000 openwrt-atheros-2.6-vmlinux.lzma

Using default protocol (TFTP)

Raw file loaded 0x80041000-0x80100fff, assumed entry at 0x80041000

RedBoot>

RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7

... Erase from 0xa8720000-0xa87e0000: ............

... Program from 0x80041000-0x80101000 at 0xa8720000: ............

... Erase from 0xa87e0000-0xa87f0000: .

... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

RedBoot>


5. OpenWrtで起動 〜♪

書き込みが終了したらFoneraをリセットする。

RedBoot> reset

... Resetting.+PHY ID is 0022:5521

Ethernet eth0: MAC address 00:18:84:2a:xx:xx

IP: 0.0.0.0/255.255.255.255, Gateway: 0.0.0.0

Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]

Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006

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

Board: ap51

RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available

FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.

== Executing boot script in 1.000 seconds - enter ^C to abort

RedBoot> fis load -l vmlinux.bin.l7

Image loaded from 0x80041000-0x80290085

RedBoot> exec

Now booting linux kernel:

Base address 0x80030000 Entry 0x80041000

Cmdline :

Linux version 2.6.21.5 (nbd@ds10) (gcc version 4.1.2) #2 Sun Sep 30 20:16:16 CEST 2007

CPU revision is: 00019064

Determined physical RAM map:

memory: 01000000 @ 00000000 (usable)

Initrd not found or empty - disabling initrd

Built 1 zonelists. Total pages: 4064

Kernel command line: console=ttyS0,9600 rootfstype=squashfs,jffs2 init=/etc/preinit

Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes.

Primary data cache 16kB, 4-way, linesize 16 bytes.

Synthesized TLB refill handler (20 instructions).

Synthesized TLB load handler fastpath (32 instructions).

Synthesized TLB store handler fastpath (32 instructions).

Synthesized TLB modify handler fastpath (31 instructions).

PID hash table entries: 64 (order: 6, 256 bytes)

Using 92.000 MHz high precision timer.

Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)

Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)

Memory: 13504k/16384k available (1955k kernel code, 2880k reserved, 292k data, 116k init, 0k highmem)

Mount-cache hash table entries: 512

NET: Registered protocol family 16

Radio config found at offset 0xf8(0x1f8)

Time: MIPS clocksource has been installed.

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 512 (order: 0, 4096 bytes)

TCP bind hash table entries: 512 (order: -1, 2048 bytes)

TCP: Hash tables configured (established 512 bind 512)

TCP reno registered

squashfs: version 3.0 (2006/03/15) Phillip Lougher

Registering mini_fo version $Id$

JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.

io scheduler noop registered

io scheduler deadline registered (default)

Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled

serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A

eth0: Dropping NETIF_F_SG since no checksum feature.

eth0: Atheros AR231x: 00:18:84:2a:xx:xx, irq 4

cmdlinepart partition parsing not available

Searching for RedBoot partition table in spiflash at offset 0x7d0000

Searching for RedBoot partition table in spiflash at offset 0x7e0000

5 RedBoot partitions found on MTD device spiflash

Creating 5 MTD partitions on "spiflash":

0x00000000-0x00030000 : "RedBoot"

0x00030000-0x00720000 : "rootfs"

0x00130000-0x00720000 : "rootfs_data"

0x00720000-0x007e0000 : "vmlinux.bin.l7"

0x007e0000-0x007ef000 : "FIS directory"

0x007ef000-0x007f0000 : "RedBoot config"

nf_conntrack version 0.5.0 (128 buckets, 1024 max)

ip_tables: (C) 2000-2006 Netfilter Core Team

TCP vegas registered

NET: Registered protocol family 1

NET: Registered protocol family 17

802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>

All bugs added by David S. Miller <davem@redhat.com>

VFS: Mounted root (squashfs filesystem) readonly.

Freeing unused kernel memory: 116k freed

eth0: Configuring MAC for full duplex

Warning: unable to open an initial console.

Algorithmics/MIPS FPU Emulator v1.5

- preinit -

jffs2 not ready yet; using ramdisk

mini_fo: using base directory: /

mini_fo: using storage directory: /tmp/root

- init -

init started: BusyBox v1.4.2 (2007-09-29 07:21:40 CEST) multi-call binary

Please press Enter to activate this console. device eth0 entered promiscuous mode

br-lan: port 1(eth0) entering learning state

br-lan: topology change detected, propagating

br-lan: port 1(eth0) entering forwarding state

PPP generic driver version 2.4.2

wlan: 0.8.4.2 (svn r2568)

ath_hal: module license 'Proprietary' taints kernel.

ath_hal: 0.9.30.13 (AR5212, AR5312, RF2316, TX_DESC_SWAP)

ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (svn r2568)

ath_rate_minstrel: look around rate set to 10%

ath_rate_minstrel: EWMA rolloff level set to 75%

ath_rate_minstrel: max segment size in the mrr set to 6000 us

wlan: mac acl policy registered

ath_ahb: 0.9.4.5 (svn r2568)

ath_pci: switching rfkill capability off

ath_pci: switching per-packet transmit power control off

wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps

wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

wifi0: H/W encryption support: WEP AES AES_CCM TKIP

wifi0: mac 11.0 phy 4.8 radio 7.0

wifi0: Use hw queue 1 for WME_AC_BE traffic

wifi0: Use hw queue 0 for WME_AC_BK traffic

wifi0: Use hw queue 2 for WME_AC_VI traffic

wifi0: Use hw queue 3 for WME_AC_VO traffic

wifi0: Use hw queue 8 for CAB traffic

wifi0: Use hw queue 9 for beacons

wifi0: Atheros 2315 WiSoC: mem=0xb0000000, irq=3

jffs2_scan_eraseblock(): End of filesystem marker found at 0x0

jffs2_build_filesystem(): unlocking the mtd device... done.

jffs2_build_filesystem(): erasing all blocks after the end marker...


BusyBox v1.4.2 (2007-09-29 07:21:40 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@OpenWrt:/#

最後に、Enterを押して、OpenWrtのロゴが表示されればOK!


お陰で、2台あったLaFoneraが、いまでは両方ともOpenWrt化されています。

Connection: close