上校
- 注册时间
- 2010-7-16
- 金币
- 10611 个
- 威望
- 11 个
- 荣誉
- 1 个
累计签到:767 天 连续签到:0 天 [LV.1095]铁杆粉丝
|
发表于 2014-2-21 15:19
本帖最后由 6331805 于 2014-3-7 10:29 编辑
- 本帖最后由 hackpascal 于 2014-3-6 23:49 编辑
这是我自己根据 TP-LINK GPL 代码的原始 U-Boot 修改而来的。
目前支持的芯片:
- AR7240 / AR7241 通用*
- AR9331 通用
*通用:不管在什么设备上启动时都点亮所有 LED
目前支持的 FLASH 大小:
4M 8M 16M; 32M 可以识别,但已证实只能使用 16M (已有解决办法,但缺一个 32M 的 FLASH进行实验)
已测试的机型:
AR7240:
AR7241:
- TP-LINK TL-WR841N v7
- TP-LINK TL-WR840N v1
- TP-LINK TL-MR3420 v1
- Mercury MW300R v2
AR9331:
- TP-LINK TL-WR740N v5 (需改机)
- TP-LINK TL-WR742N v5 (需改机)
- TP-LINK TL-WR340G+ v7 (需改机)
- TP-LINK TL-WR741N v4
[2014-3-6 更新]
- 完善超频功能,实现“不死超频” (详细说明见后面)
- 加快 U-Boot 启动速度
- 支持自动去除 TP-LINK 官方固件的 UBoot 部分数据和 DD-WRT 固件的 TRX 固件头
- 修复在更换大容量 FLASH 后刷 TP 原厂固件丢无线的问题 (详细说明见后面)
[2014-3-3 更新]
- 新增 AR9331 SoC 支持
- 修复 Web 刷机时单击 [Upgrade] 后无法出现刷机进度条的 BUG
- 添加固件备份 (整个 FLASH 芯片数据下载) 功能
- 添加支持 LZMA 和 BZIP2 解压支持,支持自动检测内核压缩模式
- 开启 AR9331 的交换机 LED
[2014-2-23 更新]- 增加 32M FLASH Winbond W25Q256 支持
- 增加 MAC 地址、PIN 码修改功能 (麻麻再也不用担心路由没有无线啦)
- 增加超频/降频支持
[2014-2-22 更新]- 添加 PCI 支持 (好像也没什么用?因为 AP99 的无线芯片是通过 PCI-E 接口连接的,所以就加上了)
- 修改 ag7240 驱动获取 MAC 地址的问题,改为固定从 0x1FC00 处获取 eth0/eth1 的 MAC 地址
- 默认填入合法的 MAC 地址 (5C-63-BF-CE-12-6A) 和 PIN 码 (12345670),适合不会改 MAC 的小白使用
此 U-Boot 有以下特点/功能:
- 支持 FLASH 型号识别,能自动识别未知 FLASH 的大小 (4M / 8M / 16M / 32M)。
- 支持 TP-LINK 固件头和 U-Boot 固件头。
- 带 Web 刷机界面。支持开机按 RESET/WPS 按钮进入刷机界面。
Web 刷机界面:
完全重写的 HTTP 服务器代码,使用“伪动态”页面,实现复杂操作。
刷机界面特点:
- 显示 FLASH 型号和大小。
- U-Boot/系统/ART 界面合在一起,提示期望的文件大小和刷写地址。
- 刷写系统固件时可选择擦除 NVRAM 区,以恢复 TP-LINK/DD-WRT 类型固件的出厂设置。
- 刷机前文件大小、MD5值确认。
- 详细的失败信息。
- 目前只有英文版,中文的等没什么 BUG 时再做。
开机时按住 RESET 按钮或 WPS 按钮 3 - 5 秒,等到所有 LED 同时闪烁 10 次左右时,就进入刷机模式了。
注意:UBoot 先检测 WAN 口连接,再检测 LAN 口连接,因此如果用 LAN 连接路由进行操作,请拔掉 WAN 口网线。
设置 IP 地址为 192.168.1.2,默认网关为 192.168.1.1 (可不填,若不能访问网页,再填),子网掩码 255.255.255.0。然后访问 192.168.1.1 进入刷机界面。
MAC/PIN 修改:
在刷机主页面上单击 "Set MAC Address" 和 "Set WPS/QSS PIN" 链接,修改重启后生效。
U-Boot 对应命令:
修改 MAC 地址:progmac <XX-XX-XX-XX-XX-XX>
修改 PIN 码:progpin <dddddddd>
固件备份:
在刷机主页面上单击 "Backup full chip data" 链接即可下载。
注意:由于直接从Flash上读取数据,因此速度较慢。
超频/降频:
在刷机主页面上单击 "Set CPU/DDR/AHB frequency" 链接,选择需要的频率,修改重启后生效。
AR7240 目前最大支持 500MHz 的主频 (超过后系统无法启动)。
AR9331 目前最大支持 562MHz 的主频 (极限)。
所有频率都经过测试可以使用。
“不死超频”:
若超频后系统无法启动,连 U-Boot 命令行都无法进入,那么可以按住 RESET 按钮然后通电,等待 1~2 秒后松开。
此时 U-Boot 将以默认频率启动,即可更改超频设置。注意如果按 RESET 时间过长,可能直接进入 Web 模式。
U-Boot 对应命令:pll <ddd_ddd_ddd>
ddd_ddd_ddd 为 PLL 设置,直接运行 pll 命令可查看可用的设置。
超频数据保存在 U-Boot 的 0x1FB00 处的 2 ~ 3 个 Big-Endian 4字节数据中。
第一个为 PLLC,是使用自定义频率的标志。
若要恢复默认频率,只需将这 2 ~ 3 个数据填充为 0xFF 即可。
如果出现未显示超频数据的情况,请尝试切换浏览器内核或更换浏览器 (PLL 值列表是由 JavaScript 生成的)。
附 U-Boot 启动信息:
- U-Boot 1.1.4 (Feb 20 2014 - 21:23:20)
- AP99 (ar7241 - Virian) U-boot
- DRAM: 64 MB
- Top of RAM usable for U-Boot at: 84000000
- Reserving 186k for U-Boot at: 83fd0000
- Reserving 192k for malloc() at: 83fa0000
- Reserving 44 Bytes for Board Info at: 83f9ffd4
- Reserving 36 Bytes for Global Data at: 83f9ffb0
- Reserving 128k for boot params() at: 83f7ffb0
- Stack Pointer at: 83f7ff98
- Now running in RAM - U-Boot at: 83fd0000
- Flash: Windbond W25Q64 (8 MB)
- Using default environment
- In: serial
- Out: serial
- Err: serial
- Net: ag7240_enet_initialize...
- Fetching MAC Address from 0x9f01fc00
- Fetching MAC Address from 0x9f01fc06
- Virian MDC CFG Value ==> 4
- : cfg1 0xf cfg2 0x7014
- eth0: 5c:63:bf:fe:07:e9
- eth0 up
- Virian MDC CFG Value ==> 4
- : cfg1 0xf cfg2 0x7214
- eth1: 5c:63:bf:fe:07:ea
- ATHRS26: resetting s26
- ATHRS26: s26 reset done
- eth1 up
- eth0, eth1
- Hit any key to stop autoboot: 0
- ar7240>
复制代码
刷入方式:
在 U-Boot 命令行中使用 tftp 命令:
tftp 0x80000000 u-boot-ar7241.bin
erase 0x9f000000 +0x20000
cp.b 0x80000000 0x9f000000 0x20000
用编程器:
从 FLASH 开头写入即可。
在 OpenWrt / DD-WRT 等系统中刷入:
网上找。。
备注:
刷 TP-LINK 原厂固件没有无线的解决方法 (适用于 8M / 16M FLASH 和 4M / 8M Linux 的原厂固件):
- 先正常刷入有效 ART 数据
- 再输入 TP 原厂固件即可
原理:
在刷入 TP 原厂固件时系统会自动复制一份 ART 到 4M ART 的位置 (8M 同理)。
P.S.
以后先做 AR9341 的,再弄 AR9344 的 (短时间内不做)。
原文发在恩山论坛,本人已测试过ar7240(740v3,941v4)和ar7241(841v7)
http://www.right.com.cn/forum/thread-136444-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|