admin管理员组

文章数量:1516870

内核解压失败或【system halted】问题汇总

文章目录

  • 1、内核解压失败
  • 2、system halted 内核死机


1、内核解压失败

  • 出现这种情况,一般主要体现在以下几个方面:
  1. uboot 环境变量 bootcmd 参数配置不正确。举例:
    1.1 uboot引导kernel启动的参数应设置为:bootcmd=sf probe 0;sf read 0x42000000 0x60000 0x340000;bootm 0x42000000
    1.2 实际已设置为:bootcmd=sf probe 0;sf read 0x42000000 0x100000 0x400000;bootm 0x42000000
  2. 在 Flash 分区为内核分配的空间不足。举例:
    内核大小为:3320K,而Flash的kernel分区只分配了:3328K,当解压缩内核文件时可能空间不足而导致解压失败。
  3. 内核文件不小心烧写在 Flash 其他分区了,或内核文件根本就没有成功烧写到内核分区。

2、system halted 内核死机

  • 出现这种情况,无非就是内核文件存在而它的数据已被破坏了。主要体现在以下几个方面:
  1. 人为拷贝或重命名内核文件时不小心破坏了内核数据;
  2. 通过烧录工具烧写内核到 Flash 时,烧写范围超出了指定的分区大小。举例:
    内核正常烧写分区为:0x42000000 0x60000 0x340000,而实际却烧写了:0x42000000 0x100000 0x400000
  3. uboot源码里的 “uboot + 环境变量” 默认分区大小为 1MB,而我们在 Flash 里给 uboot 分配的空间为 384KB,紧接着就为 kernel 分配 4MB 的空间,当 uboot 运行起来后还是按照 1MB 的空间使用,这时就会把内核的数据破坏了导致内核死机。举例:
    bootargs=mtdparts=hi_sfc:384K(boot),4M(kernel)


本文标签: 内核解压失败或system halted问题汇总