找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 10306|回复: 114

CETRON CT3003的研究过程及求助

[复制链接]
本帖最后由 keke1023 于 2023-6-14 17:01 编辑


感谢237176253和thunder35的指点,已经成功啦~

终于成功了,为这个想了一晚上哈哈哈

交换机正常,wan口终于能用了

分区正常,实际上没有最后三个,是忘了改360T7后面这部分所以遗留下来的
------------------------------------------------------求助的分割线-------------------------------------------------------------
之前看到了CETRON出的CT3003这个型号的路由器,在闲鱼上113包邮买到一台,因为猜测它和360T7的配置一样,就想看看能不能研究出不拆机开telnet并且刷入360T7固件的方法
两者实在像的离谱

先说结论,经过研究可以做到不拆机开telnet,但不能直接使用360T7的固件,虽然硬件配置一样,不过交换芯片MT7531AE的配置不同

下来就一步一步跟大家分享一下整个探索的过程,可能会对新手有些启发
首先拆机后和360T7进行对比,相信大家都会认为这两个机型只是换壳(甚至壳都很像),应该是一回事


硬件配置完全相同,就连ttl接口的位置都一样,于是为了研究就先焊上插针以备连接


先看一下原厂的系统,这里比较奇怪啊,我看到别人发的截图,这个机型是有一个跟360T7界面基本一致只是颜色不同的固件的,而我手里这台并不是



原厂固件也是基于openwrt的luci做了一些改动,对于各种可以输入的地方都有很严格的数据格式以及长度的判定,所以没找到什么注入的点
就转头先从ttl下手,通过跟360T7一样的中断进入failsafe模式然后mount_root,进行文件的修改,这里不同于360T7,并没有local debug参数,所以直接就passwd root修改一下密码
然后正常启动系统,从ttl进行登录,再通过
/etc/init.d/telnet enable
/etc/init.d/telnet start
打开telnet就行了,现在可以用电脑通过telnet连接上去进行进一步的探索和修改


首先看了一下/usr/lib/lua/luci/controller/,找到了一个隐藏页面,但很可惜不是用来打开telnet或者ssh的,是一个file browser,而且只能看目录结构里的文件名,也不可以下载或者查看其他信息


然后就开始测试配置的备份和恢复,通过/usr/lib/lua/luci/controller/SystemTools/SystemTools.lua找出备份的脚本为/bin/config_save
再通过/bin/config_save了解到备份的过程是先正常备份再通过openssl base64编码
于是把正常备份出来的文件打开看了一下,是包括rc.local的,那么就可以通过构造一个合适的启动运行的指令来每次启动打开telnet,这样其他的设备只需要恢复配置然后重启即可实现,不再需要拆机了

结果测试了几次发现并没有运行rc.local里的指令,仔细一下rc.local原本是没有执行权限的,难怪不运行,得先chmod +x /etc/rc.local
然后又发现就算/etc/init.d/telnet enable后,/etc/rc.d/里确实已经有telnet了,但是开机依然是没有自动打开的,后来发现是原本设定的优先级START=90还不够靠后,需要改成99,但是备份文件里是不包括init.d文件夹的,所以需要通过rc.local执行一个sed指令来实现
sed -i 's/START=90/START=99/' /etc/init.d/telnet
而且修改后需要重新建立到rc.d的链接,就先disable再enable一下,就会在rc.d下看到S99telnet的链接了
最后rc.local里是这四条指令
/etc/init.d/telnet disable
sed -i 's/START=90/START=99/' /etc/init.d/telnet
/etc/init.d/telnet enable
/etc/init.d/telnet start
实测恢复出厂设置后,通过恢复配置文件,可以成功打开telnet(就是恢复完会自动重启一次,这一次是首次启动还不能打开,要等首次启动完成后再重启一次)


打开telnet后,还可以进一步联网安装dropbear来打开ssh,会更加方便操作
echo arch aarch64_cortex-a53 300 >> /etc/opkg.conf
cd /tmp
wget https://downloads.openwrt.org/re ... ch64_cortex-a53.ipk
opkg install ./dropbear_2019.78-2_aarch64_cortex-a53.ipk -f /etc/opkg.conf --force-depends
/etc/init.d/dropbear enable
/etc/init.d/dropbear start


下来就可以通过scp来备份一下各个mtd分区的内容
通过cat /proc/mtd可以看到,它和360T7的分区布局有一点不同,实际上ubi开始后面的不用管,因为刷了改版108M的FIP后面的都会变,主要看的就是前面的分区,CT3003多了一个art分区,但是art+Factory总的大小和360T7的Factory大小一样,也就是如果要刷360T7的固件,这里需要修正一下两个分区的内容(因为也并不能直接用360T7的固件,这里就无所谓了,知道一下怎么判断就行)



修正后,刷入FIP和固件


启动正常,无线正常(这就是为什么要修正Factory的原因),LAN正常,WAN在交换机里可以看到识别出了连接,但是没有数据传输无法获取地址
换了好几个固件,甚至都刷成WR30U,情况都一样,我开始以为是硬件问题,网变坏了?将WAN绑定到其他端口时也一样不能使用,但是这些端口作为LAN都正常
只好在uboot下把原厂的整个闪存备份刷回去,
setenv serverip 192.168.1.100
setenv ipaddr 192.168.1.1
tftpboot 0x46000000 mtd0.bin
mtd erase spi-nand0
mtd write spi-nand0 0x46000000 0x0 0x8000000
WAN口又正常了,说明不是硬件问题,而是dts的问题
我这才仔细的对比了两个机型的交换芯片MT7531AE周边的接线,发现确实不同,具体的差异在于交换芯片到主控的两路sgmii(分别是P5和P6),360T7接了两路,而CT3003只接了一路P6


也就是说360T7的WAN(eth1)是通过P5连接到主控的,直接使用它的固件那么WAN相当于跟主控断开,所以没有数据


下来就开始着手从原厂固件里提取CT3003的dts,这里实际上能提取到的是dtb文件,通过搜索它固定的文件头D00DFEED找到它的开端,再通过后面的totalsize来确定它的文件大小,剪切出来后用dtc转成dts格式就可以开始阅读了


确实dts里也显示出了它WAN和LAN都是通过P6连接到主控的,P6对应的eth0本身就是4个LAN口,划分出一个给了WAN,刚好这个机型一共就4个网口




研究进行到这里,我测试使用hanwckf大佬的源码+原厂提取的dts(按照源码其他机型dts修改了一下)进行固件的编译,也同时使用他的FIP源码修改了一个CT3003的大分区FIP,结果还是没能正常的驱动网口,现在是WAN和LAN都不能用也没有wifi了哈哈哈,ttl下看到的日志停留在14秒左右不再进行,可以进控制台,下来就得求助一下@237176253 大佬, 这个dts和02network到底该怎么写啊我写的ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "lan4"


附件里包括原厂系统的/etc/config/network的内容,原厂提取的dts,改写后的dtsi(两个不同分区的dts没放),以及启动失败的log,如果各位对这方面比较了解的话请不吝赐教

过程中看到了佐大的这篇OpenWrt MAC、PHY、MDIO、MMD寄存器相关概念 - OpenWrt开发者之家很有帮助,希望这次能借机搞明白这几个概念


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +3 收起 理由
viru*** + 2 让我们一起面朝大海、花开花落…….
一枚*** + 1 一看就是觉得高端、大气、上档次!.

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
他是用一条sgmii 在上面虚拟出wan和lan,你可以刷237大佬的一个给360t7定制的USB3.0固件,那个固件就是弃用一条sgmii,在一条sgmii上面划分wan和lan,然后被弃用的那条变成USB3.0
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
thunder35 发表于 2023-6-14 15:03
他是用一条sgmii 在上面虚拟出wan和lan,你可以刷237大佬的一个给360t7定制的USB3.0固件,那个固件就是弃用 ...

好嘞,谢谢~对交换芯片这方面没接触过,不知道还能各种配置
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

你配成dsa了。这种wan是用的7981自带的phy,wan没有接7531。

参考h3c配置

点评

[attachimg]629397[/attachimg]大佬,看pcb,这个应该是你搞USB3.0的那种配置吧  详情 回复 发表于 2023-6-14 16:41
原来如此,我去修改试试看~谢谢指教~  详情 回复 发表于 2023-6-14 15:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
237176253 发表于 2023-6-14 15:32
你配成dsa了。这种wan是用的7981自带的phy,wan没有接7531。

参考h3c配置

原来如此,我去修改试试看~谢谢指教~

点评

感谢感谢,改了一下成功啦~虽然还没完全明白mac,eth,phy,tag untag这几个概念哈哈哈,所以两个mac就是7981上的两个口,p5p6是7531上的两个口,有的机型是这两者互相连接,一个给wan,一个给四口lan,而有的机型是一  详情 回复 发表于 2023-6-14 16:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

237176253 发表于 2023-6-14 15:32
你配成dsa了。这种wan是用的7981自带的phy,wan没有接7531。

参考h3c配置

大佬,看pcb,这个应该是你搞USB3.0的那种配置吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

7981 SOC自己还有一个1G的PHY 这是这个PHY直连WAN口 交换机芯片提供LAN口 交换机芯片用2.5G的SGMII口连接到7981的GMAC T7改USB是把第二SGMII口定义为USB口 但是没有预先让WAN口直连7981自带PHY 所以把LAN的2.5G SGMI  详情 回复 发表于 2023-6-14 17:00
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 keke1023 于 2023-6-14 17:10 编辑
keke1023 发表于 2023-6-14 15:46
原来如此,我去修改试试看~谢谢指教~


感谢感谢,改了一下成功啦~虽然还没完全明白gmac,eth,phy,tag untag这几个概念哈哈哈,所以就是7981上的两个gmac,p5p6是7531上的两个口,有的机型是这两者互相连接,一个给wan,一个给四口lan,而有的机型是额外的phy直接连到wan,一个mac连到p6,但是pcb走线还是从7531走的对么?因为看wan口的走线还是连接7531的,我就一直没明白到底怎么配置的。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

thunder35 发表于 2023-6-14 16:41
大佬,看pcb,这个应该是你搞USB3.0的那种配置吧

7981 SOC自己还有一个1G的PHY 这是这个PHY直连WAN口 交换机芯片提供LAN口 交换机芯片用2.5G的SGMII口连接到7981的GMAC
T7改USB是把第二SGMII口定义为USB口 但是没有预先让WAN口直连7981自带PHY 所以把LAN的2.5G SGMII用vlan共享wan lan

点评

我知道7981带一条phy,也有机型拿来做wan口,比如说nx30p还有a31都是这种情况,他们的wan都是不经过7531的,gl那几个也是拿这个phy来当wan或者lan,但是单纯从电路上来看,这个就是使用一条sgmii然后虚拟wan,我看原  详情 回复 发表于 2023-6-14 17:16
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

yuyuyg 发表于 2023-6-14 17:00
7981 SOC自己还有一个1G的PHY 这是这个PHY直连WAN口 交换机芯片提供LAN口 交换机芯片用2.5G的SGMII口连接 ...

我知道7981带一条phy,也有机型拿来做wan口,比如说nx30p还有a31都是这种情况,他们的wan都是不经过7531的,gl那几个也是拿这个phy来当wan或者lan,但是单纯从电路上来看,这个就是使用一条sgmii然后虚拟wan,我看原厂dts也是指定了
                mtketh-wan = "lan4";
                mtketh-lan = "lan";

点评

有一种dual gmac改法,在dts上把一个sw的port定义到gmac: port@6 { reg = ; label = "cpu"; ethernet = ; phy-mode = "rgmii"; fixed-link { speed = ; full-du  详情 回复 发表于 2023-6-14 17:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
thunder35 发表于 2023-6-14 17:16
我知道7981带一条phy,也有机型拿来做wan口,比如说nx30p还有a31都是这种情况,他们的wan都是不经过7531 ...

我也想问这个问题,看走线wan也是接入7531的,不明白这里到底是把一路4个lan口划了一个给wan,还是7981的phy通过7531转接到wan?

点评

phy应该是直接外接网口的,不需要通过交换机,又不是MAC。所以应该是没有使用这个phy,全部使用了一个GSMII  详情 回复 发表于 2023-6-14 17:42
你去看看交换那边插wan有没有显示1000m  详情 回复 发表于 2023-6-14 17:41
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

说明这货比不上T7,T7走了两个SGMII,使用dual GMAC将流量分摊到两个CPU核心上,这货是全部走在CPU0上了。多余那两个网口可以在02_network干掉,看起来就清爽了

点评

360是wan走p5的hsgmii,这个是wan走cpu出来的的gmii。对于千m口hsgmii和gmii有区别?  详情 回复 发表于 2023-6-14 19:19
360是wan走p5的hsgmii,这个是wan走cpu出来的的gmii。对于千m口hsgmii和gmii有区别?  详情 回复 发表于 2023-6-14 19:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
wulishui 发表于 2023-6-14 17:26
说明这货比不上T7,T7走了两个SGMII,使用dual GMAC将流量分摊到两个CPU核心上,这货是全部走在CPU0上了。 ...

对啊我也在想这样的接法总的吞吐量肯定是受影响的,确实不如360T7,不过这个可以不拆机刷机哈哈哈
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

keke1023 发表于 2023-6-14 17:23
我也想问这个问题,看走线wan也是接入7531的,不明白这里到底是把一路4个lan口划了一个给wan,还是7981的 ...

你去看看交换那边插wan有没有显示1000m
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 wulishui 于 2023-6-14 17:53 编辑
keke1023 发表于 2023-6-14 17:23
我也想问这个问题,看走线wan也是接入7531的,不明白这里到底是把一路4个lan口划了一个给wan,还是7981的 ...

phy应该是直接外接网口的,不需要通过交换机,又不是MAC。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 wulishui 于 2023-6-14 17:56 编辑
thunder35 发表于 2023-6-14 17:16
我知道7981带一条phy,也有机型拿来做wan口,比如说nx30p还有a31都是这种情况,他们的wan都是不经过7531 ...

有一种dual gmac改法,在dts上把一个sw的port定义到一个空余的mii:

                gmac0: mac@0 {
                        compatible = "mediatek,eth-mac";
                        reg = <0>;
                        phy-mode = "rgmii";

                        fixed-link {
                                speed = <1000>;
                                full-duplex;
                                pause;
                        };
                };

                gmac1: mac@1 {
                        compatible = "mediatek,eth-mac";
                        reg = <1>;
                        status = "disabled";
                        phy-mode = "rgmii";

                        fixed-link {
                                speed = <1000>;
                                full-duplex;
                                pause;
                        };
                };


                                        port@6 {
                                                reg = <6>;
                                                label = "cpu";
                                                ethernet = <&gmac0>;
                                                phy-mode = "rgmii";

                                                fixed-link {
                                                        speed = <1000>;
                                                        full-duplex;
                                                        pause;
                                                };

比如newifi-d1和狗东鲁班都可以通过这样改成两个gmac绑定到两个cpu核心上,这部分可以去看mt7921的dtsi和d1的dts。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 14:39

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表