FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

「Zedroid - Android (5.0 and later) on Zedboard」をやってみる(8. Kernel Panic)

前回からいろいろブートファイルを作り直して、どうにかu-bootが立ち上がるようになった。

そして zedroid_device_xilinx_zedboard-kernel を少し変更する必要があったが、U-bootでの動作は始まったようだ。

  • zynq-zed-adv7511.dtsi
diff --git a/arch/arm/boot/dts/zynq-zed-adv7511.dtsi b/arch/arm/boot/dts/zynq-zed-adv7511.dtsi
index 1209b8c..4afed32 100644
--- a/arch/arm/boot/dts/zynq-zed-adv7511.dtsi
+++ b/arch/arm/boot/dts/zynq-zed-adv7511.dtsi
@@ -106,6 +106,10 @@
                        audio-codec = <&adau1761>;
                        cpu-dai = <&axi_i2s_0>;
                };
+               efuse@f800d000 {
+            compatible = "xlnx,zynq-efuse";
+                   reg = <0xf800d000 0x20>;
+               };
        };

        leds {

しかしAndroid(というかLinux)が起動するまでに以下のようなエラーメッセージを吐いてカーネルパニックになっている。

通常通りにブートしても、Linuxを起動するときの最初のプロセスにあたるinitが存在せず、カーネルパニックになってしまっていると思われる。

initは、/dev/sdb1 (SDカードのパーティション0)に格納したuramdisk.image.gzに入っているはずだ。これはLinux起動時に展開されるはずなので、 以下のようにしてU-bootのコマンドラインで指定すればよいと思う。

setenv bootargs console=ttyPS0,115200 root=/dev/ram rw earlyprintk init=/init
boot   # 起動

しかし今度は以下のエラーメッセージで止まってしまう。良く分からないなあ。。。

No filesystem could mount root, tried:  ext3 ext2 ext4 vfat msdos
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.6.0 #1

うーん、これは何だろう?

f:id:msyksphinz:20170512000615p:plain