Tenda W150M 的官方固件甚是憋屈,AP 下开了隔离,LAN 里面的机器互访困难,跑 OpenWRT 的话 16MB 的内存又时常被挤爆,于是打算修改之。
手上的 W150M 是 4MB 并行 NOR 闪存的版本,为了方便修改 uboot ,只好换成 SPI 闪存,这样也好趁机换个大点的。
动手前请先在 OpenWRT 里备份 /dev/mtdblock0 、/dev/mtdblock1 和 /dev/mtdblock2 这三个分区(即 uboot 、uboot-env 和 factory )。factory 分区待会还会用到。
开门见山,直奔主题,先把旧内存卸下。
即使之前习得了徒手只用烙铁卸内存神功,但是把这玩意弄下来还费了点功夫,一是电源脚下面铜泊面积大,热容量高;二是旁边紧挨着的花花草草太多了,只好小心翼翼地操作。
新内存上位。用的是EM63A165TS-6G ,CL-6 的 SDRAM ,和 3G150M 保持一致。
看到有人的毕业设计做的是基于 RT3050 的板子,用的 CL-7 的 SDRAM ,鉴于 CL-6 的内存不好买到,CL-7 的也可以试试,
清理一下松香,然后厚颜无耻地给出“天衣无缝”四个字。
接下来就是换闪存了。如果你认为这下有容易活了你就大错特错了。卸下原来的并行闪存只是第一步,接下来还需要重新设定 RT3050F 的启动配置、编译 SPI 闪存用的 uboot 、烧写 SPI 闪存,最后才是焊上 SPI 闪存。
Ralink RT305x SoC 的启动配置由地址线上的上拉/下拉电阻控制。SoC 上电复位后会先把地址线配置成输入,读取电平值,拷贝至内部的控制寄存器,然后再程序启动。这个过程叫做 boot strapping ,很多 SoC 都有类似的设计,如 Intel 的 IXP420 也是一样。只可惜 IXP420 不支持 SPI 闪存,我的 WRT300N V2 把闪存写坏以后就永久地变砖了。
RT305x 的启动配置信息如下表( * 表示默认设定):
引脚 | 描述 | 赋值与含义 |
---|---|---|
MA[7:0] | 测试代码,仅限调试使用 | 00000000* |
MA[9:8] | 引导选项 | 00 :从外部 16 位并行 NOR 闪存引导* 01 :从外部 8 位并行 NOR 闪存引导 10 :从外部 NAND 闪存引导 11 :从内部 ROM 代码引导 |
MA10 | CPU 时钟频率 | 0 :320MHz 1 :384MHz* |
MA11 | 保留功能 | 0* |
MA12 | 处理器端序 | 0 :小尾( LE )* 1 :大尾( BE ) |
MA13 | 是否使用 PLL | 0 :使用* 1 :不使用 |
MA14 | 引导地址 | 0 :0x1FC00000* 1 :0x1F000000 |
MA15 | 保留 / ROM 代码功能设置 | 0 :从 PXE 引导 iNIC 1 :从 SPI 闪存引导 |
MA[17:16] | 内置交换机千兆口功能 | 00 :RGMII 01 :MII 10 :保留 MII 11 :保留 |
MA[19:18] | 保留 / 使用 SPI 闪存时的内存大小 | 00 :16MB(32bits) 或 8MB(16bits) 01 :32MB(32bits) 或 16MB(16bits) 10 :64MB(32bits) 或 32MB(16bits) 11 :4MB(32bits) 或 2MB(16bits) |
MA20 | iNIC 内存大小 / 使用 SPI 闪存时的内存位宽 | 0 :2MB / 16bits* 1 :8MB / 32bits |
MA21 | 使用 iNIC / SPI 闪存时的内存配置方法 | 0 :从 MA20 / MA[19:18] 中获取* 1 :从 24Cxx EEPROM 中读取(类似 PC 的内存条) |
可以看到一个细节,就是 SPI 闪存里的内容实际上是由 ROM Code 引导的。而 ROM Code 会事先决定板子的配置再交给 uboot ,所以在给 SPI 闪存版本的 RT305x 机器编译 uboot 时不用指定板子的内存大小和位宽。另外,ROM Code 会对 SPI 闪存中的 uboot 镜像做校验,所以这时烧入的 uboot 就不是 Raw binary 而是完整的 uboot image 了。有关 uboot 的编译和烧录稍后会介绍。
眼尖的同学应该看到了一个超频的机会,不过 RT3050 就 16 位的内存位宽,我看还是算了吧,免得改到 384MHz 以后发热又大速度还没提升。
根据以上信息,MA[21:8] 应该被配置成 0010xx1000x011 ,其中 MA10 留原值(即 0 )。其中因为 W150M 没用到 GE 口所以千兆口的配置可以偷懒悬空,另外保留的 MA11 没给配置位(下面一张图点击放大可以看到),于是就剩下 7 个下拉和 4 个上拉,总共 11 条线。
原有的上拉/下拉电阻位非常的小,而且一端都连了大面积的电源线,非常难焊,于是就直接在闪存焊盘的地址线引脚上飞线焊接了。其引脚排列可以参见任何 TSOP-48 封装的 NOR Flash 的数据表。
自己加块板子,装好 10kΩ 的电阻,拿跟头发丝一样的漆包线飞好。
真是精密得不得了,感觉碰一下就会挂。本来不指望能避免变砖头的命运的,结果后来还真点亮了,真是命大。
可以看到上拉/下拉电阻的焊盘已经牺牲了两个,之前尝试过别的办法但是都不成功,留下了这些痕迹。
注意不要使地址线短路。如果上电以后 LAN/WAN 灯直接亮起,基本就是这块出问题了。
接下来在正面对着 1 脚的点点焊上 SPI 闪存就行了。最开始上了片 MX25L6445E ,本指望把闪存升到 8MB 的,结果发现点不亮机。本以为是飞线法破产了,结果拿收音机一听发现有很大的噪声,而且周期性地出现、消失,像是在不停地重启。再一想,RT305x 的各种 uboot 好像都不支持 MX25L6445E 啊?
于是只好乖乖地换上 4MB 的 MX25L3205D ,还好买闪存的时候留了一手。闪存已经烧入了 3G150M 的镜像,上电试机出现了熟悉的流水灯,接着 AP 启动成功。
为了让路由器能当打印服务器( p910nd ,几乎不耗资源,毫无压力,就是兼容性差了点),所以要把 USB 加上。
这是淘宝上买来的 USB 插座。
装上去刚刚好。
两个保险电阻焊上,直接短路就行了。
USB 插座正背面的供电电路加上。
这里还有若干电阻要加。首先是 B1 位上的 1.0kΩ 电阻,然后是 R6 上的 8.2kΩ 和 R9 上的 4.7kΩ 电阻。没这些 USB 是不会工作的。
剩下俩电阻的焊盘太迷你了,咱搞不上去,只好单独弄块板,然后再飞线。板子直接贴 RT3050F 丫脸上。
微距特写,有个焊盘差点就被我弄报废了。
赶紧上高温胶带,贴上护好。
在外壳上对应 USB 插座的位置上开个槽(本来想打个孔的,结果壳子太脆,上面一溜断了)。
传说中的效果图,还不错。
下面讲讲软的,uboot 的编译和刷写。懒人请直接去找 3G150M 的编程器固件刷写,再下载 uboot 的二进制镜像,启动时按 9 用 TFTP 换掉 uboot (流行的镜像里那个 uboot 貌似有问题)。
先给懒人几个 uboot image 的连接:
Ralink SDK 3.3.1.0 / Ralink SDK 4.0.1.0 (开机自检无流水灯 LED ,要等 OpenWRT 启动完后才有 LED 亮起)
Tenda 3G150M ( TFTP 刷固件会在传送完后死机,TFTP 刷 uboot 则正常)
Tenda W150M (没试过)
XLLMOD (支持的闪存最多,但是开了 LAN/WAN 分区,在 W150M 上 Linux 引导之前无法使用网络)
3G150M SPI 版编程器固件 / W150M SPI 版编程器固件
接下来是正经事。要编译 uboot ,首先要先搞到 Ralink AP SDK 里面的 uboot 源码和 toolchain 。uboot 的官方源码不包含 RT305x 的支持,而 Ralink 的 uboot 不用自家的 gcc 3.4.2 toolchain 编译的话以太网功能可能会出问题,所以只好原封不动地照做。编译时先 make menuconfig ,选择 RT3052 ,闪存类型选择 SPI ,去掉双镜像和 LAN/WAN 分区功能,打开 USB 支持。还可以编辑 config.mk 来打开一些附加的功能,不过似乎开了内存测试以后编译不通过。
最后就得到了上述的 uboot image ,用 0xff 扩展到 192KB ,再加上原先的 uboot-env 和 factory ,就可以用编程器烧入到闪存里了。
接下来无非就是用 uboot 的 TFTP 功能写入 OpenWRT 并引导了。拿 8MB 的随机数据塞进 tmpfs ,确认内存没问题,然后在家里又连续跑了几天没死机,可以说已经成功了。
请教一下:
XLLMOD (支持的闪存最多,但是开了 LAN/WAN 分区,在 W150M 上 Linux 引导之前无法使用网络)
如果用编程器刷XLLMOD,在uboot环境木有网络,怎么TFTP?
所以这就是问题所在。我现在用的是自己编译的 Ralink SDK 4.0.1.0 里面的 uboot 。XLLMOD 可以用在其它带 LAN 口的 RT305x 的路由器上。
当然,你也可以在电脑上把 bootloader 、env 、factory 和 firmware 按分区表拼成一块一起用编程器塞进去。这样的话 XLLMOD 可以用在 W150M 上。
感谢赐教!本来买一堆SPI来改WR703的,W150M这货自从有了703后就黯然失色了不少,结果逛到博主这边,发现还能利用利用。感谢!
看了下,应该是自己记错了,我那个跟你的一模一样是4M并行FLASH的
看了你的过程,彻底放弃了。那堆上/下拉的电阻就够头疼的了
刷了你编译的并行版OPEN后奇慢无比,应该是内存不够用,执行个/etc/init.d/firewall stop都会重启,在rc.d里删了firewall后才算正常点;
后来刷了DD固件,速度稍微正常点。我已经换了32MB内存但是UBOOT只认16MB,有没有简单点的方法识别到啊?
编译并口闪存版的 uboot 然后刷上。这是我给 W150M 编译的版本,不保证能用,一旦刷成砖比较麻烦。
http://dword1511.info/dword/bootloaders/rt305x/nor_ralink_apsdk4010_32m_16b_lanonly.bin
您好,我有块RT3052板是SPI 4M+64M sdram,但是找不到能够使用的openwrt或DDWRT,你能帮忙提供一些指引吗?谢谢!
请邮件回复!非常感谢!!!!!!!
非常仔细的看了博文,还不是很明白
1.原版的W150并行接口NOR闪存,没有看清楚你改用串口flash的电路。原版的PCB上留有SPI flash的接口,是不是直接焊接上4m SPI就行了,还需要改电路吗
2.博文里的下载链接3G150M 编程器固件(3g150m_spi_4m_32m_raw.bin)是你自己编译的还是网上流传的
3.似乎没有看到你编译的openwrt固件的链接。
1. 除了焊上 SPI 闪存以外还需要修改 bootstrap 的上拉/下拉电阻,以便使 SoC 从 SPI 闪存引导,请看原文。
2. 这是网上流传的 Tenda 原厂固件,救急用的。
3. 我只编译了一份最基本的不带 LuCI 和 opkg 的固件,你要么?
修改 bootstrap 的上拉/下拉电阻,这部分我没有看懂。不知道你到底是怎么焊接的
你能不能就你的拆机图告诉我一下,这些电阻要怎么重新移动位置
http://blog.dword1511.info/wp-uploads/2013/02/P1120341.jpg
感谢
正是因为这些电阻很难移动位置(板子热容量大,走线也看不太清),所以我才单独配了块板子,然后从并行 NOR 闪存焊盘处飞线。
如果你有功夫直接在板子上焊好的话,可以看这篇文章里的 3G150M 拆解,照着样子移动就行了:
(mydigit.cn) [网络]拆了新Tenda 3G150M,上高清图!
另外 TSOP-48 封装的 NOR 的 pin out 都是一样的,随便找个 datasheet 就可以找到地址线的位置了。
请问博主,3050的SPI可以带多个设备么?比如我想在SPI flash基础上再加一个SPI的LCD,用GPIO做切换,能做到么
应该是可以的,不过估计 uboot 和内核驱动都要改吧。实在不行找几个 GPIO 做 bit-banging ,反正 LCD 对速度要求也不高。
兄台,我看到你这篇文章。自己有个ip-com w841r的路由(rt3052f),刷了腾达的w306r版openwrt后,发现cpu标记为3050,320MHz。
是不是可以通过编译uboot,把cpu提高到384MHz呢。
这里有我拆解和刷openwrt的经历,http://forum.anywlan.com/thread-227302-1-1.html
可以看到里面的配置,我敢肯定这个V2版的是3052f,因为拆过另外一个w841r。
望兄台指点一下编译uboot.
两片内存 32 位的位宽必然是 RT3052 。你可以 dmesg 查看启动信息或者 cat /proc/cpuinfo 确认一下 CPU 和频率,这个不应该被识别成 RT3050 或者 RT3350 。
如果识别成了 RT3050 ,可以尝试下 trunk 的 W306R 固件,不过注意最近的 trunk 有个 bug 好像在 RT305x 上起不来,要刷的话备个 TTL 线以防万一。
给个应该能用的:http://dword1511.info/dword/openwrt/rt305x_w306r_phys_full.bin.bz2
硬件方面,查闪存 A10 引脚连接的 bootstrap 电阻,如果是拉低的则需要移至拉高的位置上。
Ralink APSoC SDK 里的 U-boot 没有提供 RT305x 的 CPU 频率配置选项,要通过 U-boot 改掉的话需要一些 hacking 。
==================================
话说这年头还有给 32MB 内存的该算是业界良心了吧,还是 32b 位宽。君不见那一大票 VxWorks 的机器,都得自己改内存和闪存才能用。
RT3052 开到 384MHz 强烈建议加个大点的散热片,发热真不是一点大,把 Atheros 全系列 400MHz 的都秒杀了。
官方固件第一次改刷 OpenWRT 的时候都要刷 factory.bin 。
最后,Ralink 的无线 11n 性能和驱动都不咋地,觉得卡或者不稳定降成 11b 看看,或者改用 trunk 编译的 W306R 固件。
兄台,刷了你的bin很好很强大。我用dmesg查看,还是识别出3050,320MHz。
按照兄台的意思,提高频率到384MHz,只能调整硬件的bootstrap电阻?
翻了电路图,看不懂那个电阻是调频率的。R10?怎么还有RA10。能指点一下吗?
按照电路板上的走线查找图中闪存红框内引脚连接的一只电阻。应该有两个焊盘,分别是拉高和拉低。
另请参阅 RT305x Datasheet Rev. 1 的第 21 页。
兄台,我看到的datasheet里面的布局不是你图上这个。M17针脚,就是A10控制脚。但电路上找这个还真的不容易。
我想问问:
1.如果不给A10电压,或者直接断路,是不是就默认384MHz?估计找到位置了,要给电压也不容易。
2.如果改了频率,要不要更新uboot?
1. 不知道,没试过。
2. 据我说知,RT3050 跟 RT3052 的 u-boot 是完全一样没有任何区别的。
顺便说一下,上图是 NOR Flash 的引脚图。
如果你想尝试,这里有一个应该可用的 u-boot ,变砖概不负责:
http://dword1511.info/dword/bootloaders/rt305x/nor_ralink_apsdk3310_32m_32b_all.bin
另外,你的无线是 2T2R 的 300Mbps 吗?
先谢过兄台的资料,我研究一下。
应该是,2T2R,天线是2跟的,而且支持300M,这个就和腾达的w306r应该一样的。腾达代工的。
http://dword1511.info/dword/bootloaders/rt305x/
你的空间里面,有个sdk 4.01的uboot,会更好吗?
刷uboot是不要看nor flash和spi flash区分不同的uboot?
我这个Mx29Lv320EB,不知道是哪种。
你的这个是并口 NOR Flash ,刷我给的那个就可以了。4.0.1.0 的有的板子上会出现 emergency key 总是处于激活状态、无限重新刷机的情况。
发现openwrt锁死了u-boot.后来发现u-boot不能随便刷,好像要改mac之类的。这个还是先不敢刷。
3.8.9的trunk是挺好,就是负载高了点,很容易超过1.
不应该啊,你在做啥?
另外刷 u-boot 需要 TTL 线
哦。我看到有些人用无锁openwrt来刷uboot,不过还是觉得不能随便刷uboot。
负载,真的没做什么,就开着路由,看实时。平均下来都在0.4x水平。
可以看看进程。要不然就是有些驱动还不成熟。Ralink 总体用着没 Atheros 舒服。
并口 NOR 刷 u-boot 是不太好,万一砖了编程器很贵。SPI 闪存就不一样了,随便刷,刷坏了拆下来上编程器。现在 SPI 编程器都只要 20 多了。
ttl怎么刷uboot?
兄台,多谢你的指点。终于把频率调到384MHz了。
具体操作在http://forum.anywlan.com/thread-228463-1-1.html
感谢兄台的帮助。
祝贺。我也是第一次知道 RT305x 的频率设定影响型号的识别。
兄台,发现一个小问题。刷过trunk版本之后,不能用adsl拨号。
之前的一直在用固定ip。
降低版本,用回1209正式版,也有不能拨号的情况。有时候成功,有时候失败。。。搞不懂。
你确定不是猫的问题?
猫没问题,我直接接线拨号,还有另一个路由也是正常的。
因为w841r带去公司,做静态ip的。一直没留意。
OpenWRT 恢复出厂然后重新设置呢?感觉 PPPoE 一般不会出问题啊
中途想刷回原版变砖,用ttl修复openwrt修复后,曾拨号,后来又不行。
也许是设置的问题,可以检查下网线连接(确定对应端口的灯亮了)和接口的设置。
后来我在指令系统下,修改了/etc/config/network
在wan的pppoe拨号下,添加了 option macadd ‘xxx’
克隆了笔记本的mac,重启就能拨号了。
疑惑的是,我怎么看原有openwrt 里面wan的mac呢。。。
运营商锁 mac 了吧。原有的 mac 存在 factory 区里面。参见:
https://dev.openwrt.org/browser/trunk/target/linux/ramips/base-files/etc/uci-defaults/02_network
后来我发现trunk版本有很多小问题,比如软件包列表,还有提示保存的条目。这些js的问题挺多的。
是有些。trunk 嘛。主要是 LuCI 的问题。
能自动更新luci的吗?
我最近的trunk,能让rt3052打开多个Wifi ap。
更新 LuCI 的话是没有问题的。如果涉及到内核或者内核模块的话建议重刷。另外 rt2800 的毛病貌似是不能 AP+STA ,多 AP 没尝试过。
请问RT2800的AP+STA不能一起用是说Openwrt目前不支持,还是说硬件设计上没实现这个功能.
应该只是驱动问题,我记得 Ralink APSoC SDK 里面有一个私有的 APSTA 驱动。
兄台,想问问你有没有试过rt3052增加usb接口的?
RT3050 跟 RT3052 基本是一样的,仅仅内存位宽和无线有区别。
但我这个没有看到预留的位置http://pic.yupoo.com/liveup/D0Ky1Jp6/DjJ4j.jpg
要怎样飞线呢?
不同的板子不一样,有的可能压根没留茬
我有个3052的路由 预留了usb部分 但是焊上插座加上5v电压,u盘就是不识别
找人刷了编程器的n13u b1的固件 (路由不是n13u 山寨的机器)然后刷了openwrt还是不识别,u盘拔凉拔凉的。
还要把吹下来看走线?
SoC 附近要加几个电阻的
这里图片
我照3050的pdf 把pcb反面的R18位置 加了电阻 由于没有切片电阻 也没有正好的色环电阻 只好用两个2.2k电阻代替串联了一下 isb还是没反应
不知道串联的电阻有没有影响
这是拆机图 http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=80388&extra=&page=1&mobile=no
你可以把目前的状态照一下,最好清晰一点
图片地址
http://yun.baidu.com/share/link?shareid=2497485996&uk=1879378599
机器的TTL信息和RT3050的PDF
http://yun.baidu.com/share/link?shareid=3254121250&uk=1879378599
USB部分在第三页上
会不会是uboot的原因
也有可能,貌似编译 ralink 的 uboot 的时候里面有 USB 的选项
看TTL内容里面 貌似加载了USB 不懂了…
要不刷个uboot试试? 但是怎么刷呢
内核识别到了 DWC-OTG ,但是初始化失败了,应该是哪个电阻没弄好,查下电路和焊接。uboot 没刷过的话尽量别刷,新手第一次刷比较容易砖,并口闪存又不好找编程器
我看别人的ttl信息不开头都会有 config usb… 这么一句
可以试一下,但是要小心。注意闪存类型,内存大小和位宽。
不知道用你的nor_ralink_apsdk4010_64m_32b_all.bin可以不? 能不能把机器给你 帮我搞定啊 我就这两下子了 哈哈
我不太记得编译的时候开了 USB 没……
有qq号吗 发邮箱里 用qq行吧? 麻烦了
唉 又弄了一下午 还不行
有时间帮个忙给鼓捣鼓捣吗?
检查了一下 nor_ralink_apsdk4010_64m_32b_all.bin 似乎是带 USB 支持的(不过手头没机器没法验证),你可以试一下。另外 4.0.1.0 的 uboot 可能会每次启动都进入应急刷机模式。uboot 启动的时候如果出现
** Error: D+/D- is 1/1, config usb failed.
那就是某个电阻没焊好,或者缺了哪个电阻。
谢谢 刷uboot需要改什么东西吗 比如mac? 我新手 不太懂啊
网上应该有教程
请问nor_ralink_apsdk4010_64m_32b_all.bin 是4Mflash还是8M的?
Ralink 的 uboot 不区分闪存大小,所以要注意刷固件的时候不要超过 闪存容量 – 384KB
这样啊 谢谢 还需要改mac pin码之类的吗?
刷 uboot 不会改写 factory ,应该不用。
已经刷了4.0.1
U-Boot 1.1.3 (Apr 22 2013 – 22:43:48)
Board: Ralink APSoC DRAM: 64 MB
relocate_code Pointer at: 837f8000
config usb..
flash_protect ON: from 0xBF000000 to 0xBF0232F7
flash_protect ON: from 0xBF030000 to 0xBF030FFF
*** Warning – bad CRC, using default environment
USB还是那熊样。。。。
确认一下你的固件有没问题吧,因为 uboot 没报错
刷的N13U b1的编程器固件 然后web下刷了open
换了这个uboot还是显示N13U 端口还是倒序 这些信息是在factory里面吧。。 这个区域可以TTL刷写吗?
你是说 LAN / WAN 口顺序吗?那需要调交换机的 VLAN ,OpenWRT 里面有设置
对lan wan口顺序不对
设置vlan后 恢复出厂设置又就变回去了吧
factory这里面的东西怎么修改啊。。。
这跟固件自身的默认设置有关,factory 里面只有 MAC 跟无线的一些参数。
那就在换个固件试试 谢谢了
出现一个新问题 插U盘开机的时候一直循环下面的代码
hub 1-0:1.0: over-current change on port 1
dwc_otg: Device Not Supported
dwc_otg: Device Not Supported
dwc_otg: Device Not Supported
dwc_otg: Device Not Supported
dwc_otg: Device Not Supported
TTL详细信息:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=131347
是驱动原因?
感觉还是哪个电阻没搞对,或者板子作了特殊的设计,需要一些额外的修改
请教
0x000000030000-0x000000040000 : “u-boot-env”
0x000000040000-0x000000050000 : “factory”
这里面的东西可以查看修改吗?
我刷了一个通用的305x的固件 刷完后还是RT N13U
USB还是不能用
dwc_otg: version 2.72a 24-JUN-2008 (Patched by Lintel 2011)
dwc_otg: Core Release: 2.66a
dwc_otg: Periodic Transfer Interrupt Enhancement – disabled
dwc_otg: Multiprocessor Interrupt Enhancement – disabled
dwc_otg: Using DMA mode
dwc_otg: Device using Buffer DMA mode
dwc_otg dwc_otg.0: DWC OTG Controller
dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 1
dwc_otg dwc_otg.0: irq 26, io mem 0x101c0000
dwc_otg: Init: Port Power? op_state=1
dwc_otg: Init: Power Port (0)
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
dwc_otg: Device Not Supported
Initializing USB Mass Storage driver…
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
dwc_otg: Device Not Supported
hub 1-0:1.0: over-current change on port 1
usbcore: registered new interface driver ums-alauda
usbcore: registered new interface driver ums-cypress
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-karma
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver ums-usbat
fuse init (API version 7.13)
USB 是硬件问题,其它的在 config 区找。
能透露一下你的QQ吗 请教一下问题 谢谢了
折腾这么长时间 还是不行
你的uboot我都刷了 能启动的还是不能人USB
难道需要原厂的boot文件?
这不是 uboot 的问题,同样的 uboot 和固件用在我自己的路由器上是可以用 USB 的,应该还是硬件方面的原因。
http://www.right.com.cn/forum/thread-124711-1-1.html
这是一款同厂家的3G路由器的TTL信息 PCB相似度80% 帮忙看看有什么不同的地方吗
硬件真不知道改那里了
这个真不好看,谁知道 BGA 后面怎么走的线。RT3052 有公版电路图,百度文库上有,仅供参考。
高人能否帮个忙 我的两个w150m 都换了32M的内存和8M的SPI 闪存 用的还是原厂固件 请问如何才能让原厂固件识别32M的内存 (目前只认16M) 您能不能帮我修改一下编程器备份的固件 让它能识别32M 内存?
SPI 版的 uboot 的话改配置电阻即可
BGA 封装 看不到引脚能否 告知需动 哪个引脚?
BGA 封装 看不到引脚能否 告知需动 哪个电阻?
看闪存的引脚,改 MA[19:18] 这两条,文中有详细过程。
博主,我写了你的WAP120NF固件 OP可以跑起来 但是没无线和WAN显示未连接,请问是哪里还要设置吗?
以前用过 OpenWRT 吗?
另外 OpenWRT 的 trunk 已经修复了 RT3352 无线的问题,如果有条件推荐编译新版本使用。
基于最新SVN版本编译 LUCI里无线可以选择启用,但搜索不到信号,速率为? 另 请教 VLAN应该怎么设置呢,WAN口LED灯亮,但显示未连接,DHCP不到IP
最新,换上4M的FLASH 刷OP 无线已经正常了,最大的问题就是WAN了
我记得 WAP120NF 的有线口是没有问题的。首先确定你连接的网络是用 DHCP 的,不行换一个口看看(可能两个口弄反了)
嗯,谢谢!原来都是无线校准数据的问题,现在编译出来的固件,改了VLAN后WAN口可以正常了,弱问一下,你的那固件是用620-D1来做母体么?
差不多吧,找个 DTS 自己改一改。
请教W150M SPI 版编程器固件的PIN码是什么? 我的WCR-HP-GN刷了这个固件,能正常使用无线,但所有LAN口和WAN口失效,无心进入路由配置需要PIN码,而PIN码是未知的。
应该是 admin/admin 。W150M 只有一个有线接口,刷在别的机器上估计不能用。
0: Run bootcmd (default).
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash.
4: Entr boot command line interface.
9: Load Boot Loader code then write to Flash via TFTP.
0x00000000-0x00030000 : “Bootloader”
0x00030000-0x00040000 : “Config”
0x00040000-0x00050000 : “Factory”
0x00050000-0x00150000 : “Kernel”
0x00150000-0x007f0000 : “RootFS”
0x007f0000-0x00800000 : “Data3G”
这个boot文件可以修改第3项为默认吗? 或者重新编译一个boot文件 固件还是用原来的
貌似不能。但是 bootcmd 可以用 setenv 改掉的,默认应该是从闪存启动。
怎么改啊 求科普
机器不在手上,不太清楚,你可以 printenv bootcmd 然后自己理解下。
另外可以参考 http://www.cnblogs.com/cornflower/archive/2010/03/27/1698279.html
实现起来很麻烦吗?
不麻烦,但是机器不在手上,具体内容记不得了
能远程帮忙搞一下吗 我没有linux基础 我这里有ttl
帮帮忙吧
求助
你好,请问4.0.1.0的SDK哪里有下载,能分享个链接吗?
或者发到我的email,谢谢!!
https://gitorious.org/wive-rtnl-ralink-rt305x-routers-firmware/wive-rtnl-ralink-rt305x-routers-firmware/
这里面包含了 4.0.1.0 的 uboot ,其它内容不清楚。
谢谢!
首先感谢这篇东西 学到了很多东西 准备改下手上的W150M+ 官方固件很不爽。
我刚看了下Uboot的源码发现里面有8MB 16MB的支持了
https://gitorious.org/wive-rtnl-ralink-rt305x-routers-firmware/wive-rtnl-ralink-rt305x-routers-firmware/source/e1c158d978bff57bc482966cd3119f5583fee56e:Uboot/drivers/spi_flash.c
所以想问一下你那时候焊8MB的时候是不是没用4.0.1.0的SDK编译的Uboot的 谢谢
Ralink 的 uboot 当时支持了 MX25L6405/06 ,但是没有支持 MX25L6445 或者 MX25L12845
原来这样 明白了 谢谢
如果要OpenWrt支持改成SPI的W150M 那编译的时候dts要怎样改呢?thx
直接用 3G300M 的 profile 就行了
谢谢
我刚查了一下MX25L6405和MX25L6445的datasheet,发现他们的ID、读写删命令协议都是一样的。
uboot中只用了OPCODE_RDID(0x9F)读5个字节来获取flash的ID
而两个芯片的datasheet中这5个字节的内容都是相同的(0xc2,0x20,0x17,0xc2,0x20)
所以觉得你换6445上去不断重启有点奇怪
之前也有人试过,也没成功。也许是 timing 的问题
嗯
“根据以上信息,MA[21:8] 应该被配置成 0010xx1000011 。其中因为 W150M 没用到 GE 口所以千兆口的配置可以偷懒悬空。剩下 7 个下拉和 4 个上拉,总共 11 条线。”
这里的0010xx1000011漏了一位 看不懂具体改哪里了 所以想请修改一下 谢谢
MA11 没改,PCB 上这条线本身没留设置位,忘记写上去了
我刚修改了硬件你提供的”3G150M SPI 版编程器固件”测试成功了 但自己用4.0.1.0编译的Uboot不知道为什么 连上电源的时候所有灯都不会亮的 编译的时候我已经选了SPI 256Mbit 16位地址线的了 会不会是我ubooot-env还用回原来的?
SDK 的 uboot 不带流水灯,这个特性是 Tenda 的人加上去的。
原来这样.
应该是我编译的uboot设置有问题了.
我把”3G150M SPI 版编程器固件”的前192k填充成FF再把SDK编译出来uboot.img放在头部,接上电源过了五分钟灯都不亮,电脑有线网卡也显示网线未插入
大概是内存设置的问题。config 里面显示的内存数量不一定是对的,选小一些试试看。另外调 bootloader 的时候可以考虑弄根排线接个 SPI 闪存插座上去,免得经常拆焊弄坏板子。
最近闲来无事,翻出前年买的w150m按博主的教程修改一番,确实好用。感觉博主的openwrt有问题,测试10M宽带下载不能满速,hg255d测试1.5M/s,这个只有600K/s。又刷DD-WRT(BUFFALO WCR-GN 标准版)运行正常,满速下载。编程器固件:http://pan.baidu.com/s/1i3Lv3eP
不知道博主是否有空修改个8M闪存的全功能openwrt
目前手头没机器。以前的 OpenWRT 在 Ralink 平台上无线性能是很不怎么样。
Flash component: SPI Flash
翻出箱底的150,竟然是spi2m的,就是不知为什么,直接刷会卡在这里
done
Bytes transferred = 2490372 (260004 hex)
NetBootFileXferSize= 00260004
请博主给个见解
标准的 W150M 应该是 2M ,只有一部分 HP 定制版是 4M 。
楼主有没兴趣研究下 wl 351 最近很火
千兆 rt3052 淘宝68包邮送电源
看拆机板子上似乎也有spi座子
RT3052 蛮鸡肋的了。现在用的主力都是 AR934x 。
看到楼主的做法,一看就是大神级别,本人有个W150M+,无线路由功能可以使用,但是其他功能能获得上级路由IP,也能用无线连接设备,就是不能上网!不知是什么原因,请大神指点……
W150M+ 没用过。Tenda 的官方固件 bug 蛮多的,可以 reset 重新配置一下试试看。
你好!我有个w150+,想改造成3g150,现在请教一下你的usb部分的c48 c49 c50分别是多大的,还有r7 r8谢谢了!
是标准版2m的spi的
C48, C49, C50 都是滤波电容,只要适当地大就行了,有 10uF 的更好。R6, R7 为保险用,一般为 20Ω 左右,实在找不到也可以用导线代替。
为了加入 USB 相关的功能你应该需要更换闪存,2M 是不够的。
谢谢你的回复!准备更换成4m32m的。还需要注意什么!
EM63A165TS-6G 32MB sdram
MX25L3205D 4MB spi
找了一条sd256(pc133)的内存,芯片是hy250256800at-h共8片,不知道能不能用。
型号可能有几位读错了,搜不到,不过一般内存条上的颗粒都是 x8 位宽,路由器上需要 x16 位宽的,不能用。
谢谢你的指点!还准备没事把老机的5200双128换成512/128,经你提醒,一查发现如果我把找到的内存芯片换上会变成512/64,哈哈!
那我先找东西着,换上后如果遇到问题,请教你!
博主你好!我已将我的w150m+改为3g150m+。芯片为mx25l320+em63a。通过修改识别电阻已成功识别32m ram。现在遇到情况为:
1.无论3g150固件、ddwrt、openwrt都不能pppoe拨号上网,其他没试。原厂固件可web更新。原厂固件是你提供地址的那个。
2.用ttl线多个软件读取均为乱码。
问题一,你可以看一下有线端口是不是挂了,用网线把路由器和电脑连起来,看看电脑网卡的灯亮不亮。
问题二,波特率设成 57600 应该就没问题了。另外注意连接地线。
连接网线电脑口灯亮。能够配置并识别。
好的我试试看,谢谢!
那 PPPoE 不能使用是不是因为 ISP 限制 MAC 地址?
没有限制,我的其他的路由器就能使用。
4m W150M 想刷DD,能指导下吗?
抱歉,对 DD 不熟
Thank you for your useful posts. I would like to ask you if resistors could be placed on MA9 and MA8 even with NOR parallel flash chip installed to test boot from Rom like and if you have documentation or have tested some values in test_code bootstrap debug writing to SYSCTL_SYSCFG register 0x10000010 (bits 15:8).
Thank you for your useful posts. I would like to ask you if resistors could be placed on MA9 and MA8 even with NOR parallel flash chip installed to test boot from Rom like this and if you have documentation or have tested some values in test_code bootstrap debug writing to SYSCTL_SYSCFG register 0x10000010 (bits 15:8). Full story
Having a NOR flash installed should not be a problem, the bus is shared with RAM, although I have not tried it. I have no experience with the boot ROM either.
膜拜啊 我有个巴法络 g300n 不会刷dd啊 http://forum.anywlan.com/thread-351789-1-1.html
抽空帮我看下呗 是否可以直接下掉 原来闪存换spi闪存
谢谢了
大神,请教下,您有推荐的uboot么?编程器什么的都有,内存也换完了,我直接往新闪存刷uboot好不好?谢谢
最好把 uboot 和 factory 一并写入,否则后面很麻烦。有编程器固件是最好的。
我的d-link的路由器 开机ttl显示
*** Warning – bad CRC, using default environment
============================================
3052 – Boot (Dec 6 2010 – 17:12:32)
——————————————–
DRAM component: 256 Mbits SDR
DRAM bus: 32 bit
============================================
Press any key to stop autoboot: 1
0
Check CRC Fail!
RT3052 #
给分析下是什么坏了 flash芯片已经更换 并重写同型号好的路由器编程器读出的数据
env 区的东西不对,saveenv 试试。在要么就是没有 env 区的路由刷了带 env 的 u-boot 。
多谢指点两个路由器是同型号同版本的固件应该一样
这个是路由器的命令 我不会用linux 麻烦大神给教下用哪个指令 最好带上 参数 谢了。
? – alias for ‘help’
bootm – boot application image from memory
boottftp – boot image from tftp
cp – memory copy
erase – erase FLASH memory
go – start application at address ‘addr’
gpiocheck – check gpio
help – print online help
md – memory display
mdio – Ralink PHY register R/W command !!
mm – memory modify (auto-incrementing)
mw – memory write (fill)
myboot
nm – memory modify (constant address)
printenv- print environment variables
protect – enable or disable FLASH write protection
reset – Perform RESET of the CPU
run – run commands in an environment variable
saveenv – save environment variables to persistent storage
setenv – set environment variables
spicmd – read/write data from/to eeprom or vtss
tftpboot- boot image via network using TFTP protocol
ubootupdate – update uboot
version – print monitor version
回大神 运行saveenv 果然有效 第一个错误没有了 现在还有一个错误 麻烦再给看下
============================================
3052 – Boot (Dec 6 2010 – 17:12:32)
——————————————–
DRAM component: 256 Mbits SDR
DRAM bus: 32 bit
============================================
Press any key to stop autoboot: 1
0
Check CRC Fail!
RT3052 #
固件拿 u-boot 重新刷一下吧。
怎么刷啊 博主 给教程或例子吧 我手上只有编程器读出的固件可以刷进去么?
官方的固件应该可以刷进去,OpenWRT 的 wiki 那里有教程。
看了大半天,我终于看明白了。也知道自己怎么改造路由了,谢谢你的帖子,给我指明了方向!!我改造的是斐讯fr606,使用的是nand flash,给刷坏了,想改成spi flash。
博主,我一个W150M开机不断重启,求助
感谢大神,学习了,最近瞎玩华美hameA5,想做双flash叠加成64MB,用的两片三星芯片,硬件弄好了,焊工没问题,实验成功了来反馈,感谢大神的uboot。