半年前帮 @zeroomega 改的这台 DIR-615 ,没想到过程也还有点小曲折,主要是没注意到 AR9130 的 uboot 没有设计成把 env 存在 flash 里,然后接二连三导致一串错误,包括内核被 env 盖掉一类的。好在最后都解决了。至于修改的内容,就是加了内存和 Flash ,另外装上了 USB 。
外观。
指示灯。
WPS 按钮。
SMA 天线,这样的良心设计现在不多了。就是自带的天线增益比较低,看起来是 3dBi 左右。
标识贴的比较混乱,不知道当年的行货渠道是个什么情况。
去掉脚贴卸下两颗螺丝即可开盖。
上盖。卡扣不是很紧密,很好拆开。
内部全貌,板子布局不太给力,应该能做得紧凑的多。
LED 上的白色挡板是亮点,它使得指示灯图案的亮度非常均匀,看起来细腻而且高大上。
AR9130 是 ar71xx 系列的 SoC ,比较老了,发热比 AR9331 大很多,速度却是一样的,而且无线和交换机还没集成。现在常用的 AR9331 基于 ar72xx 。
AR8216 是 Atheros S26 系列百兆以太网交换机。
华邦的 W9425G6EH-5 DDR400 颗粒,256Mbit = 32MB ,16 位位宽。待会要换掉。
Spansion 的 S25FL032 ,4MB 却采用 SOIC-16 宽体封装可能是受制于制程。
台湾 uPI semiconductor (力智电子)的 uP6103 ,找不到啥资料,只知道某些主板上很常见,可以和别的同步整流 buck PWM 代换。
另一只 uP7707-00 ,可调版的 600mA LDO 。
RichTek 的 RT9183H ,1.5A 的 ULDO ,电压信息似乎从 marking 上省掉了。
最后一个非常小、身份不明的 DC-DC 。
看接法似乎有点像 LM317 ,但是估计不是。也有可能只是个三极管而已。
电解电容全部是日化的 KZG 系列,比较给力。
WPS 按钮,要有光。
屏蔽罩就不掀了,还要用。直接转战背面。
卸掉两颗螺丝,拆下 LED 反光板后方可取出主板。
背面,几乎啥都没有。
当然其实还是有只 AO4812 NMOS ,30V ,6A ,42mΩ @ VGS=4.5V 。这机器电源部分真复杂,现在的路由器最多两个 34063 就搞定了,虽然效率低一点。好一点的会有专门的集成两路同步整流的方案。
40.000MHz 晶体。
底壳上有 USB 接口的预留位,另外还可以多装一路天线,可能是跟 3×3 的产品共用的模具。
底壳全貌。
开工。先焊上 TTL UART 的插针。
USB 插座。
USB 的 D+ / D- 需要下拉才能正常使用(略奇葩啊)。
解耦电阻用的 10Ω 的,都是拆机货,也找不到更合适的了。
供电好解决,找到 5V 直接用 polyfuse 接到 VBUS 上。另外搞了俩 10μF 的 MLCC 。
背面 R13 处需要安装一只 4.7kΩ 的电阻方能正常使用 USB 。这个位置真是极度难焊。
顺便把供电部分省掉的也补上了,加了差模和共模电感以及 polyfuse (没直插的只好山寨一个)。
内存也是换得颇为痛苦,板子的热容量非常大,老招数不好使,最后无奈只好回归大自然,切断两排引脚,颗粒拿下来直接进垃圾桶,然后把剩余的引脚清理掉。
松香一大堆。
另一边也加了点松香才焊牢。这种板子没风枪就是不好对付。
旁边一大堆电阻,似乎不全是 bootstrapping 用的,碰掉了就麻烦了。
清理过后。上的 Hynix 的 64MB 超低延迟 DDR 。本来可以给 SoC 超下频,但是想到 AR9130 的发热,最终还是作罢了。
卸下原 Flash 后发现下面没有 SOIC-8 的焊位,真是坑爹啊。再考虑到 WR340G+ 的惨痛教训,这次果断上了个插座,没事还能换固件玩,就是不知道长期使用可靠性如何。不过早知道如此,当初应该买个 DIP-8 封装的 16MB 闪存。
OK ,软件部分开工。
详细过程就不写了,期间自己参考 pepe2k 的代码做了个支持闪存自动识别的 AR9130 uboot (有点改 uboot 改上瘾了)。
LZ你好,最近也想改一下这个路由8M/64M,苦于没有找到适合8M闪存的u-boot,如果你这个boot可以自动识别,我想可以试试。
麻烦请教一下使用你的u-boot的话,分区的情况是怎么样的?比如要制作编程器的镜像文件,各应放在什么地址呢?
另外Openwrt能否直接识别64M内存?
如果可能的话,可否编译一个8M的镜像?
文中提供的 uboot 应该可以自动识别,闪存 layout 只要注意把 art 放最后 64KB 就行了。另外在编译 OpenWRT 的时候需要改闪存的 layout ,否则无线会有问题。相关内容在 target/linux/ar71xx/image/Makefile 里面。内存识别没有问题。
谢谢,
能否告知比如16m是改makefile哪行?
Ap81_mtdlayout
还是cameo_ap81
具体只要改firmware的size吗
cameo_ap81_mtdlayout=mtdparts=spi0.0:128k(u-boot)ro,64k(config)ro,3840k(firmware),64k(art)ro
应该是这里。可能还有别的地方,时间久远记不太清楚了。
Could you tell value to change 16Mb fw! 3840k -> ? Thanks!
16128k (16384k – 128k u-boot – 64k config – 64k art)
楼主你好,今天用你的boot和自己编的16m barrier breaker的op固件刷到16m闪存里,换上64m内存,一次性成功!
请教一下,现在想折腾装上sma天线(我的版本是固定天线)。
http://wiki.openwrt.org/_media/toh/d-link/dir615c1.pdf
这里有电路
sma被省略了,本以为加上就行了,但是不知道输出的那几个电阻和电容的值。电路上是c227 x/10pf,是什么意思?天线ANT0的阻抗是x吗。特别不理解的下面那个r257电阻x/0.5pf,应该取多大的电阻。c320的电容横过来到c124可以吗。请参考电路sheet-6/14
谢谢!
横过来应该可以用,效果好不好难说。两个 R 上实际焊的貌似是电容,估计后期修改过。
具体x/10pf是多少你也不确定吗
不知道
也许不改更好。
谢谢!
你好,请问楼主,在空flash(W25Q128FVSG)刷入你编译的u-boot无法启动,通过TTL可以看到似乎启动了httpd模式,但好像没有成功,不知道什么原因。
截不了图,只能把ttl下启动信息打印出来,看看吧
U-Boot 1.1.4 (Jun 28 2013 – 22:30:04)
AP81 (ar7100) U-boot
DRAM: AP81 initdram
sri:ddr_init
64 MB
SPI FLASH: Winbond W25Q128xV (16384 MB)
Flash: 16 MB
Using default environment
In: serial
Out: serial
Err: serial
Net: eth_initialize CONFIG_NET_MULTI
ag7100_enet_initialize
eth0: 00:01:23:45:67:89
ethernet found.
eth0
### main_loop entered: bootdelay=1
### main_loop: bootcmd=”bootm 0xbf030000″
Hit any key to stop autoboot: 0
## Booting image at bf030000 …
Bad Magic Number
httpd start
hostaddr = 0xc0a8 1
就一直停在这里不动了。
请问,以何种方法才能刷入固件?还有就是怎么进入uboot command模式?我想如果miniweb http模式不行的话,利用tftp来刷入也行,对吧!
希望看到后给予回复,谢谢!
启动的时候不停地按任意键就能进 console 了。如果 192.168.1.1 访问不了 http 的话,擦掉 env 试试(记得先备份)。
I have the same problem. Could you help me please! Could you give me full 16Mb.bin, i will change art.bin for my router. Thanks!
I do not have a full image yet.
I success, thanks your uboot. Could you please give me sysupgarde with support usb.
The OpenWRT firmware given in the post (http://dword1511.info/dword/openwrt/ar9130_dir-615_c1_16m-mod_full.bin.bz2) should contain USB support, although I do not quite remember.
另外,猜测上述失败原因有两个:
1、本人所选取的Flash IC型号不在uboot支持list内,(但我看了一下uboot代码,里面好像有我用的flash ic型号),所以搞不明白了;
2、如果硬体没有问题,那就是此uboot不完善,需要继续update。
Lz 你好,硬改的615用了一阵,无线有些不稳定,有时设备会断线。看上去像wpa密钥认证的问题。固件我用的官方image build打包的16m镜像。我另一个路由也用的这个barrier break版本好像没有断线的问题
想请教下这更像一个什么问题?op固件本身的问题?无线驱动问题?会和更改的uboot有关吗?
不好判断,一般来讲 op 还是比较稳定的。两台路由方案一样吗?
另外一台是netgear的WNR2000v3, AR7240和AR9287的方案。刷的官网现成的barrier breaker。
615是用image builder打包的barrier breaker。
断线次数不多也比较难分析,但有一次Nexus7和iphone(都是比较新的设备)同时断线,系统里log又看不到什么,重启才连上。有一次N7看到WPA认证问题。
615 是 9130 + 9102 ,貌似是 PCI 总线,略老一些,不知道驱动方面有没有问题。内核日志里面有东西吗?另外也可以更新到最新的 trunk 看看。
你好~我用的是DIR615 C1,和C2类似,想向您请教一下ttl刷机的问题。以前在刷机的时候不小心把uboot也刷了,现在用ttl能刷回uboot吗?另外vcc端不用接吗?我现在连上ttl线,用超级终端,什么都没有显示……
Vcc 不要连。出不来东西看看波特率是不是设置到了 115200 ,另外对调下 TX 和 RX 看看。
还是不行……估计真的被我刷坏了。现在接通电源只有电源和网络两个灯亮,连网线也没反应T_T
连网线也不亮灯?是不是供电出问题了?另外如果是 bootloader 刷坏了的话可以用 SPI 闪存编程器,很便宜的,不过有焊工要求。
嗯,路由上lan的灯不亮,电脑上也说线缆被拔出……等开学去学校试试看,感谢楼主指点!!!~(≧▽≦)/~
I mod my router to control home light.
My guide: http://chuc2rk.blogspot.com/2014_12_01_archive.html?m=1
楼主你好,我又来了:)
回学校搞了一个编程器,准备8脚的flash换上去。
之前看过8脚对16脚的接法,但是又发现楼主照片里好像只连了6个脚。想问一下楼主,8个引脚是不是不用全接?
nWP 和 nHOLD 我直接拉高了,这样可以省两条线。
我看电路上WP和HOLD接3.3v,就直接把这两个接到VCC上,结果通电之后flash好烫。拆下来用编程器还能识别,可能还没坏……
楼主是怎么接线把这两个拉高的呀?
你确定没接错?如果不怕麻烦的话还是八根线都接了吧,或者串电阻。
楼主我又来麻烦你了……
硬件应该已经搞定了,烧了一块芯片。
刚才把楼主的修改版uboot烧进去,ttl已经有信息好激动!!!
可是只有这样子
U-Boot 1.1.4 (Jun 28 2013 – 22:30:04)
AP81 (ar7100) U-boot
DRAM: AP81 initdram
sri:ddr_init
32 MB
SPI FLASH: Winbond W25Q128xV (16384 MB)
Flash: 16 MB
Using default environment
In: serial
Out: serial
Err: serial
Net: eth_initialize CONFIG_NET_MULTI
ag7100_enet_initialize
后面就没了。按着reset启动也不行。
把电脑的ip改成192.168.1.10,但是192.168.1.1打不开。
实在太奇怪了……
难道又是什么芯片烧了-_-|||
卡在这了吗?前面烧了一片闪存?交换机芯片的供电正常吗?
是的,卡在这了。
早上把原本16脚的Flash焊到转接板上,写入4MB的完整固件,倒是可以用~
这个好奇怪,现在还在琢磨……
是因为交换机没有驱动起来吗?
难不成这两个机器的交换机芯片都不一样……
又重新写了几次程序,交换机可以初始化了~
但是和上面那位兄弟一样,不能进入192.168.1.1,按任意键好像没用,也不能输入命令
试试
env default -a
saveenv
按任意键没有反应,不能输命令。。。。
我在尝试自己做一个编程器固件,想问一下楼下,是不是不同的uboot可能对应不同的固件结构?
比如楼主做的这个是uboot-config-fw-art吧?
之前下了一个841v3的uboot,结构好像是uboot-fw-config-art
是有可能,但是不能输命令感觉是 config 有问题
不同的方案和厂商往往不一样,TP-Link 某些路由压根没有 config
自己搞了几种编程器固件还是不行……
多谢楼主啦!总是这么热心的回复我!!
等有时间我再自己学习编译个uboot试试看~
刷进去了这个uboot,但是蛋疼的是没法打断autoboot…他只有一秒 不管我按什么,他都照样启动…我确定我ttl没接错线,启动到op里之后也可以正常用….
终于找到打断的方法…准备启动时候拔掉flash…然后ctrl+c干掉httpd就行了….再插回去…
进入命令行里面发现有printenv和setenv,但根本没有saveenv…存不下啊…
另外openwrt继续忽略我给的bootargs,还是用他默认的.不知为何
内核是最新的truck
OpenWRT 的 bootargs 是嵌在内核镜像里面的,修改的话需要重新编译。至于 uboot 的毛病,由于年代久远我也记不清了,一直按 Ctrl+C 应该有用?
按了没用…所以才用此下策…我去重新搞下内核吧,当初改841和720n都没问题,但615的官方镜像就不去拿env里的命令,坑爹啊
Have you get error with usb mod. I use normal resistor( not smd) for 15k pull down and 4,7k (R13). I have error with usb mod, sometime router don’t recognize USB, i have to restart router for get USB work again with router. I compile many build(AA, BB, trunk) for router but get same error with usb. I think it’s my fault on mod USB. Do you have any advise for me. Thank you very much!
Example my error: I connect webcam, keyboard to router with usb hub( hub have power adapter). when i press keyboard 4th or 5th, router can not read input from webcam and keyboard. I have to restart router to get usb work again.
I can hardly imagine how to solder a through-hole resistor on the pads for R13 properly. You probably want to check your soldering in case they are the problems. This kind of instability should be a pure hardware issue. Also check if connect keyboard or webcam directly to the router works.
楼主好~我又来了(~ ̄▽ ̄)~……
虽然这次是想自己试着编译UBOOT,所以想请教下你,应该去哪里找9130的uboot源码?
我下载了dlink提供的dir615的源码,里面好像没有独立的uboot部分。
又找了uboot官方git,也没找到ar71xx之类的。在这里找的:http://git.denx.de/?p=u-boot/u-boot-mips.git;a=tree;f=board;h=7524cfd2ce7f4bebaab4699ec39dccb23efe1507;hb=HEAD
615 硬件版本很多,我记得 C1/C2 的包里面是有 uboot 的。以下为我机器上的存档:
http://dword1511.info/dword/ar9100_dlink.tar.lzma
谢谢!!!!
我重新去下了源码,发现C1的有uboot,C2就没有……
博主你好~
最近刚开始学OPENWRT,什么都不会
刷机的时候在OPENWRT的网站上发现了 Barrier Breaker里面也有DIR-615 C1的固件
想知道可以使用吗? 和ATTITUDE ADJUSTMENT有什么不同?
应该可以使用。BB 比 AA 要新。
楼主你好,我的615用你的boot升级了16M flash。现在更新到最新的chaos calmer,有如下问题
最新版本会去读ART里的wlan mac
#define DIR_615C1_WLAN_MAC_ADDR 0x1f3fffb4
ath79_parse_ascii_mac((char *) KSEG1ADDR(DIR_615C1_WLAN_MAC_ADDR), wlan_mac);
这个地址应该是对应原来的4M地址的。这样一来wlan mac全为零,wifi起不来了。
貌似原来的mac是跟着lan的mac的,也是全0但是会生成random mac就没问题。最新版上述函数没有这种机制。
不知楼主有什么办法。
那可能只能修改这个宏了,把地址改成 0x1fffffb4 。原来只要 Makefile 改好了,内核的 mtd 分区地址对了就没问题。