openwrt-web-sysupgrade

10 篇文章 2 订阅
9 篇文章 1 订阅

//sysupgrade 命令详解

http://www.cnblogs.com/sammei/p/3973322.html


刚开始的时候,在openwrt的页面上升级,选择编好的固件以后,死活升不了。

提示:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform.


因为页面执行,没有打印信息,所以用WinSCP连到路由器上,把固件上传到路由器的/tmp目录下。

WinSCP用法详见百度。


然后在串口命令行上执行下面的命令.

因为网页上面升级,最后也是走到这个sysupgrade脚本这来。

sysupgrade在路径/sbin/sysupgrade

使用cat 可以查看脚本里面的内容。


执行sysupgrade openwrt.bin  时,出现下面的打印.

Sysupgrade is not yet supported on generic.
Image check 'platform_check_image' failed.


发现,原来是在check file的时候出问题了。

sysupgrage 升级固件的时候,会提取固件头的magic number来进行比对.


sysupgrage脚本中,有如下语句.

这会调用$sysupgrade_image_check函数去进行头部的 magic number检验.


for check in $sysupgrade_image_check; do
        ( eval "$check \"\$ARGV\"" ) || {
                if [ $FORCE -eq 1 ]; then
                        echo "Image check '$check' failed but --force given - will update anyway!"
                        break
                else
                        echo "Image check '$check' failed."
                        exit 1
                fi
        }
done

sysupgrade_image_check函数,定义在/lib/upgrade/platform.sh 

vi platform.sh 可以看到如下信息:

. /lib/ramips.sh


PART_NAME=firmware
RAMFS_COPY_DATA=/lib/ramips.sh


platform_check_image() {
        local board=$(ramips_board_name)
        local magic="$(get_magic_long "$1")"


        [ "$#" -gt 1 ] && return 1


        case "$board" in
        3g150b|\
        3g300m|\
        3g-6200n|\
        3g-6200nl|\


查到这的时候,就可以知道是这个函数返回失败了。

这个函数里面做的事情很简单,就是获取board name 和 magic number

然后可以加调试打印:

echo $board

echo $magic

把这两个值打印出来,

然后查看下面那一大串中是否有和它们配配的。

没有的话就添加吧。


我是因为修改了dts里面的machine的内容。所以它无法进行匹配,异致它无法升级的。


还有一种是因为factory.bin 这个固件里面包含了uboot头了。

也会提示上面的错误。

解决这个的办法就是把uboot头干掉。

可以使用如下命令:


dd if=openwrt-ramips-mt7620-miwifi-mini-squashfs-sysupgrade.bin bs=32 skip=1 of=openwrt.trx

hd openwrt-ramips-mt7620-miwifi-mini-squashfs-sysupgrade.trx | head 查看boot头


然后再进行烧写。就OK了。




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值