我一直致力于为 qemu 构建 Linux 内核。我一直在关注教程http://xecdesign.com/compiling-a-kernel/ 到目前为止,我已经能够引导内核直到 init 进程开始。但我收到以下错误:“内核恐慌 - 未同步:试图终止 init!”我尝试调试,发现在函数 kernel_init() 中执行 /sbin/init 会导致内核恐慌。
...
Freeing init memory: 120K
Kernel panic - not syncing: Attempted to kill init!
Backtrace:
[<c0017348>] (dump_backtrace+0x0/0x10c) from [<c02fb118>] (dump_stack+0x18/0x1c)
r6:cf815d60 r5:c03f179c r4:c0409738
[<c02fb100>] (dump_stack+0x0/0x1c) from [<c02fb25c>] (panic+0x64/0x188)
[<c02fb1f8>] (panic+0x0/0x188) from [<c0029d24>] (do_exit+0x564/0x61c)
r3:cf815d60 r2:cf81be54 r1:cf81be54 r0:c0376584
r7:cf81a000
[<c00297c0>] (do_exit+0x0/0x61c) from [<c002a03c>] (do_group_exit+0x44/0xa4)
r7:cf81a000
[<c0029ff8>] (do_group_exit+0x0/0xa4) from [<c0033e34>] (get_signal_to_deliver+0x13c/0x478)
r4:cf81a000
[<c0033cf8>] (get_signal_to_deliver+0x0/0x478) from [<c0016620>] (do_signal+0x6c/0x530)
[<c00165b4>] (do_signal+0x0/0x530) from [<c0017070>] (do_notify_resume+0x50/0x5c)
[<c0017020>] (do_notify_resume+0x0/0x5c) from [<c0014438>] (work_pending+0x24/0x28)
r4:ffffffff
Rebooting in 1 seconds..
我正在使用使用 buildroot 生成的自定义根文件系统。相同的 rootfs 可以与最初下载的“kernel-qemu”一起正常工作https://xecdesign.com/downloads/linux-qemu/kernel-qemu
有人可以帮我解决这个问题吗?如果需要更多信息,请告诉我。
答案1
我在这个的帮助下找到了修复方法线。我必须在内核中启用 CONFIG_AEABI。
答案2
挂载文件系统并键入以下命令(假设您挂载在名为 的目录中fs
):
cd fs/etc
mv ld.so.preload ld.so
cd ../..
umount fs
然后开始