用户工具

站点工具


liux:sigma核心板半自动化烧录

原因

  1. 烧录sigma核心板需一条一条复制命令,整个下来大概花费5分钟左右;
  2. 由于命令是一条一条的复制进去,如果中途出错就会造成烧录不成功或者无法进入后续界面;
  3. 长时间复制粘贴,烧录核心板的效率会慢慢降低

目的

简化烧录流程,节省烧录时间,减少人为干预造成的失误,确保烧录更加准确。

范围

Sigma核心板。

改进过程

  • 通过CRT录制整个烧录核心板的流程,保存脚本并修改(加入循环语句、简化语句);
  • 测试脚本,整个流程需要修改ID“echo 28000034330000001 > /opt/smp86xx/devid”这条语句;
  • 第一次重启之后,按原来的方法多次按0,直到出现“YAMON>”即可;
  • 改进之后烧录一块完整的核心板只需要一分钟左右,极大的节省了烧录时间,而且人为干预减少,出现错误的可能性降低。

原始命令

df
mount -t yaffs2 -o inband-tags /dev/mtdblock2 /root
cd /root
rm vmlinux.gz
cp /media/usb/disk1/vmlinux.gz /root/
cd /opt/
rm -rf *
cp /media/usb/disk1/smp86xx.tgz /opt/
gunzip smp86xx.tgz
tar xvf /opt/smp86xx.tar
下面输入ID号
echo 28000034330000001 > /opt/smp86xx/devid
reboot

重启后执行:

rm smp86xx.tar
reboot
重启后按“0”,进入
setxenv y.ipaddr “192.168.1.134”
setxenv y.subnetmask “255.255.255.0”
setxenv y.gateway “192.168.1.1”
net init
load -b tftp:192.168.1.66/phyblock0-0x20000padded.1018-E1-MTD 0xa7000000
cksum 0xa7000000 0x20000
nflash erase -p 0 0x20000 0
nflash write -p 0 0xa7000000 0x20000 0
nflash read -p 0 0xa7020000 0x20000 0
cksum 0xa7020000 0x20000
reboot
改进后的CRT脚本
#$language = “VBScript”
#$interface = “1.0”
crt.Screen.Synchronous = True
' This automatically generated script may need to be
' edited in order to work correctly.
Sub Main
do while true
crt.Screen.WaitForString “tangox[/]# “
crt.Screen.Send “mount -t yaffs2 -o inband-tags /dev/mtdblock2 /root” & chr(13)
crt.Screen.WaitForString “tangox[/]# “
crt.Screen.Send “cd /root” & chr(13)
crt.Screen.WaitForString “tangox[root]# “
crt.Screen.Send “rm vmlinux.gz” & chr(13)
crt.Screen.WaitForString “tangox[root]# “
crt.Screen.Send “cp /media/usb/disk1/vmlinux.gz /root/” & chr(13)
crt.Screen.Send “cd /opt/” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “rm -rf *” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “cp /media/usb/disk1/smp86xx.tgz /opt/” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “gunzip smp86xx.tgz” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “tar xvf /opt/smp86xx.tar” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.WaitForString ”/opt/smp86xx/devid”
等待输入ID号
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “rm smp86xx.tar” & chr(13)
crt.Screen.WaitForString “tangox[opt]# “
crt.Screen.Send “reboot” & chr(13)
重启时立即按“0”待发现界面有停顿时之后快速跳动,停止按“0”
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “setxenv y.ipaddr ” & chr(34) & “192.168.1.77” & chr(34) & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “setxenv y.subnetmask ” & chr(34) & “255.255.255.0” & chr(34) & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “setxenv y.gateway ” & chr(34) & “192.168.1.1” & chr(34) & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “net init” & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “load -b tftp:
192.168.1.8/phyblock0-0x20000padded.1018-E1-MTD 0xa7000000” & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “cksum 0xa7000000 0x20000” & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “nflash erase -p 0 0x20000 0” & chr(13)
crt.Screen.WaitForString chr(13) & chr(10) & chr(13) & “YAMON> “
crt.Screen.Send “nflash write -p 0 0xa7000000 0x20000 0” & chr(13)
crt.Screen.WaitForString chr(13) & chr(10) & chr(13) & “YAMON> “
crt.Screen.Send “nflash read -p 0 0xa7020000 0x20000 0” & chr(13)
crt.Screen.WaitForString chr(13) & chr(10) & chr(13) & “YAMON> “
crt.Screen.Send “cksum 0xa7020000 0x20000” & chr(13)
crt.Screen.WaitForString “YAMON> “
crt.Screen.Send “reboot” & chr(13)
crt.Screen.WaitForString “iDste login: “
crt.Screen.Send chr(13)
crt.Screen.WaitForString “iDste login: “
crt.Screen.Send “root” & chr(13)
crt.Screen.WaitForString “Password: “
crt.Screen.Send “iDste1057Bc01” & chr(13)
crt.Screen.WaitForString “iDste[/]# “
crt.Screen.Send “ifconfig” & chr(13)
crt.Screen.WaitForString “iDste[/]# “
crt.Screen.Send “cat /opt/smp86xx/devid” & chr(13)
loop
End Sub

liux/sigma核心板半自动化烧录.txt · 最后更改: 2025/09/08 22:51 (外部编辑)