この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mae3xx_ope:firmware_update:start [2014/03/25 15:05] admin |
mae3xx_ope:firmware_update:start [2020/08/12 08:21] (現在) admin |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | ====== ファームウェアの更新 ====== | ||
+ | |||
+ | ===== 本体ファームウェアの更新 ===== | ||
+ | |||
+ | ==== bootloaderからの更新 ==== | ||
+ | |||
+ | FATでフォーマットされたSDカードにファームウェアファイルをコピーして挿入し、電源を投入します。\\ | ||
+ | 自動起動待ちのプロンプトが表示されたら即Enterキーを入力し、自動起動を停止させます。 | ||
+ | |||
+ | <code> | ||
+ | barebox 2013.12.0-00316-g4095a93 #487 Thu Mar 6 15:54:40 JST 2014 | ||
+ | |||
+ | |||
+ | Board: plum-ma[512MiB] | ||
+ | nand: ONFI param page 0 valid | ||
+ | nand: ONFI flash detected | ||
+ | nand: NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD/Spansion S34ML02G1), 256MiB, page size: 2048, OOB | ||
+ | size: 64 | ||
+ | omap-hsmmc omap4-hsmmc0: registered as omap4-hsmmc0 | ||
+ | mci0: registered disk0 | ||
+ | m25p80 m25p800: m25p16 (2048 Kbytes) | ||
+ | i2c-omap i2c-am33xx0: bus 0 rev0.11 at 100 kHz | ||
+ | cpsw cpsw0: detected phy mask 0xc | ||
+ | mdio_bus: miibus0: probed | ||
+ | eth0: got preset MAC address: D0:FF:50:B2:4A:90 | ||
+ | malloc space: 0x8e000000 -> 0x9dffffff (size 256 MiB) | ||
+ | Reset is caused by "Warm Reset". | ||
+ | envfs: wrong magic on /dev/env0 | ||
+ | no valid environment found on /dev/env0. Using default environment | ||
+ | running /env/bin/init... | ||
+ | * mounting /dev/disk0.0 to /boot (filesystem type: fat) | ||
+ | * mounting /dev/disk0.1 to /mnt/mmc1 (filesystem type: ext4) | ||
+ | ext4 ext40: EXT2 rev 1, inode_size 256 | ||
+ | UBI: attaching mtd0 to ubi0 | ||
+ | UBI: scanning is finished | ||
+ | registering /dev/ubi0 | ||
+ | registering kernel.0 as /dev/ubi0.kernel.0 | ||
+ | registering kernel.1 as /dev/ubi0.kernel.1 | ||
+ | registering initramfs.0 as /dev/ubi0.initramfs.0 | ||
+ | registering initramfs.1 as /dev/ubi0.initramfs.1 | ||
+ | registering kmod.0 as /dev/ubi0.kmod.0 | ||
+ | registering kmod.1 as /dev/ubi0.kmod.1 | ||
+ | registering rootfs.0 as /dev/ubi0.rootfs.0 | ||
+ | registering rootfs.1 as /dev/ubi0.rootfs.1 | ||
+ | registering opt as /dev/ubi0.opt | ||
+ | registering overlay as /dev/ubi0.overlay | ||
+ | UBI: attached mtd0 (name "nand0.UBI", size 255 MiB) to ubi0 | ||
+ | UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes | ||
+ | UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512 | ||
+ | UBI: VID header offset: 512 (aligned 512), data offset: 2048 | ||
+ | UBI: good PEBs: 2040, bad PEBs: 0, corrupted PEBs: 0 | ||
+ | UBI: user volume: 10, internal volumes: 1, max. volumes count: 128 | ||
+ | UBI: max/mean erase counter: 10/7, WL threshold: 4096, image sequence number: 7535 | ||
+ | UBI: available PEBs: 0, total reserved PEBs: 2040, PEBs reserved for bad PEB handling: 40 | ||
+ | |||
+ | Hit m for menu or any other key to stop autoboot: 1 | ||
+ | |||
+ | type exit to get to the menu | ||
+ | barebox@plum-ma[512MiB]:/ | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | SDカードは自動的に /boot にマウントされます。\\ | ||
+ | SDカードにコピーしたファームウェアファイルを指定して "firmup" コマンドを実行します。\\ | ||
+ | |||
+ | 引数は下記のとおりです。Linux 起動前でファイルシステムが mount されていないため、明示的にエリア (0 or 1) を指定することもできます。\\ | ||
+ | 指定しない場合、古いファームウェアが入っているエリアが自動選択されます。 | ||
+ | |||
+ | <code> | ||
+ | barebox@plum-ma[512MiB]:/ firmup | ||
+ | usage: firmup [firmware_file] <0|1> | ||
+ | barebox@plum-ma[512MiB]:/ | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | barebox@plum-ma[512MiB]:/ firmup /boot/firmware.img | ||
+ | ### MA-E3xx series firmware updater | ||
+ | firm area to write: 1 | ||
+ | firm_dual: 1 | ||
+ | * image file for "kernel" found. | ||
+ | copying kernel image to /dev/ubi0.kernel.1 ... | ||
+ | * image file for "kmod" found. | ||
+ | copying kmod image to /dev/ubi0.kmod.1 ... | ||
+ | * image file for "initramfs" found. | ||
+ | copying initramfs image to /dev/ubi0.initramfs.1 ... | ||
+ | * image file for "rootfs" found. | ||
+ | copying rootfs image to /dev/ubi0.rootfs.1 ... | ||
+ | * image file for "dtb" found. | ||
+ | erasing /dev/spi.dtb.1 ... | ||
+ | copying dtb(DeviceTree) image to /dev/spi.dtb.1 ... | ||
+ | * image file for "barebox.bin" found. | ||
+ | erasing /dev/spi.barebox ... | ||
+ | copying barebox image to /dev/spi.barebox ... | ||
+ | erasing barebox environments (/dev/env0) ... | ||
+ | update finished. | ||
+ | </code> | ||
+ | |||
+ | これで完了です。\\ | ||
+ | 新しいファームウェアで起動できます。 | ||
+ | |||
+ | <code> | ||
+ | barebox@plum-ma[512MiB]:/ boot | ||
+ | booting nand | ||
+ | firm_kind0: 1 | ||
+ | firm_area0: 1 | ||
+ | dipsw: 0 | ||
+ | [5] boot with latest firmware succeeded. | ||
+ | bootm.image: /dev/ubi0.kernel.1 | ||
+ | bootm.oftree: /dev/spi.dtb.1 | ||
+ | bootm.initrd: /dev/ubi0.initramfs.1 | ||
+ | bootargs.dyn.root: root=AREA=1 aufs=tmpfs | ||
+ | bootargs.dyn.watchdog: omap_wdt.start_at_boot=1 omap_wdt.timer_margin=120 | ||
+ | bootargs.dyn.console: console=ttyO0,115200 | ||
+ | boot_info: 0x11 | ||
+ | bootargs.dyn.cleanboot | ||
+ | i2c0: timed out on polling for open i2c message handling | ||
+ | [3] ioctl(RTC_RD_TIME) failed, Connection timed out | ||
+ | Image Name: Linux-3.14.0-rc5+ | ||
+ | Created: 2014-03-06 0:35:27 UTC | ||
+ | OS: Linux | ||
+ | Architecture: ARM | ||
+ | Type: Kernel Image | ||
+ | Compression: uncompressed | ||
+ | Data Size: 3292080 Bytes = 3.1 MiB | ||
+ | Load Address: 80008000 | ||
+ | Entry Point: 80008000 | ||
+ | |||
+ | Loading OS U-Boot uImage '/dev/ubi0.kernel.1' | ||
+ | Loading devicetree from '/dev/spi.dtb.1' | ||
+ | plum_of_fixup: eXternal I/O board's ID is 0x03, fixup device-tree... | ||
+ | commandline: ubi.mtd=0 mtdoops.mtddev=OOPS mtdoops.record_size=8192 zswap.enabled=1 root=AREA=1 aufs=tmpfs omap_wdt.start_at_boot=1 | ||
+ | omap_wdt.timer_margin=120 console=ttyO0,115200 | ||
+ | booting kernel with devicetree | ||
+ | [ 0.000000] Booting Linux on physical CPU 0x0 | ||
+ | [ 0.000000] Initializing cgroup subsys cpuset | ||
+ | [ 0.000000] Initializing cgroup subsys cpu | ||
+ | [ 0.000000] Initializing cgroup subsys cpuacct | ||
+ | ・・・・ | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== Linuxからの更新 ==== | ||
+ | |||
+ | sftpなどでファームウェアを実機に転送するなどして、ファイルを準備します。\\ | ||
+ | root権限で "firmup" コマンドを実行します。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# firmup /tmp/firmware.img | ||
+ | ### MA-E3xx series firmware update utility (for 2-area firmware). | ||
+ | Updating AREA: 0 ... | ||
+ | * image file for kernel found. | ||
+ | writing "kernel" image to /dev/mtdblock2 ... succeeded. | ||
+ | * image file for kmod found. | ||
+ | writing "kmod" image to /dev/mtdblock6 ... succeeded. | ||
+ | * image file for initramfs found. | ||
+ | writing "initramfs" image to /dev/mtdblock4 ... succeeded. | ||
+ | * image file for rootfs found. | ||
+ | writing "rootfs" image to /dev/mtdblock8 ... succeeded. | ||
+ | * DTB file found. | ||
+ | writing "dtb" image to /dev/mtd15 ... succeeded. | ||
+ | * Bootloader file found. | ||
+ | writing "barebox.bin" image to /dev/mtd13 ... succeeded. | ||
+ | Succeeded. | ||
+ | </code> | ||
+ | |||
+ | これで完了です。\\ | ||
+ | 次回から、更新したファームウェアの面で起動します。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === firmup コマンドについて === | ||
+ | |||
+ | Linux で動作する firmup コマンドの書式は下記のとおりとなっています。 | ||
+ | |||
+ | <code> | ||
+ | user1@plum:~$ sudo firmup --help | ||
+ | [sudo] password for user1: | ||
+ | ### MA-E3xx series firmware update utility (for 2-area firmware). | ||
+ | usage: firmup <firmware_file> [0|1|c|o] | ||
+ | update area selection: | ||
+ | 0/1 : area0/area1 | ||
+ | c : current | ||
+ | o : other | ||
+ | user1@plum:~$ | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | アップデートするファームウェアファイルの形式によっては、ファームアップ対象のエリアを明示的に指定することができます。 | ||
+ | |||
+ | ^ エリア指定 ^ アップデート対象 | | ||
+ | | 0 |エリア0 | | ||
+ | | 1 |エリア1 | | ||
+ | | c |現在使用中のエリア | | ||
+ | | o |現在使用中でない方のエリア | | ||
+ | |||
+ | ルートファイルシステムの更新を含まない場合に限り、更新する対象のエリアを指定することが可能です。\\ | ||
+ | ルートファイルシステムの更新を含む場合、更新対象は現在使用中でないエリアに限られます。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== LTE Module ファームウェアの更新 ===== | ||
+ | |||
+ | ファームウェア更新をサポートしている LTE Module((現時点では、AMTelecom 製 AMM570/AMP520 がサポートしています)) は、Linux 上でファームウェアの更新が可能です。\\ | ||
+ | [[download_software:lte_module:start|ここ]] からファームウェアのファイルをダウンロードし、''firmup'' コマンドで本体ファームウェア更新と同じように実行してください。 | ||
+ | |||
+ | \\ | ||