ブログ

Armadillo-840/810でSDブートするとカーネルパニックして起動できない

at_takuya.sasaki
2015年11月30日 1時41分

意外に原因に気が付くまで時間がかかった事例をご紹介します。 Armadillo-840/810でSDブートをしているときに、以下のようにカーネルパニックを起こして起動できないことがありました。

mmcblk0: mmc0:e624 SU08G 7.40 GiB (ro)
 mmcblk0: p1 p2
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
Please append a correct "root=" boot option; here are the available partitions:
1f00             256 mtdblock0  (driver?)
1f01             256 mtdblock1  (driver?)
1f02             256 mtdblock2  (driver?)
1f03            4096 mtdblock3  (driver?)
1f04            4096 mtdblock4  (driver?)
1f05          122112 mtdblock5  (driver?)
b300         7761920 mmcblk0  driver: mmcblk
  b301          131072 mmcblk0p1 00000000-0000-0000-0000-000000000000
  b302         3799040 mmcblk0p2 00000000-0000-0000-0000-000000000000
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
Backtrace:
[<80011108>] (dump_backtrace+0x0/0x10c) from [<803f1508>] (dump_stack+0x18/0x1c)
 r6:00008000 r5:93935000 r4:93935000 r3:00000001
[<803f14f0>] (dump_stack+0x0/0x1c) from [<803f17fc>] (panic+0x84/0x1c4)
[<803f1778>] (panic+0x0/0x1c4) from [<8052fdbc>] (mount_block_root+0x240/0x288)
 r3:8056ff40 r2:93837e38 r1:93837f38 r0:804bfd32
 r7:8054ebf0
[<8052fb7c>] (mount_block_root+0x0/0x288) from [<8052ff44>] (mount_root+0x58/0x68)
[<8052feec>] (mount_root+0x0/0x68) from [<805300bc>] (prepare_namespace+0x168/0x1bc)
 r5:8054ec01 r4:80590ba0
[<8052ff54>] (prepare_namespace+0x0/0x1bc) from [<8052f9e4>] (kernel_init+0x1c4/0x204)
 r5:8054ebe8 r4:00000007
[<8052f820>] (kernel_init+0x0/0x204) from [<80020e88>] (do_exit+0x0/0x75c)
rebooted by watchdog timedout.

原因は単純で、SDカードの横にある物理的な[書き込み禁止のロック]が有効になっているためでした…
microSD用のアダプタなどは、結構ロックがゆるくなってしまい、SDスロットに差すときに、意図せずにロックが有効になることがあるので注意しましょう。。