已经用不死uboot刷openwrt,现有一个升级固件 open

已经用不死uboot刷openwrt,现有一个升级固件 open,第1张

现在被我搞坏了,能不能直接用uboot把这个升级包刷ramips-mt7620a-hiwifi-hc5761-squashfs-sysupgrade2016-07-02 openwrt 编译完后用哪个固件 2016-01已经用不死uboot刷openwrt,现有一个升级固件 open

可以。

MCU有个bootloader代码烧进这个MCU里面,这个bootloder的其中之一的主要功能就是从flash的一个特定地址执,你要让你的可执行代码和bootloder的功能配合起来,就是将你的可执行代码存到这个地址上面,你的可执行代码就是二进制文件,可以通过串口,can,以太网等进行发送接收就可以了。纯手打,如果是STM32详细的过程战舰有写,ST官方也有给出参考例程。

uboot的本质就是一个复杂点的裸机程序。 *** 作系统内核本身就是一个裸机程序,和uboot、和其他裸机程序并没有本质区别。

升级,启动软件。

在uboot的初始化工作完毕后,会启动内核,在启动内核后结束uboot程序。但是用户可以阻止uboot的结束,进入uboot的命令行模式,就是一个uboot中的死循环。uboot在死循环中不断接受命令、解析命令、执行命令。打开使用能工具,选择连接光猫的网卡,选升级,然后选择上面下载好的固件,点击启动。打开光猫,耐心的等待光猫上的灯变成全亮。就可以点击停止,然后重启光猫,运气好的光猫重启后IP变成1921681001就可以了,并且telnet已经可以正常连接了。

2种都是BootLoader,即开机初始化时加载的最小系统,用于识别基础硬件和设置环境信息,引导固件的基础。

刷第三方系统,只要支持相应的BootLoader引导的系统就可以刷,现在的不死uboot和breed集成了>

tplink刷uboot失败

1、Uboot下执行tftp命令,在交换机上可以下载升级;在tp-link路由器上失败。

2、Kernel下执行tftp命令,交换机上和tp-link路由器上均可成功。

3、Uboot下,tp-link路由器上一个包也抓不到,TFTP_RRQ包也没发过来。

4、均可以ping通。

uboot下现象:

HKVS # updateb

ATTENTION: PLEASE READ THIS NOTICE CAREFULLY!

DO NOT reset the device, or disrupt this process

If this process fails, the device might be unusable

If you find this too risky, power off device now

or press the SPACE key to start the process now

Trying eth0

link up on port 0, speed 100, full duplex

Using eth0 device

TFTP from server 1015244; our IP address is 1015245

Filename 'u-boot_8127bin'

Load address: 0x81000000

Loading: T T T T T T T T T T T T T T T T T T T

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

wireshark抓包:

Wireshark抓不到包

问题重现

使用TP-link路由器,uboot下用tftp进行升级可重现此问题

排查过程

原因分析

抓包分析

因为uboot下TP-link路由器上是抓不到包的,所以我们在交换机上进行抓包进行对比,为了使我们抓的包有对比性,主要抓了下面两个包:

1、在交换机上,uboot下,执行tftp命令进行抓包

2、在交换机上,kernel下,执行tftp命令进行抓包

我们选取这两个包是因为:

1、在交换机上,uboot、kernel下执行tftp命令均可以的;

2、在路由器上,uboot下执行tftp命令不通,kernel下执行tftp命令可以。

这样我们可以分析出kernel下的tftp包和uboot下tftp包的区别。

原因一:uboot问题

1、cpsw模块

这个模块主要的功能是初始化硬件,我们对8147芯片的配置和PHY模块(Realtek RTL8201)配置主要在这里执行。

在TCP/IP网络中,数据包通过socket传入到传输层中,再经过网络层最后传入数据链路层,数据链路层通过EMAC的GMII/RGMII/RMII端口进行数据通信,通过MDIO读写PHY寄存器,数据流的传输参考下图:

2、eth模块

主要注册一个eth设备,提供eth_write,eth_read,eth_init,eth_halt等 *** 作,这个模块一般屏蔽了硬件的差异,为上层提供统一的API

3、net模块

这个模块主要实现一个简单的协议栈,主要是构建相应的包,例如我们使用的tftp协议,是一个udp包,这里主要就实现了udp包的构建及解析。

4、tftp模块

这个模块主要是应用层的传输数据的协议

这几个模块的具体的关系及调用关系可以参考下图:

原因二:TP-link路由器问题

1、把tftp包抛弃,包过不了路由器因为在OS下,tftp在TP-link路由器,交换机上均可以通;在Uboot下路由器上不通,交换机上通。所以在OS下抓路由器的包与Uboot下抓交换机的包,进行对比,找出两个包的差别,下图分别是OS下路由器的包,与uboot下交换机的包:

OS下包:

Uboot下包:

这两个包进行对比可以发现主要有以下不同:

IP地址不同

端口号不同

Checksum不同,OS下做了Checksum的校验,Uboot下没有做checksum的校验

这样我们就大概知道在路由器上不通的原因可能是因为没有做Checksum的计算的缘故

解决方案

基于以上的分析,我们在协议栈构建UDP包的时候做UDP的校验和的计算,然后进行测试,结果在路由器上和交换机上tftp均可使用,至此问题解决。

总结

1、通过我们的分析,可以发现uboot下在TP-link上路由器上不通,主要是因为Uboot下没有做UDP的校验和,而是默认赋值0,也就是不使能udp校验和,UDP协议规定UDP校验和的计算是可选的,这也是在交换机上可以通的原因。

2、但是在TP-link上不通,说明TP-link上的做法是必须进行UDP校验和的计算,否则包就给丢弃,这也是TP-link路由器的一个缺陷。

那没办法升级成Fat AP、需要在Bootrom模式下升级成Fat AP。

升级说明

命令行升级方式不支持V200R001、V200R002 Fit AP 直接升级到 V200R003 Fat AP

需要先升级到V200R003 Fit AP ,再切换成 V200R003 Fat AP。Uboot升级无此限制

必须使用PC作为TFTP服务器,并且PC的网口必须与AP网口直连

必须先升级Uboot为V2R3的版本,不然V2R3的系统软件不能被AP识别,导致文件内容无效

升级步骤

Uboot升级方法

1 使用超级终端工具连接到AP的串口,进入命令行界面

2 AP已经上电使用的执行reboot,没上电直接跳过此步骤

3 AP启动时候进入Uboot模式,V200R002版本的Uboot的菜单密码为admin

Press f or F to stop Auto-Boot in 3 seconds: 3

Password for uboot cmd line :

ar7240>

可查看当前Uboot版本

ar7240> version

UBoot V200R002 version-042 (Feb 5 2013 - 00:57:25)

4 配置AP和TFTP服务器的IP地址,保证AP能从TFTP服务器获取升级文件

ar7240> setenv ipaddr 1921682001 #AP的IP地址

ar7240> setenv serverip 1921682002 #服务器的IP地址

ar7240> saveenv

Saving Environment to Flash

Erasing FlashWriting to Flash done

5 配置PC本地网卡信息,准备需要的升级文件、启动TFTP软件

6 升级Uboot 到V200R003,以新加载的Uboot加载启动,Uboot的文件名需要为 u-bootbin

(升级Uboot时不能断电,否则AP无法启动)

7 Uboot升级完成后reset重启AP再次进去Uboot

V200R003版本的Uboot的菜单密码为 admin@huaweicom

查看是否升级成功

8 Uboot下升级V200R003 Fat AP系统软件版本

ar7240> update system FatAP3X10XN_V200R003C00SPC100B033bin

(#FatAP3X10XN_V200R003C00SPC100B033bin 存放在TFTP目录下)

dup 1 speed 1000

Upgrade Firmware to A Successful

9 等待 Upgrade Firmware to A Successful 出现即完成升级

完成升级后,reset重启AP

10 AP启动完成后,需要为AP Console口配置一个密码

进入后执行命令 display version 查看当前版本是否升级成功为V200R003

如果需要回退到V2R2的版本。 *** 作也是一样的,只需要把V2R2的Uboot文件和系统软件准备好就可以了。

以上就是关于已经用不死uboot刷openwrt,现有一个升级固件 open全部的内容,包括:已经用不死uboot刷openwrt,现有一个升级固件 open、uboot 支持can总线升级吗、华为uboot不能中断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10113849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存