Openwrt 硬改过程记录
目录:
提醒:如果你是一个热爱技术喜欢折腾并且动手能力很强的人,你可以继续看这篇文章。否则你就关闭这个网页吧
本文以tp-mr11u v2为例
所需物品和设备配置介绍
编程器(烧录器)
CH341A 烧录器,最差的一种。
ARM 烧录器,听说很好用,但是我没有买本文中也没有使用电烙铁及其相关
40瓦恒温电烙铁
焊锡
松香
焊宝,X宝送的的也不太清楚怎么用。
镊子TTL转接板
X宝上卖的,建议购买烧录器的时候购买带有TTL功能的
路由器1
名称 信息 Instruction set: MIPS32 Vendor: Qualcomm Atheros Bootloader: U-Boot 1.1.4 System-On-Chip: AR9331 (MIPS 24Kc) CPU/Frq 24Kc ? Mhz Flash-Chip: eon EN25Q32B-104HIP Flash size: 4096 KiB RAM: 32 MiB Wireless: Atheros AR9331 2.4ghz 802.11bgn USB: Yes 1 x 2.0 Power: 12V DC 1.5A Serial: ? JTAG: ? Target name ar71xx Initial flash image v1 & v1.1: openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-factory.bin v2: openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-factory.bin Upgrade image v1 & v1.1: openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-sysupgrade.bin v2: openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-sysupgrade.bin flash芯片
型号 大小 尺寸 引脚 备注 EN25Q32B 4MB 6mm*8mm 8脚 原装路由带的 w25q128 16MB 6mm*8mm 8脚 硬改使用的芯片 w25q256 32MB 6mm*8mm 8脚 对焊工要求比较高 芯片尺寸 6mm*8mm
救砖
flash芯片有U-boot2
拆开路由 你会看到P1右侧有直列排序的4个小孔, p1 |VCC|GND|RX|TX|
只需要连接GND|RX|TX即可,不要连接VCC 小心会烧坏板子。
设置串行控制台1152008N1,例如: stty -F /dev/ttyUSB0 115200 && cu -l /dev/ttyUSB0
cu命令好像ubuntu上有centos上没有。所以我是在虚拟机中的window下操作的用putty操作的,winxp怎么设置我就不介绍了。
在winxp用网线和路由器连接,设置本地连接的ip地址为192.168.1.2
putty连接上后按‘tpl’回车键 可以进入uboot
在uboot shell 输入
setenv ipaddr 192.168.1.1
setenv serverrip 192.168.1.2
开启tftp服务,可以用tftp32.exe这个软件,序号 命令 命令注释 1 tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-factory.bin 执行完这条命令后会出现 Bytestransferred = 3932160 (3c0000 hex) 如果这里不是3c0000, 在执行下一条命令时要用这个值。eg:Bytestransferred = 3932161 (3c0001 hex) 下条命令 erase 0x9f020000 +0x3c0001 2 erase 0x9f020000 +0x3c0000 擦除0x9f020000 到 0x3c0000和文件大小保持一致 3 cp.b 0x80000000 0x9f020000 0x3c0000 第一个参数和序号1命令的第一个参数相同,第二个参数和命令2的第一个参数相同, 最有一个参数和文件大小保持一致 4 bootm 9f020000 引导固件,如果这里一直滚动刷屏,说明固件没有烧好。 如果顺利的话执行完第4条命令路由就可以引导起来了,可以用telnet 或 ssh进行连接了。
flash芯片没有U-boot
一般没有U-boot都是硬改前没有用烧录器烧写芯片就焊接到路由上的(就像我)。
这个时候我们需要找个uboot,
1,登陆刷过openwrt的路由 cat /proc/mtd ;cat /dev/mtd0 > /tmp/mtd0.bin3
这时候你就得到了一个UBOOT
2,自己编译一个UBOOT https://github.com/pepe2k/u-boot_mod 4 如何编译自己研究吧。
如果没有U-boot 这是需要你去网上找相同的型号路由的U-boot了,5
好了现在有了UBOOT,我们可以用编程器烧录了,因为当初不知道买了最垃圾的编程器,在winxp下烧录老是报错,并且奇慢!!,
所以我就转到了centos下进行烧录,自己下载源码编译工具 源码地址:https://github.com/setarcos/ch341prog 此源码依赖 libusb库 http://www.libusb.org/下载编译
不过ch341prog的读取写入速度还很快并且还支持16MB芯片的读写,要比win下的快很多(推荐)。
刷好uboot后就和上面的 flash芯片有U-boot一样了
编程器烧写芯片
工具源码: 6“>https://github.com/setarcos/ch341prog7
依赖库源码:8“>http://skylineservers.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz29.
先编译依赖库源码 再编译工具源码。
硬改路由flash闪存芯片
芯片的第一引脚定义
有的芯片上带有一个圆点,圆点对应的引脚就是第一引脚
有的芯片有个半圆的豁口,豁口朝上左侧的引脚为第一引脚。
参考文献&博文
- OpenWrt mr11U官方wiki https://wiki.openwrt.org/toh/tp-link/tl-mr11u ↩
- 国外大神的文章 http://www.tech-blog.pl/2013/03/29/zmodyfikowany-u-boot-dla-routerow-tp-link-z-atheros-ar9331-z-trybem-aktualizacji-oprogramowania-przez-www-i-konsola-sieciowa-netconsole/ ↩
- 参考 http://yfrobot.com/thread-2225-1-1.html ↩
- UBOOT https://github.com/pepe2k/u-boot_mod ↩
- UBOOT htps://wiki.openwrt.org/doc/techref/bootloader/uboot ↩
- CH341A烧录器源代码地址 https://github.com/setarcos/ch341prog ↩
- CH341A烧录器源代码地址 https://github.com/setarcos/ch341prog ↩
- libusb库的官方wiki http://www.libusb.org/wiki ↩
- libusb库的官方wiki http://www.libusb.org/wiki ↩