2010/05/18

FON2202でもシリアルケーブル無しでRedBootに入れたよ

この前なんかうまくいかなかった訳ですが成功しました
uciでDeveloperを有功にしてtarでアーカイブを作ってmtdでイメージと一緒に書き込むという手順です

以下詳細


基本的にはここと同じ流れで進みます
始めに書いた通り一部アーカイブ作成と書き込みのコマンドが違います
自分の場合2.3.0.1 RC1 DEVの状態から始めました
他のバージョンでも大丈夫だとは思いますが一応揃えた方がいいと思います
既に2.3.0.1 RC1の通常版が入っている人はFailSafeから書き換えることができます
書き換えたらhttp://192.168.10.1/でパスワード等の設定をしてSSHで接続できる状態にしてください
(この時FONからインターネットに接続できなくても大丈夫です)
また以下の手順を実行すると入っているファームウェアが飛ぶみたいです
OpenWrtに書き換える気が無い人はやめておいた方がいいと思います

必要な物
FON2202_2.2.5.0_Flipper_RedBootC_VoteGOP.image
out.hex
・ssh、scp、fping、nc、telnet、tftp-server

まずPCからファームウェアイメージを転送

$ scp FON2202_2.2.5.0_Flipper_RedBootC_VoteGOP.image root@192.168.10.1:


次にFONにSSHで接続後、書き込み
(tarの部分はもっと短くていいと思うけどとりあえずそのままやってみた)

# uci set registered.fonreg.dev=1
# uci commit
# tar cvzf sysupgrade.tgz /etc/passwd /etc/group /etc/dropbear /etc/samba/smbpasswd /etc/samba/secrets.tdb /etc/config/firewall /etc/config/upnpd /etc/config/umtsd /etc/config/registered /etc/config/gdata /etc/config/facebook /etc/config/flickr /etc/config/mountd /etc/config/fon /etc/config/ddns /etc/config/wizard /etc/pureftpd.pdb /etc/pureftpd.passwd /etc/config/luci_dlmanager /etc/config/twitter /etc/config/firewall
# mtd -j sysupgrade.tgz -r write FON2202_2.2.5.0_Flipper_RedBootC_VoteGOP.image image
# reboot


FONが再起動したら再度PCからout.hexを転送

$ scp out.hex root@192.168.10.1:


またFONに接続しRedBootの設定を書き込み

# mtd -e "RedBoot config" write out.hex "RedBoot config"
# reboot


以上でRedBootにtelnetで接続できるようになります
ちなみにファームが飛ぶのでこの時点で既にFONとしては起動しません
次にtelnetでRedBootに接続します
これはFON2100Eの時と同じ手順
RedBootは192.168.1.254で起動するのでPCのアドレスも192.168.1.xに設定しておきます
また、 /etc/resolv.conf を空にしておくといいと思います

FONの電源を切り以下を実行してから電源を入れるとRedBootに接続できる
(fconfigでみたらタイムアウトが10秒に設定されていたので
電源を入れてから適当に5秒くらい待ってncとtelnetすれば普通に繋がると思う)

$ echo -e "\0377\0364\0377\0375\0006" >break.bin
$ while true; do fping -t 200 192.168.1.254 && break; done; nc -vvv 192.168.1.254 9000 <break.bin; telnet 192.168.1.254 9000


以下はシリアルケーブルで書き換える場合と同じので他のサイトを参考にしてもらうとして簡単に
Fedoraのtftpなどの設定はこっちを参考に

RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.200
IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.200
RedBoot> ping -v -n 3 -h 192.168.1.200
Network PING - from 192.168.1.254 to 192.168.1.200
seq: 1, time: 0 (ticks)
seq: 2, time: 0 (ticks)
seq: 3, time: 0 (ticks)
PING - received 3 of 3 expected
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 -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80040400-0x801003ff, assumed entry at 0x80040400
RedBoot> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.17
... Erase from 0xa8030000-0xa80f0000: ............
... Program from 0x80040400-0x80100400 at 0xa8030000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-root.squashfs
Using default protocol (TFTP)
Raw file loaded 0x80040400-0x801e03ff, assumed entry at 0x80040400
RedBoot> fis create -l 0x006f0000 rootfs
... Erase from 0xa80f0000-0xa87e0000: ...............................................................................................................
... Program from 0x80040400-0x801e0400 at 0xa80f0000: ..........................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> fconfig -l -n
boot_script: true
boot_script_data:
.. fis load -l vmlinux.bin.17
.. exec

boot_script_timeout: 2
bootp: false
bootp_my_gateway_ip: 0.0.0.0
bootp_my_ip: 192.168.1.254
bootp_my_ip_mask: 255.255.255.0
bootp_server_ip: 0.0.0.0
console_baud_rate: 9600
gdb_port: 9000
info_console_force: false
net_debug: false
RedBoot> reset


以上で手順は終了、OpenWrtが起動するまで暫く待ってtelnetで192.168.1.1に接続してみる

0 件のコメント:

コメントを投稿