Fonera 2100: Attitude Adjustment 12.09にアップデート

 

OppenWrtのファームウェアのアップデートです。ファイルサイズが変わるので fis freeでメモリのサイズを把握して適切な数値をいれてインストールします。

 RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.2
 IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
 Default server: 192.168.1.2
 RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
 Using default protocol (TFTP)
 Raw file loaded 0x80040800-0x801207ff, assumed entry at 0x80040800
 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> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
 ... Erase from 0xa8030000-0xa8110000: ..............
 ... Program from 0x80040800-0x80120800 at 0xa8030000: ..............
 ... Erase from 0xa87e0000-0xa87f0000: .
 ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
 RedBoot> fis free
 0xA8110000 .. 0xA87E0000
 RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-root.jffs2-64k
 Using default protocol (TFTP)
 Raw file loaded 0x80040800-0x803207ff, assumed entry at 0x80040800
 RedBoot> fis create -l 0x6D0000 rootfs
 RedBoot> fconfig boot_script_data
 >> fis load -l vmlinux.bin.l7
 >> exec
 >>
 RedBoot> reset

再度インストールし直すのであればmtdを使うことも可能です。

root@OpenWrt:/tmp# mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7
root@OpenWrt:/tmp# mtd -e rootfs write openwrt-atheros-root.jffs2-64k rootfs

 

 

 

インストールが正しく出来てもブートできないケースが結構ありました。

 [ 27.600000] jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000e0024: 0xd65a instead
 [ 27.710000] Further such events for this erase block will not be printed
 [ 28.320000] Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
 [ 28.420000] empty_blocks 93, bad_blocks 0, c->nr_blocks 108
 [ 28.480000] VFS: Cannot open root device "(null)" or unknown-block(31,2)
 [ 28.560000] Please append a correct "root=" boot option; here are the available partitions:
 [ 28.660000] 1f00 192 mtdblock0 (driver?)
 [ 28.720000] 1f01 960 mtdblock1 (driver?)
 [ 28.790000] 1f02 6912 mtdblock2 (driver?)
 [ 28.850000] 1f03 60 mtdblock3 (driver?)
 [ 28.910000] 1f04 4 mtdblock4 (driver?)
 [ 28.970000] 1f05 64 mtdblock5 (driver?)
 [ 29.030000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)

この場合、1,2度再インストールすればOK。原因は不明です。

問題点

メモリに厳しい制約がありちょっと大きいパッケージをインストールしようとすると

root@OpenWrt:~# opkg install wpa-supplicant_20131120-1_atheros.ipk
 Collected errors:
 * gz_open: fork: Cannot allocate memory.
 * pkg_init_from_file: Failed to extract control file from wpa-supplicant_20131120-1_atheros.ipk.

のようにエラーでインストールできません。
この場合はhttpでサイトのパッケージを指定してopkgでインストールできます。