ブログ

Armadillo-X1, Armadillo-IoT G3/G3L: USBメモリで複数の機器に効率よく特定のLinuxカーネル、ルートファイルシステムを書きこむ方法

at_ito
2017年9月1日 18時30分

Armadilloを使用して複数台の製品を作る際には、各基板に対してソフトウェアを書きこむ必要があります。その際に書込み作業が発生するため、台数が多いと作業に時間がかかってしまう問題が発生します。

その問題をなるべく解消するために、USBメモリを使用してなるべく簡単にソフトウェアを書きこむための方法を紹介します。

1. 書込み用のUSBメモリを作成する

1.1. USBメモリにルートファイルシステムを構築する

以下のURLの通りにUSBメモリにルートファイルシステムを構築してください。

1.2. USBメモリのインストールディスクを作成

以下のURLを参考にUSBメモリのインストールディスクを作成してください。

2. Linuxカーネル、ユーザーランドを書き換える

Armadilloに前述の手順で作成したUSBメモリを接続し、保守モードにて起動してください。

U-Bootのプロンプトが表示されますので、以下のコマンドを実行し、USBメモリのルートファイルシステムで起動してください。

=> setenv mmcroot /dev/sda1 rootwait rw
=> boot

上記Linuxカーネルの起動が完了すると、「1.2. USBメモリのインストールディスクを作成」で作成したインストールスクリプトが自動的に実行され、Linuxカーネルとルートファイルシステムが更新されます。

Appendix. USBブートをTeraTermマクロを使って自動化

「2. Linuxカーネル、ユーザーランドを書き換える」でU-Bootのプロンプトでコマンド入力をする必要がありますが、TeraTermマクロを使用すると自動的にコマンド入力可能です。

参考として、複数台のLinuxカーネル、ルートファイルシステムの書き込みを行う場合のTeraTermマクロを以下に記載します。

while 1
    statusbox 'Armadillo-IoTを接続し電源を入れてください。' 'ステータス'
    wait '=> '
    sendln 'setenv mmcroot /dev/sda1 rootwait rw'
    wait '=> '
    sendln 'boot'
    statusbox 'Aramdillo起動中' 'ステータス'
    wait '/etc/rc.local'
    statusbox '書込み中' 'ステータス'
    wait 'reboot: System halted'
    statusbox '書込み終了' 'ステータス'
    messagebox '書込みが終了しました。' 'ステータス'
endwhile