====== ファームウェアの更新 ====== ===== 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 からの更新 =====