2

我想启动我的 imx53-qsb 板,而不是使用普通的 rootfs,而是使用静态编译的hello_world.c文件,换句话说就是hello_world_static.out。为此,我编写了一个hello_world.c文件,对其进行静态交叉编译,然后将其放入我的 sd 卡的mmcblk0p1 ext4分区中。我将uImageu-boot.imx放在 mmcblk0 中。启动我的系统后,我遇到了内核恐慌

内核恐慌 - 未同步:未找到初始化。尝试将 init= 选项传递给内核。有关指导,请参阅 Linux 文档/init.txt。

有什么解决办法吗?谢谢

4

1 回答 1

1

您应该init=向内核命令行提供参数(来自 u-boot)。例如,如果您的二进制文件名是init并且您已将其放入/sbin目录(在您的 rootfs 分区上),您应该init=/sbin/init在 u-boot 中添加到您的内核 cmdline(在bootargs变量中)。

例如,您可以执行下一步(在 u-boot shell 中,在运行bootmbooti命令之前):

setenv bootargs root=/dev/mmcblk0p1 rw rootfstype=ext4 init=/sbin/init

另外,检查你是否真的有你的 rootfs mmcblk0p1。通常mmcblk0p1是 FAT32 分区,其中包含要复制到 RAM 的引导加载程序文件和图像。Rootfs 通常位于mmcblk0p2(并格式化为 ext4)。

详情见:

[1] Documentation/kernel-parameters.txt(查找init=参数)

[2] u-boot README 文件(找Boot Linux:行)

[3]文档/init.txt

于 2015-05-26T15:40:35.820 回答