本章では、Armadillo-640の内蔵ストレージ(eMMC)に書き込まれているイメージファイルを書き換える手順について説明します。
本章で使用するブートローダーイメージファイルなどは、"Armadillo サイト"でダウンロードすることができます。新機能の追加や不具合の修正などが行われているため、最新バージョンを利用することを推奨します。
インストールディスクを使用すると、内蔵ストレージ上のすべてのイメージをまとめて書き換えることができます。 Armadilloがソフトウェアの問題により起動しなくなった場合の復旧方法としてもご使用頂けます。
| |
---|
内蔵ストレージに保存されている、すべてのイメージファイルが上書きされるため、既に保存されているデータやアプリケーションなどは削除されます。 特定のイメージのみ書き換えたい場合には「特定のイメージファイルだけを書き換える」を参照してください。 |
インストールディスクはATDEで作成します。インストールディスクの作成に使用するファイルを次に示します。
表11.1 インストールディスク作成に使用するファイル
ファイル | ファイル名 |
---|
インストールディスクイメージ | install-disk-sd-a600-[version].img |
-
512 MB以上のmicroSDカードを用意してください。
-
ATDE に microSD カードを接続します。詳しくは「取り外し可能デバイスの使用」を参照してください。
microSD カードがマウントされている場合、アンマウントします。
[ATDE ~]$ 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)
[ATDE ~]$ sudo umount /dev/sdb1
microSDカードにインストールディスクイメージを書き込みます。
[ATDE ~]$ sudo dd if=install-disk-sd-a600-[version].img of=/dev/sdb bs=4M conv=fsync
127+1 レコード入力
127+1 レコード出力
536870400 バイト (537 MB) コピーされました、 65.6377 秒、 8.2 MB/秒
-
Armadilloの電源が切断されていることを確認します。接続されていた場合は、電源を切断してください。
-
USBシリアル変換アダプタのスライドスイッチを確認します。スライドスイッチが図4.15「スライドスイッチの設定」の 1 側に設定されている事を確認してください。
-
インストールディスクを使用してSDブートを行います。JP1とJP2を共にジャンパでショートし、インストールディスクをArmadilloに接続してください。
Armadillo に電源を投入するとmicroSDカードからブートローダーが起動し、次に示すログが表示されます。
U-Boot 2018.03-at1 installer+ (Apr 04 2018 - 21:17:22 +0900)
CPU: Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
In: serial
Out: serial
Err: serial
Net: FEC
Warning: FEC (eth0) using random MAC address - 5a:fd:55:1c:bb:91
=>
次のように"boot"コマンドを実行するとインストールが始まり、自動的にeMMCが書き換えられます。
=> boot
3345800 bytes read in 204 ms (15.6 MiB/s)
23185 bytes read in 53 ms (426.8 KiB/s)
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-4.14-at1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3345736 Bytes = 3.2 MiB
Load Address: 82000000
Entry Point: 82000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Loading Kernel Image ... OK
Loading Device Tree to 9eeff000, end 9ef07a90 ... OK
Starting kernel ...
: (省略)
*+*+* Install Start!! *+*+*
以下のようにメッセージが表示されるとインストール完了です。電源を切断してください。
*+*+* Install Completed!! *+*+*
11.1.3. LED点灯パターンによるインストールの進捗表示
LED点灯パターンによって、インストールの進捗状況を確認することができます。
インストールの進捗とLED点灯パターンの関係を次に示します。
表11.2 インストールの進捗とLED点灯パターン
進捗 | ユーザーLED赤 | ユーザーLED緑 | ユーザーLED黄 |
---|
実行中 | 消灯 | 点滅 | 消灯 |
正常終了 | 点灯 | 点灯 | 点灯 |
異常終了 | 点滅 | 消灯 | 消灯 |
11.2. 特定のイメージファイルだけを書き換える
Armadillo-640が起動した状態であれば、特定のイメージファイルだけを書き換えることができます。
イメージファイルと書き込み先の対応を次に示します。
表11.3 イメージファイルと書き込み先の対応
名称 | ファイル名 | ストレージ | デバイスファイル |
---|
ブートローダーイメージ | u-boot-a600-v2018.03-at[version].imx | eMMC
| /dev/mmcblk0 |
ブートローダーイメージ(UART3コンソール) | u-boot-a600-console-uart3-v2018.03-at[version].imx | /dev/mmcblk0 |
Linuxカーネルイメージ | uImage-a600-v4.14-at[version] | /dev/mmcblk0p2 |
Device Tree Blob | armadillo-640-v4.14-at[version].dtb | /dev/mmcblk0p2 |
WLAN/RTCオプションモジュール用 Device Tree Blob | armadillo-640_con9_awl13_rtc-v4.14-at[version].dtb | /dev/mmcblk0p2 |
BT/THオプションモジュール用 Device Tree Blob | armadillo-640_con9_thread-v4.14-at[version].dtb | /dev/mmcblk0p2 |
Debian GNU/Linuxルートファイルシステム | debian-stretch-armhf-a600-[version].tar.gz | /dev/mmcblk0p2 |
ブートローダーイメージの書き換え方法を次に示します。
[armadillo ~]# dd if=u-boot-a600-v2018.03-at[version].imx of=/dev/mmcblk0 bs=1k seek=1 conv=fsync
275+0 records in
275+0 records out
281600 bytes (282 kB, 275 KiB) copied, 0.0310393 s, 9.1 MB/s
|
MTDのブロックデバイスの先頭からブートローダーイメージを書き込みます。
BT/THオプションモジュールを利用する場合は、 u-boot-a600-v2018.03-at[version].imx の代わりに u-boot-a600-console-uart3-v2018.03-at[version].imx を使用してください。 |
| |
---|
製品アップデートでリリースされた最新のブートローダーイメージに書き換えを行った場合は図9.6「全ての環境変数をデフォルト値に戻す」を参照して環境変数をデフォルト値に戻してください。 新しくリリースされた最新のブートローダーイメージは、環境変数のデフォルト値が更新されることがあります。書き替え前のブートローダーによって生成された環境変数で、最新のブートローダーを動作させると不具合が起こる可能性があります。 |
11.2.2. Linuxカーネルイメージの書き換え
Linuxカーネルイメージの書き換え方法を次に示します。
[armadillo ~]# mount /dev/mmcblk0p2 /mnt
[armadillo ~]# cp uImage-a600-v4.14-at[version] /mnt/boot/uImage
[armadillo ~]# umount /mnt
|
eMMCの第2パーティションを/mnt/ディレクトリにマウントします。
|
|
Linuxカーネルイメージを/mnt/boot/ディレクトリにコピーします。
|
|
/mnt/ディレクトリにマウントしたeMMCの第2パーティションをアンマウントします。
|
DTBの書き換え方法を次に示します。
[armadillo ~]# mount /dev/mmcblk0p2 /mnt
[armadillo ~]# cp armadillo-640-v4.14-at[version].dtb /mnt/boot/a640.dtb
[armadillo ~]# umount /mnt
|
eMMCの第2パーティションを/mnt/ディレクトリにマウントします。
|
|
DTBをa640.dtbにリネームして/mnt/boot/ディレクトリにコピーします。
WLAN/RTCオプションモジュールを利用する場合は、 armadillo-640-v4.14-at[version].dtb の代わりに armadillo-640_con9_awl13_rtc-v4.14-at[version].dtb を使用してください。 BT/THオプションモジュールを利用する場合は、 armadillo-640-v4.14-at[version].dtb の代わりに armadillo-640_con9_thread-v4.14-at[version].dtb を使用してください。 |
|
/mnt/ディレクトリにマウントしたeMMCの第2パーティションをアンマウントします。
|
eMMC上のルートファイルシステムを書き換えるには、SDブートを行う必要があります。ブートディスクの作成方法やSDブートの実行方法ついては14章SDブートの活用を参照してください。
SDブートしたArmadilloで、eMMC上のルートファイルシステムを書き換える手順を次に示します。
Debian GNU/LinuxルートファイルシステムアーカイブをArmadilloにコピーします。例としてUSBメモリを利用する方法を記載します。
ATDEにあるDebian GNU/LinuxルートファイルシステムアーカイブをUSBメモリの第1パーティションにコピーするには次のコマンドを実行します。
[ATDE ~]$ sudo umount /dev/sdb1
[ATDE ~]$ sudo mount /dev/sdb1 /media
[ATDE ~]$ sudo cp debian-stretch-armhf-a600-[version].tar.gz /media
[ATDE ~]$ sudo umount /media
|
USBメモリ接続時に自動でUSBメモリの第1パーティションがマウントされることがあるため、一旦アンマウントします。
|
|
USBメモリの第1パーティションを/media/ディレクトリにマウントします。
|
|
ルートファイルシステムアーカイブを/media/ディレクトリ以下にコピーします。
|
|
/media/ディレクトリにマウントしたUSBメモリの第1パーティションをアンマウントします。
|
USBメモリの第1パーティションにあるDebian GNU/LinuxルートファイルシステムアーカイブをArmadilloにコピーするには次のコマンドを実行します。
[armadillo ~]# mount /dev/sda1 /media
[armadillo ~]# cp /media/debian-stretch-armhf-a600-[version].tar.gz .
[armadillo ~]# umount /media
|
USBメモリの第1パーティションを/media/ディレクトリにマウントします。
|
|
ルートファイルシステムアーカイブをカレントディレクトリ以下にコピーします。
|
|
/media/ディレクトリにマウントしたUSBメモリの第1パーティションをアンマウントします。
|
ルートファイルシステムをeMMCの第2パーティションに再構築します。
[armadillo ~]# mount -t ext4 /dev/mmcblk0p2 /mnt
[armadillo ~]# cd /mnt
[armadillo /mnt]# ls | grep -v -E 'boot|lost\+found' | xargs rm -rf
[armadillo /mnt]# cd -
[armadillo ~]# tar zxf debian-stretch-armhf-a600-[version].tar.gz -C /mnt
[armadillo ~]# umount /mnt
|
eMMCの第2パーティションを/mnt/ディレクトリにマウントします。
|
|
eMMCの第2パーティションのboot、lost+foundディレクトリ以外のファイル・ディレクトリを削除します。
|
|
ルートファイルシステムアーカイブを/mnt/ディレクトリに展開します。
|
|
/mnt/ディレクトリにマウントしたeMMCの第2パーティションをアンマウントします。
|