前些天为Linksys EA8500 刷机因为对 U-Boot 不了解导致刷机多次失败,现将刷机过程中了解的内容总结一下。
常用命令:
printenv #查看所有环境变量 setenv #设置或清除环境变量 saveenv #保存环境变量
LinkSys EA8500 环境变量如下:
(IPQ) # printenv
#副启动分区引导位置 altkern=3780000 auto_recovery=yes
#TTL 传输波特率 baudrate=115200
#当前引导分区号 boot_part=2 boot_part_ready=3 boot_ver=1.0.12 bootargs=console=ttyHSL1,115200n8 bootcmd=bootipq bootdelay=2 ethact=eth0
#机器Mac地址 ethaddr=00:06:3b:01:41:00
#主启动分区写入命令 flashimg=tftp $loadaddr $image;nand erase $prikern $imgsize;nand write $loadaddr $prikern $filesize
#副启动分区写入命令 flashimg2=tftp $loadaddr $image;nand erase $altkern $imgsize;nand write $loadaddr $altkern $filesize image=wraith.bin imgsize=2800000
#本机(路由器)IP ipaddr=192.168.1.1
# 写入固件的临时起始位置; loadaddr=42000000 machid=1260 netmask=255.255.255.0
#主启动分区启动参数 partbootargs=console=ttyHSL1,115200n8 init=/sbin/init rootfstype=squashfs root=31:14 #副启动分区启动参数 partbootargs2=console=ttyHSL1,115200n8 init=/sbin/init rootfstype=squashfs root=31:16
#主启动分区引导位置 prikern=f80000
#tftp 文件服务器位置 serverip=192.168.1.2 stderr=serial stdin=serial stdout=serial Environment size: 804/262140 bytes
刷机核心命令及解释
# 将刷机固件写入本地存储
tftp $loadaddr $image;
$loadaddr - tftp 传输的固件放置位置
$image - 拉取的固件文件名
# 清除主分区空间 nand erase $prikern $imgsize;
$prikern - 主启动分区的引导地址、起始地址
$imgsize - 上传固件的大小,字节数
# 将固件写入主引导分区 nand write $loadaddr $prikern $filesize
$loadaddr - tftp 传输的固件放置位置
$prikern - 主启动分区的引导地址、起始地址
$filesize - 上传固件的大小,字节数 与 $imgsize 一致;