buildroot编译内核启动报错:Kernel panic - not syncing: No working init found问题解决

buildroot编译内核启动报错:

Kernel panic - not syncing: No working init found. Try passing init= option to kernel.

[   30.873178] Freeing unused kernel memory: 3928K
[   30.927451] Write protecting the kernel read-only data: 14336k
[   30.997419] Freeing unused kernel memory: 1028K
[   31.053095] Freeing unused kernel memory: 1364K
[   31.107381] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[   31.264608] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.283 #3
[   31.336471] Hardware name: 360WS Default string/RT5140, BIOS 360WS-LY236-5140-20180130 01/30/2018
[   31.442653]  0000000000000000 ffff880264287ec0 ffffffff818d7847 ffffffff818f2532
[   31.531568]  ffffffff81b943d8 ffff880264287f38 ffffffff818ca0dd 0000000000000008
[   31.620486]  ffff880264287f48 ffff880264287ee8 0000000000000000 ffff880263804000
[   31.709405] Call Trace:
[   31.738632]  [<ffffffff818d7847>] dump_stack+0x57/0x6d
[   31.800090]  [<ffffffff818f2532>] ? rest_init+0x79/0x79
[   31.862595]  [<ffffffff818ca0dd>] panic+0xbb/0x1ff
[   31.919897]  [<ffffffff8117d857>] ? putname+0x47/0x50
[   31.980317]  [<ffffffff818f2532>] ? rest_init+0x79/0x79
[   32.042822]  [<ffffffff818f2602>] kernel_init+0xd0/0xde
[   32.105323]  [<ffffffff818f7d15>] ret_from_fork+0x55/0x80
[   32.169904]  [<ffffffff818f2532>] ? rest_init+0x79/0x79
[   32.232438] Kernel Offset: disabled
[   32.274216] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.

问题原因:
文件系统下没有对应的init文件,内核启动找不到初始化入口,无法启动init进程:
在这里插入图片描述
解决办法:
1)方法一:制作init的软链接文件:

ln -s bin/busybox init

在这里插入图片描述
2)方法二:制作init启动脚本,修改/sbin/init软链接,内容如下:
在这里插入图片描述

ln -s -f bin/busybox sbin/init

另附:
内核启动报错“can’t open /dev/null…”

解决办法:

cd dev
mknod null c 1 3
mknod ttyS0 c 4 64
ln -s ttyS0 console

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误是一个Linux内核恐慌(kernel panic)错误,意味着Linux无法继续执行,并需要重新启动。在这种情况下,内核已经尝试杀死初始化进程(init),这是Linux系统启动的第一个进程。导致内核恐慌的原因可能是由于硬件故障、内存错误或驱动程序问题等多种原因引起的。在使用buildroot构建嵌入式Linux系统时,这种错误通常可能是由于不兼容的驱动程序或未正确配置系统而引起的。为了解决这种问题,首先需要重新启动系统,并尝试对系统进行诊断以确定错误的具体原因。可以通过检查系统日志和内存转储文件等手段来诊断内核恐慌错误。如果问题是由于不兼容的驱动程序引起的,需要更新驱动程序或更改构建设置以使用兼容的驱动程序。如果问题是由于配置错误引起的,需要重新检查系统配置以确保正确配置。另外,建议在构建Linux系统之前了解Linux内核的基础知识,以便更好地理解内核恐慌错误的特征和原因,并能够快速解决此类问题。 ### 回答2: Buildroot是一个用于构建嵌入式Linux系统的工具。当出现"kernel panic - not syncing: attempted to kill init!"时,意味着引导过程中发生了严重错误,导致系统无法继续运行。 最常见的原因是内核与硬件不兼容,这意味着内核无法正确识别或配置硬件设备。可能需要调整内核配置以支持特定硬件设备,或者使用更适合的内核版本。 另一种可能的原因是文件系统损坏或不正确挂载。这可能是由于文件系统镜像文件被损坏或不正确生成而引起的。解决方法是重新生成文件系统镜像或更换正确的文件系统镜像文件。 此外,在构建rootfs时如果不小心将一些错误的配置选项或文件添加到文件系统中,也可能导致kernel panic。需要审查构建rootfs时使用的配置选项和文件以确保它们是正确的。 最后,系统内存问题也可能导致此错误。确保系统具有足够的可用内存以运行所需的软件包和驱动程序。 综上所述,出现kernel panic - not syncing: attempted to kill init!时,最好的方法是仔细检查内核配置、文件系统镜像文件和rootfs中的配置选项和文件,并确保系统具有足够的可用内存以支持运行所需的软件包和驱动程序。 ### 回答3: buildroot是一个开源的嵌入式Linux构建工具,我们可以使用它来制作自定义嵌入式系统的镜像。在使用buildroot构建嵌入式系统的过程中,可能会出现一些问题,比如“kernel panic - not syncing: attempted to kill init!”这个错误。 这个错误通常是由于内核在尝试杀死init进程时发生的问题触发的。init进程是Linux系统中的第一个进程,是由内核启动的,它负责初始化系统并启动其他所有进程。如果init进程在启动或执行期间出现问题,整个系统将停止工作并且引发kernel panic。 当出现这种错误时,应该按照以下步骤来解决: 1. 检查构建脚本:检查buildroot构建脚本中的配置选项是否正确,确保所有必需的选项都被正确配置。 2. 查看系统日志:在出现此错误时,系统日志应该记录相关错误信息。查看系统日志以确定导致问题的原因。 3. 检查root文件系统:确保root文件系统已正确构建并已正确挂载。如果root文件系统中可能缺少文件或存在损坏的文件,则可能会引发该错误。 4. 更新内核:更新内核可以解决一些与内核相关的问题。使用buildroot提供的选项更新内核。 5. 检查硬件:该错误也可能由硬件问题引起。请检查硬件是否正常运行,例如RAM是否存在问题。 总之,出现kernel panic - not syncing: attempted to kill init!错误时,应该先检查构建脚本、系统日志、root文件系统、内核和硬件,以找出导致错误的原因并进行相应的修复。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值