U-Boot 刷机方法大全
1楼: OpenWrt + SSH 刷机方法
2楼: U-Boot + TTL 刷机方法
3楼: 使用 HFS 上传文件 (配合1楼方法)
OpenWrt + SSH 刷机方法
如果要刷 U-Boot,则必须事先刷入解锁 u-boot 分区的 OpenWrt 固件。
准备工具:
PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
WinSCP: http://winscp.net/eng/download.php
u-boot下载地址 ftp://ftp.denx.de/pub/u-boot/ http://www.denx.de/en/Software/WebHome
PuTTY 可以作为 SSH 客户端,登录路由器的 Shell 环境,以执行各种命令。
WinSCP 是一个图形化的 SCP 协议 (基于 SSH 的文件传输协议) 客户端,用于本地和路由的文件传输。
设置 OpenWrt 管理密码 (root 密码):
只有设置了 root 密码,才能使用 SSH 协议工具。
如果已经设置了密码,请跳过这一步。
以下步骤任选一个就行
1. 在 LuCI 里设置管理员密码(针对有 LuCI 的固件):
[系统] → [管理权]
2. 使用 telnet 登录路由设置密码(针对没有 LuCI 的固件):
telnet 协议是一种类似于 SSH 的协议,只是它不经过加密,因此在外网环境中不太安全。
OpenWrt 只有在未设置 root 密码时,才能使用 telnet 协议。
PC [开始]→[所有程序]→[附件]→[命令提示符]
或
Win + R 组合键→输入 cmd→回车
输入 telnet <路由IP地址>
输入 passwd,回车
输入两次密码,分别以回车结束。
注意:输入密码时,密码不会显示,直接输入即可。
使用 WinSCP 传输要刷入的文件 (以 U-Boot 为例):
打开 WinSCP
File Protocol 选择 SCP
Host name 填入路由器 IP 地址
User name 填入 root
Password 填入 root 的密码
单击 [Login]
如果是第一次使用 WinSCP 登录路由,那么 WinSCP 会弹出如下对话框:
其大意是第一次连接此主机,其 RSA 指纹 Key 未被登记,是否要信任此主机
这里单击 Yes,以确认信任此路由。
WinSCP 主界面
左侧切换到要上传的文件的目录
右侧切换到 /tmp 目录
选择 /tmp 目录的原因是:/tmp 目录挂载于内存中,而且容量较大,这样刷写固件时不会跟 Flash 产生冲突。
选择要上传的文件,右键菜单选择 [Upload]
直接单击 [OK] 继续
文件即可上传到路由中。
使用 PuTTY 登录路由:
打开 PuTTY
Host Name 填入路由器 IP 地址
Connection type 选择 SSH (默认)
单击 [Open]
跟 WinSCP 一样,如果是第一次使用 PuTTY 登录路由,那么会有如下提示:
单击 [Yes] 即可。
然后 PuTTY 会要求输入用户名和密码:
用户名填入 root
密码填入 root 密码。这里一样在输入密码时不会显示。
如果用户名密码无误,就会进入 Shell 环境。
输入 cd /tmp 命令进入 /tmp 目录。
输入 mtd write <文件名> <mtd分区名> 命令以进行刷机操作
下图是以刷入 U-Boot 为例的:
有些教程会在 mtd 命令后加入 -r 参数,此参数的意思为刷写完成后立即重启路由
但这里不建议这么做,因为一旦刷机文件选错,这里还有补救的机会。
关于获取 MTD 分区名:
运行 cat /proc/mtd 命令即可查看
本帖最后由 hackpascal 于 2014-12-11 23:33 编辑 U-Boot + TTL 刷机方法 此方法适用于任何 U-Boot。 准备工具: PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html TFTPd32: http://tftpd32.jounin.net/tftpd32_download.html TFTPd32 是一个 TFTP 协议 (简单文件传输协议) 的服务端,用于向 U-Boot 传输文件。 使用 PuTTY 通过串口进入 U-Boot 命令行模式: 这里请自行查找相关资料 设置 PC 网络参数: 需要设置本机网卡的IP地址为静态IP,才能通过 U-Boot 传输数据 1. 查看 U-Boot 中的 IP 地址信息: 在 U-Boot 命令行中运行 printenv 命令 ipaddr 表示 U-Boot 即路由使用的 IP 地址 serverip 表示服务器即 PC 机使用的 IP 地址 这里需要将本机IP改为 serverip 的 IP 地址 设置 TFTP 服务器参数: 打开 TFTPd32 Current Directory 选择要上传文件的目录 Server interfaces 选择本机跟路由相连的网卡 (参考刚才设置的 IP 地址) 在 U-Boot 中使用 tftpboot 命令获取文件: tftpboot 命令用于向 TFTP 服务器请求文件,并存入内存 tftpboot 命令在无歧义的情况下可简写为 tftp tftp <内存地址> <文件名> 在 MIPS 架构下内存地址从 0x80000000 开始,一般也选择 0x80000000,因为这样可以尽可能使用更多的内存 文件传输成功的标志为 Loading: 后出现一连串 # 其中可能出现 checksum bad 的提示,这不影响数据传输。 如果每隔10s出现一个T,则表明通信超时,此时需要检查网络连接情况及IP地址是否正确。 Bytes transferred = 后面的第一个数字为传输的数据字节数,10进制;括号里的为对应的16进制大小,后面会用到16进制的大小。 在 U-Boot 中擦除 Flash: 任何一种 Flash 都有一个擦除块大小,擦除大小必须为此大小的整数倍,如果不是,则要进行对齐。 例如: SPI Flash 的常见擦除块大小为 64KB,其字节数的16进制为 0x10000 如果擦除大小为 0x30000 (192KB),则此大小为 0x10000 的整数倍,是对齐的; 如果擦出大小为 0x12345 (72KB),则此大小未对齐,需要使用比它大但又最接近的是 0x10000 倍数的大小,即 0x20000 (128KB)。 erase <flash地址> +<擦除大小> 其中 Flash 地址在不同的芯片下有所不同,会在后文列出 以在 TP-LINK 路由中刷入 U-Boot 为例: erase 0x9f000000 +0x20000 在 U-Boot 向 Flash 写入数据: 向 Flash 写入数据的大小可以是任意正整数 cp.b <源地址> <目的地址> <长度> 其中 cp.b 表示以字节为单位进行写入 源地址为通过 tftpboot 命令获取的文件数据的存放地址 目的地址为 Flash 地址 长度为通过 tftpboot 命令获取的文件的大小,16进制表示,带0x前缀 以在 TP-LINK 路由中刷入 U-Boot 为例: cp.b 0x80000000 0x9f000000 0x20000 常见路由固件各成分的起始地址及大小: TP-LINK 固件: U-Boot固件ART4MFlash 地址:0xbf000000 (AR71xx, AR913x) / 0x9f000000 (AR724x 及之后)大小: 0x20000Flash 地址:0xbf020000 / 0x9f020000大小: 0x3c0000Flash 地址:0xbf3f0000 / 0x9f3f0000大小: 0x100008MFlash 地址:0xbf000000 (AR71xx, AR913x) / 0x9f000000 (AR724x 及之后)大小: 0x20000Flash 地址:0xbf020000 / 0x9f020000大小: 0x7c0000Flash 地址:0xbf7f0000 / 0x9f7f0000大小: 0x1000016MFlash 地址:0xbf000000 (AR71xx, AR913x) / 0x9f000000 (AR724x 及之后)大小: 0x20000Flash 地址:0xbf020000 / 0x9f020000大小: 0xfc0000Flash 地址:0xbfff0000 / 0x9fff0000大小: 0x1000032M(仅楼主不死 U-Boot)Flash 地址:0xbf000000 (AR71xx, AR913x) / 0x9f000000 (AR724x 及之后)大小: 0x20000Flash 地址:0xbf020000 / 0x9f020000大小: 0x1fc0000Flash 地址:0xc0ff0000 / 0xa0ff0000大小: 0x10000 网件 WNDR3700v2/WNDR3800/WNDRMAC: 仅 U-Boot 及 ART,因为原厂升级固件不能直刷U-BootART16MFlash 地址:0xbf000000大小: 0x50000Flash 地址:0xbfff000大小: 0x10000 仅 U-Boot 及 board_config,因为原厂升级固件不能直刷 仅适用于楼主的不死 U-Boot U-BootART4MFlash 地址:0xa8000000大小: 0x30000Flash 地址:0xa83f000大小: 0x100008MFlash 地址:0xa8000000大小: 0x30000Flash 地址:0xa87f000大小: 0x1000016MFlash 地址:0xa8000000大小: 0x30000Flash 地址:0xa8ff000大小: 0x10000 仅 U-Boot 及 EEPROM/ART,因为原厂升级固件不能直刷 U-BootART4MFlash 地址:0xbf000000 (AR7161) / 0x9f000000 (AR724x 及之后)大小: 0x40000Flash 地址:0xbf3f0000 / 0x9f3f0000大小: 0x100008MFlash 地址:0xbf000000 (AR7161) / 0x9f000000 (AR724x 及之后)大小: 0x40000Flash 地址:0xbf7f0000 / 0x9f7f0000大小: 0x10000 U-Boot固件EEPROM4MFlash 地址:0xbc000000 (其它 U-Boot) / 0x9c000000 (楼主不死 U-Boot)大小: 0x30000Flash 地址:0xbc050000 / 0x9c050000大小: 0x3b0000Flash 地址:0xbc040000 / 0x9c040000大小: 0x100008MFlash 地址:0xbc000000 (其它 U-Boot) / 0x9c000000 (楼主不死 U-Boot)大小: 0x30000Flash 地址:0xbc050000 / 0x9c050000大小: 0x7b0000Flash 地址:0xbc040000 / 0x9c040000大小: 0x1000016MFlash 地址:0xbc000000 (其它 U-Boot) / 0x9c000000 (楼主不死 U-Boot)大小: 0x30000Flash 地址:0xbc050000 / 0x9c050000大小: 0xfb0000Flash 地址:0xbc040000 / 0x9c040000大小: 0x1000032M(仅楼主不死 U-Boot)Flash 地址:0x9c000000大小: 0x30000Flash 地址:0x9c050000大小: 0x1fb0000Flash 地址:0x9c040000大小: 0x10000
|
本文链接:https://www.kinber.cn/post/518.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: