U-Boot环境变量错误导致Linux系统挂载根文件系统失败

u-boot环境变量错误导致:Kernel panic: No init found. Try passing init=option to kernel
由于之前需要增大内核分区而修改环境变量,但是修改后的环境变量适应于大于2M的内核运行,当运行小于2M的内核时,环境变量指定的地址和内核相对应的地址内容不匹配导致根文件系统挂载失败,最终使用nor flash中的u-boot启动,用nand erase params指令擦除nand flash中保存环境变量的区域,迫使系统应用新烧写u-boot的默认环境变量之后问题解决,从新烧写u-boot、uImage、rootfs后系统挂载成功。

默认环境变量如下:

OpenJTAG> print
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
bootdelay=2
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.7.17
serverip=192.168.7.11
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
partition=nand0,0
mtddevnum=0
mtddevname=bootloader


Environment size: 443/131068 bytes
OpenJTAG> mtd


device nand0 , # parts = 4
 #: name                        size            offset          mask_flags
 0: bootloader          0x00040000      0x00000000      0
 1: params              0x00020000      0x00040000      0
 2: kernel              0x00200000      0x00060000      0
 3: root                0x0fda0000      0x00260000      0


active partition: nand0,0 - (bootloader) 0x00040000 @ 0x00000000


defaults:
mtdids  : nand0=nandflash0
mtdparts: mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134255.htm