内蔵Flashで起動するかSDカードで起動するか

Armadillo-IoTは、デフォルトでは内蔵Flashで起動しますが、SDカードにOS等を入れて、そのシステムで起動/作業することもできます。

そうすると、データを壊してしまったり、パスワードを忘れたりして起動できなくなってしまっても、開発環境でSDカードを書き直すだけで復帰できるので安心です。

但し、本番(現場、特に屋外等の厳しい環境)では、内蔵Flashを使うことをお勧めします。
本番もSDカードでも良いのでは、と考えてしまいますが、厳しい環境や長期間利用を考えた場合は、SDスロットの接触端子で繋がってるSDカードよりも、半田付けされている内蔵Flashの方が良いのです。

SDカードの中身は消去されるので、新品か、消去して構わないというSDカードを用意します。

そして、開発環境である仮想マシン(ATDE)かLinux PCで、SDカードをフォーマットし、OSその他のファイルを書き込みます。
そのあたりの手順はマニュアルを参照してください。

そうして出来上がったSDカードを、Armadillo-IoTのSDスロットに挿入し、JP1をショートすると、SDで起動し、書き込みもSDに行われます。

JP1をショートするためのジャンパソケットは開発セットに付属しています。
(素手で抜き差しできるよう、摘みの付いてる、ちょっと良いやつです。
普通のジャンパソケットは摘みとかないので、ラジオペンチやピンセットを使うので厄介なのです。)

SD起動時とFlash起動時の違い

さて、SDカードで起動しても、一見したところSDカードで起動したのかFlashで起動したのか見分けがつきません。

もちろん、ファイルやリストを見ればすぐわかりますが、もうちょっと詳しく見てみましょう。

起動時のLOG(シリアルで流れてくるメッセージ)を見ると、2行目と13行目で違いが見て取れます。

内蔵Flashで起動した場合は

Trying to boot from SPI
Boot Source: QSPI Flash

挿入したSDで起動した場合は

Trying to boot from MMC1
Boot Source: SD

 

また、デバイス名が異なります。

Flashの場合は mmc1(/dev/mmcblk2p1~3)

SDの場合は mmc0(/dev/mmcblk0p1~2)

 

rootの物理的な位置も異なります。
Flashの場合は

Kernel command line: console=ttymxc4,115200 root=/dev/mmcblk2p2 rootwait rw

SDの場合は

Kernel command line: console=ttymxc4,115200 root=/dev/mmcblk0p2 rootwait rw

 

SDで起動した後、/dev/mmcblk2p1~3にアクセスすると、Flashのデータにアクセスできてしまうので、間違ってそちらを書き換えたりしないように注意しましょう。

 

忘れてはならないこと

作成したSDで起動して、最初に行うのはパスワードの変更です。

Flash起動時にパスワードを変更してあっても、それはFlashにしか反映されていません。

パスワード変更前にネットにつなぐとリスクが高まるため、最初はLANケーブルはつながず、シリアル(USBアダプタ)接続でパスワード設定を行いましょう。

ここでも、忘れずに2つのユーザ名に対して、パスワード設定を行います。

その後、SIMの設定等も行います。

SDカードを作り直した後に行うこれらの手順は、メモしておいた方が良いですね。

そうすれば、いざというときに慌てずに済みます。

そういったトラブルは、油断した時に訪れるので。
いつも。
そういった準備を怠って、面倒な復旧作業を行うときは必ず思うものです。
「念のため準備しておけば、こんなに苦労せずに済んだのに…」と。