Linux-linux kernel run_init_process() 启动/linuxrc 失败
linux 内核启动失败:
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 6144KiB [1 disk] into ram disk...
done.
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing init memory: 172K
ramdisk_execute_command=(null)
execute_command=/linuxrc
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[<c000e6a8>] (unwind_backtrace+0x0/0xf8) from [<c04c2ce0>] (panic+0x80/0x1e8)
[<c04c2ce0>] (panic+0x80/0x1e8) from [<c001cc90>] (do_exit+0x648/0x740)
[<c001cc90>] (do_exit+0x648/0x740) from [<c001cdd0>] (do_group_exit+0x48/0xb0)
[<c001cdd0>] (do_group_exit+0x48/0xb0) from [<c0027e30>] (get_signal_to_deliver+0x1e4/0x528)
[<c0027e30>] (get_signal_to_deliver+0x1e4/0x528) from [<c000b788>] (do_work_pending+0xcc/0x4e4)
[<c000b788>] (do_work_pending+0xcc/0x4e4) from [<c000911c>] (work_pending+0xc/0x20)
不知道什么原因?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题是编译器的默认体系结构。
arm-linux-gcc 4.3.3 默认的 -march=armv5t;而我的CPU是S3C2440是armv4t。
可执行文件可以用 arm-linux-readelf -A busybox 查看可执行文件的体系结构。
同时可以查看自己的u-boot vmlinux busybox libc等文件,这些需要全部是armv4t;
解决方法:在busybox中先make clean, 然后修改Makefile中的CFLAG,添加CFLAG+=-march=armv4t
ramdisk_execute_command=(null)
看起来像是没有找到ramdisk里面的初始化脚本,试着在GRUB命令行里用
init=/bin/bash
看看能不能启动