networkyang 2016-08-14
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)
5.环境变量配置在linux系统下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里面方法一:将文件移动到属于环境变量目录中sudo mv chromedriver /user/bin
写脚本涉及到数据库的配置信息,然后上面要求这种关键信息不能体现到脚本中,哦,那怎么办,那我去哪里读取数据库信息呢?从运行脚本的机器的环境变量里读取数据库信息,这样脚本中全是代码,就没有明文配置信息了。