====== ファームウェアの更新 ======
===== bootloder からの更新 =====
TFTP でファームウェアをダウンロードして更新を行います。
(MAE) # dhcp
BOOTP broadcast 1
*** Unhandled DHCP Option in OFFER/ACK: 42
*** Unhandled DHCP Option in OFFER/ACK: 28
*** Unhandled DHCP Option in OFFER/ACK: 42
*** Unhandled DHCP Option in OFFER/ACK: 28
DHCP client bound to address 192.168.253.211
Using eth1 device
TFTP from server 192.168.253.1; our IP address is 192.168.253.211
Filename 'mae4xx_xenial_v3_0_0.img'.
Load address: 0x48000000
Loading: T T #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
... 中略 ...
#################################################################
#################################################################
#############
done
Bytes transferred = 77479262 (49e3d5e hex)
(MAE) #
\\
ダウンロードが完了しました。\\
ファームウェアファイルは ZIP 形式となっていますので、内容を確認してみます。\\
**dhcp** コマンドにより TFTP でダウンロードすると、環境変数の
* fileaddr
* filesize
にそれぞれダウンロードしたアドレスとサイズがセットされますので、それを使用します。
(MAE) # zipextract $fileaddr $filesize
Archive:
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
3711744 Stored 3711744 0% 2017-11-21 10:43 9a12519d kernel.img
604160 Stored 604160 0% 2017-11-21 10:43 5881d27a kmod.img
2834928 Stored 2834928 0% 2017-11-21 10:44 e40eb7e9 initramfs.img
70295552 Defl:N 70297396 0% 2018-03-14 11:05 a425e4e8 rootfs.img
27643 Defl:N 6904 76% 2017-11-21 10:43 7e82142b dtb.img
100277 Defl:N 23230 77% 2017-11-21 10:43 0bad5400 .config
-------- ------- --- -------
77574304 77478362 1% 6 files
(MAE) #
内容が確認できました。
これを用いてファームウェアを更新してみます。\\
ファームウェア更新には、**firmup** コマンドを使用します。引数は下記のとおりとなっています。
(MAE) # firmup
firmup - firmup
Usage:
firmup fimraddr, firmlen, [area (0/1)]
\\
ここでも先程と同様に、環境変数にセットされた値を使用します。
(MAE) # firmup $fileaddr $filesize
firmup: zip addr: 48000000, zip len: 77479262 ==> extract buffer addr: 4c9e3d61
* search kernel.img...
file 'kernel.img' compression type is COMP_NONE, stored at addr: 48000044, size: 3711744 (0x0038a300)
* updating kernel...
device nand0 , # parts = 1
#: name size offset mask_flags
0: nand0.ubi 0x20000000 0x00000000 0
active partition: nand0,0 - (nand0.ubi) 0x20000000 @ 0x00000000
defaults:
mtdids : nand0=nand0
mtdparts: mtdparts=nand0:512M(nand0.ubi)
Creating 1 MTD partitions on "nand0":
0x000000000000-0x000020000000 : "mtd=0"
UBI: attaching mtd2 to ubi0
UBI: physical eraseblock size: 262144 bytes (256 KiB)
UBI: logical eraseblock size: 253952 bytes
UBI: smallest flash I/O unit: 4096
UBI: VID header offset: 4096 (aligned 4096)
UBI: data offset: 8192
UBI: attached mtd2 to ubi0
UBI: MTD device name: "mtd=0"
UBI: MTD device size: 512 MiB
UBI: number of good PEBs: 2048
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 12
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 2048
UBI: number of PEBs reserved for bad PEB handling: 40
UBI: max/mean erase counter: 33/1
3711744 bytes written to volume kernel.0
* search dtb.img...
file 'dtb.img' total length extracted: 27643 (0x00006bfb)
* updating dtb...
27643 bytes written to volume dtb.0
* search initramfs.img...
file 'initramfs.img' compression type is COMP_NONE, stored at addr: 4841dbcd, size: 2834928 (0x002b41f0)
* updating initramfs...
2834928 bytes written to volume initramfs.0
* search kmod.img...
file 'kmod.img' compression type is COMP_NONE, stored at addr: 4838a386, size: 604160 (0x00093800)
* updating kmod...
604160 bytes written to volume kmod.0
* search rootfs.img...
file 'rootfs.img' total length extracted: 70295552 (0x0430a000)
* updating rootfs...
70295552 bytes written to volume rootfs.0
* search opt.img...
zip_extract: file 'opt.img' not found in zip archive.
-> not found.
* search u-boot.bin.img...
zip_extract: file 'u-boot.bin.img' not found in zip archive.
-> not found.
SF: Detected S25FL256S with page size 64 KiB, total 32 MiB
* set latest firmware area: 0
(MAE) #
MA-E3xx シリーズよりも NAND Flash のアクセスが低速なので少し長く時間がかかります。
**『最終のファームウェア領域』** に "0" がセットされたと出力されていますので、状況を確認してみます。
(MAE) # firminfo -g 1
=== firmup history ===
- entry 0:
timestamp: 1521078410 (2018/03/15 10:46:50)
area: 0x10
\\
"area" が 0x10 になっていることが確認できました。
**reset** コマンドで再起動すると最新ファームウェアで起動します。
{{:mae4xx_ope:update_firmware:linux_booted_01.png|起動・ログイン・バージョン確認}}
起動できました。
\\
===== Linux からの更新 =====