残念ながら、Linuxが起動しないと、 /etc/config/rc.local
を編集するのは難しいです。そこで、Hermit を使って /etc/config
のデーターを消してしまう方法を紹介します。/etc/config
は、フラッシュメモリの「configリージョン」に保存されています。configリージョンにデーターがない場合、次回起動時に flatfsd
が /etc/default
から/etc/config
を再構築してくれます。
以下では、「Hermit コマンド」と 「Hermitプロンプト」の2つの方法を紹介します。どちらの方法でも、Armadillo は保守モードで起動してください。
ATDE や Linux など、hermit コマンドが使える環境から
hermit
コマンドが使える環境であれば、下記のコマンドで config リージョンを消すことができます。
[PC ~]$ hermit erase -r config --port /dev/ttyUSB0
使用するシリアルポートは、環境に合わせて置き換えてください。
Windows や OS X など hermit コマンドが使えない環境から
hermit
コマンドが使えない環境では、シリアル通信ソフトウェアを使います。hermit プロンプトで erase コマンドを実行することで、フラッシュメモリのどこでも消すことが可能です。ただし、erase コマンドは、リージョン名を受け付けません。フラッシュメモリのアドレスだけを受け付けます。そこで、まずは config リージョンのアドレスを memmap
コマンドで調べます。
hermit> memmap
0x04000000:0x0bffffff FLA all bf:8K bl:4x32K/l,1023x128K/l
0x04000000:0x0403ffff FLA bootloader bf:8K bl:4x32K/l,1x128K/l
0x04040000:0x0407ffff FLA config bf:8K bl:2x128K
0x04080000:0x040bffff FLA license bf:8K bl:2x128K/l
0x040c0000:0x044bffff FLA firmware bf:8K bl:32x128K/l
0x044c0000:0x048bffff FLA kernel bf:8K bl:32x128K
0x048c0000:0x0bffffff FLA userland bf:8K bl:954x128K
0x40000000:0x5fffffff RAM dram-1
Armadillo-840の場合、config は、 0x04040000
にあることが分りました。また、bl:2x128K
から、「128KBのブロックが2つある」と分ります。そこで以下のように erase コマンドを実行し両方のブロックを消します。
hermit> erase 0x04040000
hermit> erase 0x04060000
これで、configリージョンが消されました。アドレスを間違うと Linux の領域なども簡単に消せてしまいます。十分注意してください。
参考
configリージョンがフラッシュメモリのどこにあるかは、各製品のマニュアルにも記載されています。
製品 | アドレス |
---|---|
Armadillo-IoT | 0xa1f00000 |
Armadillo-Box WS1 | 0xa1f00000 |
Armadillo-840 | 0x04040000 |
Armadillo-810 | 0x00040000 |
Armadillo-460 | 0xa1fe0000 |
Armadillo-440 | 0xa1fe0000 |
Armadillo-420 (linux-3.14-at) | 0xa0f00000 |
Armadillo-420 (linux-2.6.26-at) | 0xa0fe0000 |
Armadillo-410 | 0xa1fe0000 |