内核恐慌 - 未同步:请求的init / linuxrc失败(错误-2)

时间:2018-03-19 17:57:59

标签: linux-kernel embedded-linux yocto u-boot imx6

我使用YOCTO为KARO TX6S-8035目标构建嵌入式Linux。我用 Mfgtools-TX6-2018-01工具将图像闪存到板中但是当我启动设备时我有以下错误:内核恐慌 - 未同步:请求的init / linuxrc失败(错误-2)。 我该如何解决这个问题?

以下是来自U-BOOT的printenv的结果: printenv

And the serial output from the board: serial output

2 个答案:

答案 0 :(得分:1)

内核正在寻找init程序而无法找到它。很可能你的形象是腐败的。更多信息:What is linuxrc purpose and is it needed in the rootfs?

我会尝试:

  1. 重新刷新图片
  2. 检查图像以确保linuxrc存在
  3. 将问题发布到meta-freescale mailing list
  4. 另外,我不知道你正在使用什么设置,但我会看FSL Community BSP。其他人很有可能为该平台建设。

答案 1 :(得分:0)

内核崩溃 - 未同步:请求的 init /linuxrc 失败(错误 -2)

就我而言,我使用 busybox 创建了 initrd。 /linuxrc 执行错误,因为找不到动态库。

挂载initrd后执行下面的脚本

mkdir -p $WORKSPACE/initrd
mount $WORKSPACE/ramdisk.img $WORKSPACE/initrd -t ext2 -o loop=/dev/loop0
pushd $WORKSPACE/initrd/
cp -rf /opt/buildtools/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/lib ./
cp -rf /opt/buildtools/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/lib64 ./
aarch64-none-linux-gnu-strip $WORKSPACE/initrd/lib/*
aarch64-none-linux-gnu-strip $WORKSPACE/initrd/lib64/*
aarch64-none-linux-gnu-strip $WORKSPACE/initrd/bin/busybox
popd

umount $WORKSPACE/initrd
gzip -9 $WORKSPACE/ramdisk.img
  • linuxrc:ELF 64 位 LSB 可执行文件,ARM aarch64,版本 1 (SYSV),动态链接,解释器 /lib/ld-linux-aarch64.so.1,用于 GNU/Linux 3.7 .0,剥离

修复选项 1:

将库复制到 initrd。

make -j16 -C $WORKSPACE/$BUSYBOX ARCH="arm64" LDFLAGS="--static" CROSS_COMPILE="aarch64-none-linux-gnu-" install

修复选项 2:

静态构建busybox。

collections.defaultdict
  • busybox-1.32.1/_install/bin/busybox:ELF 64 位 LSB 可执行文件,ARM aarch64,版本 1 (GNU/Linux),静态链接,适用于 GNU/Linux 3.7.0 , 剥离