第11章 イメージファイルの書き換え方法

本章では、Armadillo-X1の内蔵ストレージに書き込まれているイメージファイルを書き換える手順について説明します。

本章で使用する最新版のイメージファイルは、"Armadillo サイト"でダウンロードすることができます。新機能の追加や不具合の修正などが行われているため、最新バージョンを利用することを推奨します。

11.1. インストールディスクを使用する

インストールディスクを使用すると、内蔵ストレージ上のすべてのイメージをまとめて書き換えることができます。 Armadillo がソフトウェアの問題により起動しなくなった場合の復旧方法としてもご使用頂けます。

[警告]

内蔵ストレージに保存されている、すべてのイメージファイルが上書きされるため、既に保存されているデータやアプリケーションなどは削除されます。

特定のイメージのみ書き換えたい場合には 「特定のイメージファイルだけを書き換える」 を参照してください。

インストールディスクはATDEで作成します。インストールディスクの作成に使用するファイルを次に示します。

表11.1 インストールディスク作成に使用するファイル

ファイルファイル名
インストールディスクイメージinstall_disk_sd_[version].img

11.1.1. インストールディスクの作成

  1. 512 MB以上のSDカードを用意してください。

  2. ATDE に SD カードを接続します。詳しくは「取り外し可能デバイスの使用」を参照してください。

  3. SD カードがマウントされている場合、アンマウントします。

    [PC ~]$ mount
    (省略)
    /dev/sdb1 on /media/atmark/B18A-3218 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
    [PC ~]$ sudo umount /dev/sdb1
  4. SD カードにインストールディスクイメージを書き込みます。

    [PC ~]$ sudo dd if=install_disk_sd_[version].img of=/dev/sdb bs=4M
    94+1 レコード入力
    94+1 レコード出力
    397410304 バイト (397 MB) コピーされました、 45.8441 秒、 8.7 MB/秒
    [PC ~]$ sync

11.1.2. インストールの実行

  1. Armadilloの電源が切断されていることを確認します。接続されていた場合は、電源を切断してください。また、「CON9 RTCバックアップインターフェース」 にバッテリーが接続されている場合は、必ず取り外して下さい。

  2. USBシリアル変換アダプタのスライドスイッチを確認します。スライドスイッチが図4.8「スライドスイッチの設定」の 1 側に設定されている事を確認してください。

  3. インストールディスクを使用してSDブートを行います。インストールディスクを接続した、SDスロット拡張ボード接続し、「インターフェース仕様」を参照してSDスロット拡張ボードのSW1を「SD BOOT」に設定してください。

  4. ユーザースイッチを押しながらArmadillo に電源を投入するとSDカードからブートローダーが起動し、次に示すログが表示されます。 ログが表示されたら、ユーザースイッチを離してください。 ユーザースイッチの位置については「Armadillo-X1の外観」を参照してください。

    U-Boot SPL 2016.07-at16 (Jun 18 2018 - 12:04:02)
    Trying to boot from MMC1
    
    
    U-Boot 2016.07-at16 (Jun 18 2018 - 12:04:02 +0900)
    
    CPU:   Freescale i.MX7D rev1.2 at 996MHz
    CPU:   Extended Commercial temperature grade (-20C to 105C) at 30C
    Reset cause: POR
           Watchdog enabled
    I2C:   ready
    DRAM:  512 MiB
    Boot Source: SD
    error: BMIC EEPROM detect
    MMC:   FSL_SDHC: 0, FSL_SDHC: 1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    Failed (-5)
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    Failed (-5)
    In:    serial
    Out:   serial
    Err:   serial
    Found PFUZE300! deviceid 0x30, revid 0x11
    Net:   No ethernet found.
    =>
  5. 次のように"boot"コマンドを実行するとインストールが始まり、自動的にeMMCが書き換えられます。

    => boot
    switch to partitions #0, OK
    mmc0 is current device
    switch to partitions #0, OK
    mmc0 is current device
    reading boot.scr
    ** Unable to read file boot.scr **
    ** Invalid partition 3 **
    reading uImage
    11432840 bytes read in 509 ms (21.4 MiB/s)
    Booting from mmc ...
    reading x1-minimal.dtb
    34731 bytes read in 18 ms (1.8 MiB/s)
    ## Booting kernel from Legacy Image at 82000000 ...
    Image Name:   Linux-4.9.112-at2
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    11432776 Bytes = 10.9 MiB
    Load Address: 80008000
    Entry Point:  80008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 84800000
    Booting using the fdt blob at 0x84800000
    Loading Kernel Image ... OK
    Using Device Tree in place at 84800000, end 8480b7aa
    Starting kernel ...
    : (省略)
    *+*+* Install Start!! *+*+*
    [警告]

    インストールの実行中は電源を切断しないでください。ボード情報が破損し、復旧できなくなる恐れがあります。

  6. 以下のようにメッセージが表示されるとインストール完了です。電源を切断してください。

    *+*+* Install Completed!! *+*+*
    

11.2. 特定のイメージファイルだけを書き換える

Armadillo-X1が起動した状態であれば、特定のイメージファイルだけを書き換えることができます。

イメージファイルと書き込み先の対応を次に示します。

表11.2 イメージファイルと書き込み先の対応

名称

ファイル名

ストレージ

デバイスファイル

ブートローダーイメージ

u-boot-x1-[version].bin

eMMC(ブートパーティション), SPIフラッシュメモリ

/dev/mmcblk2boot0, >/dev/mtdblock0

Linuxカーネルイメージ

uImage-x1-[version]

eMMC

/dev/mmcblk2p1

Device Tree Blob

armadillo_x1-[version].dtb

/dev/mmcblk2p1

Debian GNU/Linuxルートファイルシステム

debian-stretch-armhf_ax1_[version].tar.gz

/dev/mmcblk2p2


11.2.1. ブートローダーイメージの書き換え

ブートローダーイメージの書き換え方法を次に示します。

[armadillo ~]$ x1-bootloader-install u-boot-x1-[version].bin
Erasing /dev/mmcblk2boot0....done
Writing u-boot-x1.bin to /dev/mmcblk2boot0....done

11.2.2. Linuxカーネルイメージの書き換え

Linuxカーネルイメージの書き換え方法を次に示します。

[armadillo ~]# mount -t vfat /dev/mmcblk2p1 /mnt  1
[armadillo ~]# cp uImage-x1-[version] /mnt/uImage  2
[armadillo ~]# umount /mnt  3

1

eMMCの第1パーティションを/mnt/ディレクトリにマウントします。

2

Linuxカーネルイメージを/mnt/ディレクトリにコピーします。

3

/mnt/ディレクトリにマウントしたeMMCの第1パーティションをアンマウントします。

11.2.3. DTBの書き換え

DTBの書き換え方法を次に示します。

[armadillo ~]# mount -t vfat /dev/mmcblk2p1 /mnt  1
[armadillo ~]# cp armadillo_x1-[version].dtb /mnt/armadillo_x1.dtb  2
[armadillo ~]# umount /mnt  3

1

eMMCの第1パーティションを/mnt/ディレクトリにマウントします。

2

DTBを/mnt/ディレクトリにコピーします。

3

/mnt/ディレクトリにマウントしたeMMCの第1パーティションをアンマウントします。

11.2.4. ルートファイルシステムの書き換え

eMMC上のルートファイルシステムを書き換える手順を次に示します。

手順11.1 eMMC上のルートファイルシステムを書き換える

  1. eMMCをルートファイルシステムとしている場合、マウントしているルートファイルシステム自体の書き換えはできません。このため、今回は例としてSD ブートディスクから起動し書き換えを行います。ブートディスクの作成方法やSDブートの実行方法ついては14章SDブートの活用を参照してください。

  2. Debian GNU/Linuxルートファイルシステムアーカイブを準備しておきます。

    [armadillo ~]# ls
    debian-stretch-armhf_ax1_[version].tar.gz
  3. ルートファイルシステムをeMMCの第2パーティションに再構築します。

    [armadillo ~]# mkfs.ext4 /dev/mmcblk2p2  1
    mke2fs 1.42.12 (29-Aug-2014)
    /dev/mmcblk2p2 contains a ext4 file system
    ▸-last mounted on /root on Thu Jan  1 09:00:07 1970
    Proceed anyway? (y,n) y  2
    ...[省略]...
                                                                                                                                          
    [armadillo ~]# mount -t ext4 /dev/mmcblk2p2 /mnt  3
    [armadillo ~]# tar zxf debian-stretch-armhf_ax1_[version].tar.gz -C /mnt  4
    [armadillo ~]# umount /mnt  5
    ▸-

    1

    eMMCの第2パーティションのファイルシステムを再構築します。

    2

    y に続きENTERを入力します。

    3

    eMMCの第2パーティションを/mnt/ディレクトリにマウントします。

    4

    ルートファイルシステムアーカイブを/mnt/ディレクトリに展開します。

    5

    /mnt/ディレクトリにマウントしたeMMCの第2パーティションをアンマウントします。