openwrt相关

来源:互联网 发布:西安软件新城 编辑:程序博客网 时间:2024/05/29 00:31

flash布局,文件系统划分:

http://wiki.openwrt.org/zh-cn/doc/techref/flash.layout

好的总结经验

http://www.cnblogs.com/zmkeil/archive/2013/05/14/3078774.html

http://wiki.openwrt.org/toh/tp-link/tl-wr703n

Hardware summary

 ICInfoDatasheetProcessorAR7240 ClickFlash ROMEon EN25Q32B ClickSDRAMZentel A3S56D40FTP  Chipset (Wi-Fi controller)AR93311x1http://see.sl088.com/w/images/6/69/AR9331.pdf



一. 基本知识

如果是刷了带HTTP的U-boot, 真正成了刷不死的小强了, 可以尽情折腾吧: 
电脑ip 设成192.168.1.x,接好网线(单独直连或者HUB内都可以),  上电后,灯会常亮1到2秒,然后熄灭,这时按住Reset开关不放,灯会常亮,松开Reset打开火狐输192.168.1.1 就能看到选择界面了(不支持IE), 升级时的提示如下:

Flashing...
The system is now trying to flash. If there is a problem, the LEDs will start to blink.
After a successful update the box will reboot 
V1.1 自己修改了u-boot, 目前测试OK

路由器的安全模式: 若wifi无效, 则需要连接网线. 设置本地ip为192.168.1.*, 准备可以触碰reset工具一件. 眼明手快的活来了: 插电源灯亮,当灯闪的瞬间 按下reset键 3秒, led狂闪则路由器进入安全模式, 打开CMD窗口, ping 192.168.1.1 若能成功连接, 则输入命令: telnet 192.168.1.1, 再firstboot, 等待命令结束(出现#), 然后重启. 
一般都能恢复正常, 此方法在之前屡试不爽.  如果不行, 请参考下面的.  
 
编程器固件中包含uboot、fw和art。
uboot就像电脑的bios,是底层的管理系统;
fw就像电脑的操作系统,实现路由器的各种功能;
art就像电脑的无线驱动程序,是无线校验码;
uboot的长度为128KB(0x20000);art为64KB(0x10000);fw有4M和8M的区别,4M的为3840K(0x3c0000),8M的为7936KB(0x7c0000)。在刷机之前要对要刷入flash的uboot、fw、art的文件长度用ultraedit或winhex进行校验。尤其是uboot,如果大小不对,千万不要尝试刷入,那是一定会变砖的。 
秋水注: U-boot: 0x1fc00 起的6个字节为 Lan时的 MAC地址,  0x1FE00 起的8个字节为PIN

uboot、fw和art在flash中的位置如下:
4M的FLASH:flash地址从0x000000~0x3FFFFF
ttl访问flash的地址从0x9F000000~0x9F3FFFFF

flash起始地址
TTL起始地址
flash终止地址
TTL终止地址
uboot
0X000000
0X9F000000
0X01FFFF
0X9F01FFFF
fw
0X020000
0X9F020000
0X3DFFFF
0X9F3DFFFF
art
0X3F0000
0X9F3F0000
0X3FFFFF
0X9F3FFFFF

8M的FLASH:flash地址从0x000000~0x7FFFFF
ttl访问flash的地址从0x9F000000~0x9F3FFFFF

flash起始地址
TTL起始地址
flash终止地址
TTL终止地址
uboot
0X000000
0X9F000000
0X01FFFF
0X9F01FFFF
fw
0X020000
0X9F020000
0X7DFFFF
0X9F7DFFFF
art
0X7F0000
0X9F7F0000
0X7FFFFF
0X9F7FFFFF

准备工作
1、从PCB版上上引出TTL线,一般有三根:TX RX和GND,对应主板上的标记,应该是TP-IN,TP-OUT,主板上焊点较大、覆盖面积较广的一般就是GND,有USB的,外壳连接的就是GND,可以从这些地方引出。

WR703N: TP_IN为RX,TP_OUT为TX,GND: 电源引脚标有USB1, R106旁边的3个过孔, 从而实现免拆机无损TTL改造。

我的TTL线: 黑色为GND,绿色为RX,白色为TX。 排列: 黑白绿(Err), 黑绿白(OK),  靠近RAM芯片端为黑线. 

2、USB-TTL板或串口TTL板,装好驱动,在设备管理器中查出该设备占用的COM端口号,并将其属性设置中的速率改为115200
3、电脑IP设置192.168.1.2,网关255.255.255.0,掩码192.168.1.1,网线连接路由器LAN口和电脑网线接口。
4、需要的软件PUTTY。连接好TTL,打开PUTTY,点串口,端口改为上部查出的COM端口号,速率选择115200,点确定。如果接上路由器电源以后不出码,请交换ttl的Tx和Rx两线;如果出乱码,请查COM端口的速率是不是都是115200。
5、需要的软件tftp32。将固件放到tftp32同一目录,打开ftfp32,一般默认的server interface就已经是你的网卡IP地址(对于路由器uboot的远端地址不是192.168.1.2的,请按照5楼hhhjjj159 所说的,在TTL中断系统启动以后,输入setenv ipaddr 192.168.1.1;setenv serverip 192.168.1.*(电脑IP地址)命令)。
TTL刷固件的命令
了解以上地址信息以后,就可以利用以上信息在不拆FLASH的情况下利用TTL向FLASH写入编程器固件或者其中的某一部分。
在插上路由器电源,屏幕开始出码的时候,迅速点击T、P、L三个字母,会中断系统的启动,光标停在提示符下,这时就可以输入刷固件的命令了。
命令如下:

4M的:
刷编程器固件:
tftp 0x80000000 full.bin
erase 0x9f000000 +0x400000
cp.b 0x80000000 0x9f000000 0x400000
刷uboot:
tftp 0x80000000 uboot.bin
erase 0x9f000000 +0x20000
cp.b 0x80000000 0x9f000000 0x20000
刷fw:
tftp 0x80000000 fw.bin
erase 0x9f020000 +0x3c0000
cp.b 0x80000000 0x9f020000 0x3c0000
刷art:
tftp 0x80000000 art.bin
erase 0x9f3f0000 +0x10000
cp.b 0x80000000 0x9f3f0000 0x10000


8M的:
刷编程器固件:
tftp 0x80000000 full.bin
erase 0x9f000000 +0x800000
cp.b 0x80000000 0x9f000000 0x800000
刷uboot:
tftp 0x80000000 uboot.bin
erase 0x9f000000 +0x20000
cp.b 0x80000000 0x9f000000 0x20000
刷fw:
tftp 0x80000000 fw.bin
erase 0x9f020000 +0x7c0000
cp.b 0x80000000 0x9f020000 0x7c0000
刷art:
tftp 0x80000000 art.bin
erase 0x9f7f0000 +0x10000
cp.b 0x80000000 0x9f7f0000 0x10000

--------- 以下为实战操作记录 --------------------------------------------------------------------------------------------------------
路由器共3台, 4M的好用一个, 4M(
上电后灯每3秒闪一次, 重复到永远)和8M()的砖头各一个,  都无法进入安全模式
4M: SPANSION 的 S25FL032P,
8M: MX25L6445EM2I-10G
16M: W25Q128FVSSIG, W25Q128FVSIG

一. 先从好用的703N中导出bin文件, SecureCRT登陆后, 命令如下:
root@OpenWrt:~# 
root@OpenWrt:~# cd /tmp
root@OpenWrt:/tmp# cat /proc/mtd
//---- 4M
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 000da370 00010000 "kernel"
mtd2: 002f5c90 00010000 "rootfs"
mtd3: 000b0000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 003d0000 00010000 "firmware"

//---- 8M
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 00100000 00010000 "kernel"
mtd2: 006d0000 00010000 "rootfs"
mtd3: 00250000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware

root@OpenWrt:/tmp# dd if=/dev/mtd0 of=uboot.bin
256+0 records in
256+0 records out
root@OpenWrt:/tmp# dd if=/dev/mtd5 of=firmware.bin
7808+0 records in
7808+0 records out
root@OpenWrt:/tmp# dd if=/dev/mtd4 of=art.bin
128+0 records in
128+0 records out
root@OpenWrt:/tmp# 

root@OpenWrt:/tmp# cat uboot.bin firmware.bin art.bin > xxx.bin    #合成完整文件以备用
二. WinSCP, 将上面的3个.bin文库拷贝到 自己的电脑上以备用. 
三. TTL接好后, 能看到4M的启动信息如下, 至少uboot部分还正常, 万幸啊, 阿门!
U-Boot 1.1.4 (Sep 26 2011 - 11:13:45)

AP121-2MB (ar9330) U-boot

DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup 
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup 
eth1 up
eth0, eth1
Autobooting in 1 seconds
## Booting image at 9f020000 ...
   Uncompressing Kernel Image ... Too big uncompressed streamLZMA ERROR 1 - must RESET 
  Uncompressing Kernel Image ... OK   //此为正确的信息

此后总重复出现如上的信息, 路由器在不停的 Reset, 无法进入Linux  

----- 用编程器直接操作芯片,  烧录上面合成的bin, 开机后路由器恢复正常!!!
0x20000: FW的起始地址, 可以看到Openwrt的标志和版本号


------------------------------------------------------------------------------------------

常用 Flash 型号如下:

NameManufactureSizeS25FL016ASpansion2MBEN25F16Eon2MBEN25QH16Eon2MBAT26DF161ATMEL2MBMX25L1605DMXIC2MBW25Q16BVWinbond2MBS25FL032PSpansion4MBEN25F32Eon4MBEN25Q32BEon4MBEN25QH32Eon4MBAT25DF321ATMEL4MBAT25DF321AATMEL4MBMX25L3205DMXIC4MBW25Q32BVWinbond4MBS25FL064ASpansion8MBS25FL064PSpansion8MBEN25Q64Eon8MBAT25DF641ATMEL8MBAT25DF641AATMEL8MBMX25L6405DMXIC8MBW25Q64BVWinbond8MBS25FL128PSpansion16MBS25FL129PSpansion16MBEN25Q128Eon16MBMX25L12805DMXIC16MBW25Q128BVWinbond16MBEN25QH256Eon32MBMX25L25635EMXIC32MB
路由器内存
DDR内存:
32M:
W9425G6D(E)H-5 WINBOND(華邦)
64M:
HY5DU121622CTP-D43 现代颗粒64M (亲测:二手货市场10元买条256mb,四粒芯片的内存)
VDD9616A8A-6B H0513 VDATA(威刚)
46V32M16 MT(镁光)
D5116AFTA-5B-E ELPIDA\尔必达
128M:
46V64M16 P-6TA MT(镁光)

SD内存:
HY57V561622 现代颗粒 32M
HY57V561620 现代颗粒 32m(亲测)
K4S561632H 三星颗粒 32M

0 0
原创粉丝点击