关于Openwrt系统使用sysupgrade与mtd升级固件的简介

一、上传固件到/tmp目录,由于/tmp属于内存空间,存储空间的大,而且快。

1、使用 Windows 上的 TFTP 发送文件:

        C:\tmp> tftp -i 192.168.1.1 put code.bin

2、使用 Linux 上的 TFTP 发送文件:

        tftp -m binary 192.168.1.1 69

3、使用SSH上传文件方法:

        scp /tmp/uboot-fritz7530.bin root@192.168.1.1:/tmp/

        scp /tmp/avm_fritzbox-7530-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/

4、使用FTP上传文件方法:

二、升级固件。

1、采用sysupgrade -n 当中的 “-n” 告诉 sysupgrade 命令升级后不要保留配置文件。

        sysupgrade -n openwrt-ar71xx-wrt160nl-squashfs.bin

sysupgrade 详解
用法:
sysupgrade [...]
sysupgrade [-q] [-i]

升级选项:
-d 重启前等待 delay 秒
-f 从 .tar.gz (文件或链接) 中恢复配置文件
-i 交互模式
-c 保留 /etc 中所有修改过的文件
-n 重刷固件时不保留配置文件
-T | --test 校验固件 config .tar.gz,但不真正烧写
-F | --force 即使固件校验失败也强制烧写
-q 较少的输出信息
-v 详细的输出信息
-h 显示帮助信息
备份选项:
-b | --create-backup
把sysupgrade.conf 里描述的文件打包成.tar.gz 作为备份,不做烧写动作
-r | --restore-backup
从-b 命令创建的 .tar.gz 文件里恢复配置,不做烧写动作
-l | --list-backup
列出 -b 命令将备份的文件列表,但不创建备份文件
举例
更新openwrt.bin固件
        
sysupgrade openwrt.bin

强制更新openwrt.bin固件
sysupgrade会检查支持板子的固件头信息,如果一个model没有在sysupgrade的支持列表里,使用-F来忽略检查失败,强制烧写。
       
 sysupgrade -F openwrt.bin

更新后不保存之前的配置
sysupgrade烧写时默认会备份配置文件,在烧写后把配置文件覆盖到新系统中。-n参数指定不做这个动作。
       
 sysupgrade -n openwrt.bin

备份配置文件到/tmp/backup.tgz
        
sysupgrade -b /tmp/backup.tgz

恢复之前备份的/tmp/backup.tgz
        
sysupgrade -r /tmp/backup.tgz

列出会被备份的文件
        
sysupgrade -l
列出的文件会在-b备份时或系统升级时被保存。

2、采用mtd命令升级

        mtd -r write /tmp/openwrt-ar71xx-wrt160nl-squashfs.bin firmware

        mtd write /tmp/uboot-fritz7530.bin uboot0

        mtd write /tmp/uboot-fritz7530.bin uboot1

3、采用ubirmvol命令升级 

        Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs.

        ubirmvol /dev/ubi0 --name=avm_filesys_0

        ubirmvol /dev/ubi0 --name=avm_filesys_1

4、factory多了一些验证的东西,用于在原厂固件的基础上进行升级。
        普通家用路由一般不是openwrt固件,如果要将家用路由升级为openwrt固件,就可以用factory刷到路由上。sysupgrade是在openwrt路由基础上升级固件,无论你是原厂固件或者本身就是openwrt固件,要升级到openwrt,factory都适用,但是sysupgrade只能用在升级,TTL救砖的时候就不能用sysupgrade。sysupgrade不包含数据分区,factory带,factory预留原厂分区,sysupgrade只包含openwrt分区。
        有一个公式:sysupgrade.bin+空闲空间+系统的配置空间=factory.bin的大小
在openwrt wiki中有专门描述sysupgrade:
sysupgrade替换linux内核和squash文件系统,擦除整个jffs2部分。能保留配置文件,但不能保留二进制安装文件。

参考:

https://openwrt.org/toh/avm/avm_fritz_box_7530

https://openwrt.org/zh/toh/linksys/wrt160nl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值