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後系統掛載成功。
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
默認環境變量如下:
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)