# 系统升级 A0 项目 Linux 系统支持在线升级,采用 A/B 分区交替更新策略,系统启动时会根据标志决定从那个分区启动。下面主要介绍与系统升级相关的几个命令的使用方法。 ## update_ack update_ack 升级信息放在 eeprom 上。 ```bash [root@asing]:~#:update_ack -h update_ack tool (v0.0.1) usage: update_ack [-a <0 | 1>] <-u|-l|-i|-f> [-w file] :show version, if area omitted, show current area update_ack -g :show current area 显示当前分区情况 update_ack -r :switch area 切换分区 update_ack -c :cancel switch area 取消切换分区 update_ack -s -a <0 | 1 | 2> :set current area, 0:a, 1:b, 2:nfs 设置运行分区 1 2 或者nfs方式 update_ack -b :ack boot status 上电完成后清计数器和分区切换标志(上电完成后自动运行) ``` 显示目前运行的版本信息 ```bash [root@asing]:~#:update_ack -f HAL ver:V10006 FPGA ver:V1.1.1.00004 BOOT ver:UAG078-V03.00.01.00 KERNEL ver:KAG078-V00.01.00.00 ROOTFS ver:AG078-V03.00.01.00.00.00 ``` 查看当前运行分区情况 ```bash [root@asing]:~#:update_ack -g run_part:0x2 bak_part:0x2 run_cnt:0x0 bak_cnt:0x0 16 bak area is 1 如果分区切换或者升级,会切换到1 分区 run area is 2 当前分区是2 ``` 分区切换 ```bash update_ack -r ``` 取消分区切换 ```bash update_ack -c ``` 指定分区运行:(分区A 分区B NFS 方式) ```bash update_ack -s -a <0 | 1 | 2> ``` 上电完成后也或把版本信息打印到 /tmp/osmodules_version ```bash HAL ver: V10006 FPGA ver: V1.1.1.00004 BOOT ver: UAG078-V03.00.01.00 KERNEL ver: KAG078-V00.01.00.00 ROOTFS ver: AG078-V03.00.01.00.00.00 ``` 上电完成后也或把分区信息打印到 /tmp/update_version ```bash [root@asing]:~#:cat /tmp/update_version run_part:0x2 bak_part:0x2 run_cnt:0x0 bak_cnt:0x0 16 bak area is 1 run area is 2 ``` ## ImageUpgrade 镜像文件升级命令 ```bash [root@asing]:~#:ImageUpgrade -h Usage: /usr/sbin/ImageUpgrade /usr/sbin/ImageUpgrade -a <0|1> -t Options: -a upgrade the specific area <0 | 1> -t upgrade the specific firmware -c compare <0 | 1> -h / --help display this help ``` 实例1:不校准 ```bash ImageUpgrade update.IMG ``` 实例2:不校准 ```bash ImageUpgrade -c 0 update.IMG ``` 实例3:校准 ```bash ImageUpgrade -c 1 update.IMG ``` 上电版本信息打印见附件 ## eeprom-tools eeprom-tools 命令使用 ```bash [root@asing]:~#:eeprom-tools -h Usage: eeprom-tools -t operation [rwh?] -t operation -r: Read Info From EEPROM.Format: eeprom-tools -t operation -r -t operation -w: Write Info to EEPROM.Format: eeprom-tools -t operation -w XXXXXXXXXXXX -t operation(mac,sn,pwr1,pwr2,fo,uboot_ver,btype,hw,gps,bootm,upgrade,rx1,rx2,desc,vendor,issue,clei,bom,module,exmodule,dfre_min,dfre_max,ufre_min,ufre_max,hwcap,bandmask,maxpower,oscfreq,platform,freqlist,hwmask,mac1) -h(?): Help information [root@asing]:~#: ``` 实例1:读取mac地址 ```bash eeprom-tools -t mac -r ``` 实例2:修改mac地址 ```bash eeprom-tools -t mac -w 000A3555AA6D ```