内蔵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カードを作り直した後に行うこれらの手順は、メモしておいた方が良いですね。
そうすれば、いざというときに慌てずに済みます。
そういったトラブルは、油断した時に訪れるので。
いつも。
そういった準備を怠って、面倒な復旧作業を行うときは必ず思うものです。
「念のため準備しておけば、こんなに苦労せずに済んだのに…」と。