我想引导我的imx53-qsb板使用不是一个正常的rootfs,而是一个静态地编译的hello_world.c文件,换句话说,一个hello_world_static.out。为了实现这一点,我编写了一个hello_world.c文件,对其进行静态交叉编译,并将其放在sd卡的mmcblk0p1 ext4分区中。我把我的uImage和我的u-boot。Imx 中的mmcblk0。启动系统后,我得到了内核panic:
Kernel panic - not syncing: No init found。尝试将init= option传递给内核。参考Linux Documentation/init.txt获取指导。
有解决方案吗?由于
您应该为内核cmdline(从u-boot)提供init=
参数。例如,如果您的二进制文件名是init
,并且您已经将其放入/sbin
目录(在您的rootfs分区上),那么您应该将init=/sbin/init
添加到u-boot中的内核cmdline(在bootargs
变量中)。
例如,您可以这样做(在u-boot shell中,在运行bootm
或booti
命令之前):
setenv bootargs root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init
另外,检查您是否真的在mmcblk0p1
上有您的rootfs。通常mmcblk0p1
是FAT32分区,其中包含要复制到RAM的引导加载程序文件和映像。Rootfs通常位于mmcblk0p2
(并格式化为ext4)。
详细信息请参见:
[1] Documentation/kernel-parameters.txt(查找init=
参数)
[2] u-boot README文件(查找Boot Linux:
行)
[3]文档/init.txt