Kernel panic - not syncing: compression method gzip not configured

[    0.000000] Linux version 4.4.94 (hi@ubuntu) (gcc version 7.2.0 (Ingenic Linux-Release5.1.1.sr02-Default(xburst2(fp64)+glibc2.29) 2024.01-10 09:42:17) ) #8 SMP PREEMPT Mon Dec 16 23:59:37 CST 2024
[    0.000000] CPU0 RESET ERROR PC:800BE280
[    0.000000] [<800be280>] kmalloc_slab+0x74/0xc4
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00132100 (Ingenic XBurst@II)
[    0.000000] FPU revision is: 00f32100
[    0.000000] MIPS: machine is ingenic,shark
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 005a4000 @ 00010000 (usable)
[    0.000000]  memory: 0003c000 @ 005b4000 (usable after init)
[    0.108811] Kernel panic - not syncing: compression method gzip not configured
[    0.116078] Rebooting in 10 seconds..

君正的编译器和sigmastar 的uclibc编译器有冲突, 不能同时设置到PATH里,clean后重新编译

### 原因分析 `Kernel panic - not syncing: No working init found` 错误通常发生在 Linux 内核无法找到或执行 `init` 程序时。这可能是由多种原因引起的,包括根文件系统损坏、内核配置错误、设备树配置不当等。 1. **根文件系统问题**: - 根文件系统的目录结构不完整,特别是 `/sbin/init` 或 `/etc/init` 文件缺失或不可执行。 - 文件系统的挂载点配置错误,导致内核无法正确访问根文件系统 [^3]。 2. **内核配置问题**: - 缺少必要的文件系统支持,例如 `devfs` 或 `tmpfs`。 - 没有启用调试选项,如 `Debug devfs`,这可能导致某些情况下无法挂载文件系统 [^4]。 3. **启动参数配置错误**: - 启动参数中没有指定正确的 `init=` 选项,导致内核无法找到合适的初始化程序 [^1]。 ### 解决方案 #### 1. 检查根文件系统 确保根文件系统的目录结构完整,并且包含必要的可执行文件。例如,检查 `/sbin/init` 是否存在并且具有可执行权限。 ```bash ls -l /path/to/rootfs/sbin/init ``` 如果文件不存在或权限不正确,请重新生成根文件系统或手动添加缺失的文件。 #### 2. 配置内核选项 确保在内核配置中启用了必要的文件系统支持。可以通过 `make menuconfig` 进入配置界面并检查以下选项: - File systems -> Pseudo filesystems: - [*] /proc file system support - [*] /dev file system support (OBSOLETE) - [*] Automatically mount at boot - [*] Debug devfs - [*] Virtual memory file system support (former shm fs) 重新编译和安装内核后,再次尝试启动。 #### 3. 修改启动参数 在 U-Boot 或其他引导加载程序中修改启动参数,明确指定 `init=` 参数。例如: ```bash setenv bootargs 'console=ttyPS0,115200 root=/dev/nfs nfsroot=192.168.1.15:/path/to/rootfs ip=192.168.1.8::192.168.1.1:255.255.255.0::eth0:off init=/sbin/init' ``` 保存环境变量并重启设备。 #### 4. 使用 NFS 挂载根文件系统 如果使用 NFS 挂载根文件系统,请确保服务器端配置正确,并且客户端能够成功连接到 NFS 服务器。检查网络配置是否正确,并确认 NFS 共享路径与客户端请求的路径一致。 #### 5. 调试信息 启用更多的调试信息可以帮助定位问题。在内核配置中启用 `CONFIG_DEBUG_KERNEL` 和 `CONFIG_DEBUG_INFO` 选项,以便获取详细的内核日志。 ### 示例代码:U-Boot 设置启动参数 ```bash # 设置内核启动参数 setenv bootargs 'console=ttyPS0,115200 root=/dev/nfs nfsroot=192.168.1.15:/path/to/rootfs ip=192.168.1.8::192.168.1.1:255.255.255.0::eth0:off init=/sbin/init' # 保存环境变量 saveenv ``` ### 总结 通过上述步骤,可以解决大多数由于根文件系统或内核配置问题导致的 `Kernel panic - not syncing: No working init found` 错误。确保所有必要的文件和配置都正确无误,并且启动参数设置合理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值