PTT推薦

[閒聊] H3C NX30pro 刷機 MT7981系列

看板Broad_Band標題[閒聊] H3C NX30pro 刷機 MT7981系列作者
tomsawyer
(安安)
時間推噓 9 推:9 噓:0 →:9

前陣子看上了MT7981,不錯的性能,不太熱的溫度

考慮小米系列360T7 ~= WR30U ~= AX3000T ~= AX3000NE,於是我選了剛上市AX3000T
沒想到小米跟TP一樣韌體封的比較死,雖然現在MTK系的都用魔改的openwrt了,但還是需要依靠一些exploit來打開telnet或ssh

比如說 WR30U,必須依靠他搭配的中國聯通elink IoT的漏洞執行任意程式碼
https://github.com/PatriciaLee3/wr30u_ssh
https://forum.openwrt.org/t/openwrt-support-for-xiaomi-ax3000ne/153769

比如說 XDR6088/6086,要依靠VPN的介面沒有sanitize來執行任意程式碼
https://forum.openwrt.org/t/adding-support-for-tp-link-xdr-6086/140637/17

但這些在AX3000T目前來說都修乾淨了,我也有試過研究幾個exploit
比如set_sys_time
然後log會跟我說hack detected 笑死

於是我又買了H3C的NX30pro

目前7981的平台 NX30pro AX3000T XDR3001表現都不錯

NX30pro這款好在,預設開放telnet Port 99,有curl可以用,於是你去openwrt官網隨便撈一個dropbear的ipk

opkg install後就有ssh/scp可以用了

首先我們需要把mtd通通備份起來,經爬文後,如果你刷了U-boot,再刷回原廠後,如果再升級會變磚

mtd分區如下

[ 0.829730] nmbm nmbm_spim_nand: Signature found at block 1023 [0x07fe0000][ 0.837461] nmbm nmbm_spim_nand: First info table with writecount 0 found
in block 960
[ 0.847548] nmbm nmbm_spim_nand: Second info table with writecount 0 foundin block 963
[ 0.855552] nmbm nmbm_spim_nand: NMBM has been successfully attached
[ 0.862167] 9 fixed-partitions partitions found on MTD device
nmbm_spim_nand
[ 0.869218] Creating 9 MTD partitions on "nmbm_spim_nand":
[ 0.874699] 0x000000000000-0x000000100000 : "BL2"
[ 0.879929] 0x000000100000-0x000000180000 : "u-boot-env"
[ 0.885737] 0x000000180000-0x000000380000 : "Factory"
[ 0.891278] 0x000000380000-0x000000580000 : "FIP"
[ 0.896487] 0x000000580000-0x000004580000 : "ubi"
[ 0.901796] 0x000004580000-0x000004b80000 : "pdt_data"
[ 0.907430] 0x000004b80000-0x000005180000 : "pdt_data_1"
[ 0.913265] 0x000005180000-0x000005280000 : "exp"
[ 0.918446] 0x000005280000-0x000007800000 : "plugin"

dev: size erasesize name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 04000000 00020000 "ubi"
mtd6: 00600000 00020000 "pdt_data"
mtd7: 00600000 00020000 "pdt_data_1"
mtd8: 00100000 00020000 "exp"
mtd9: 02580000 00020000 "plugin"

用dd就可以備份了

比如說要備份固件區
dd if=/dev/mtd5 of=/tmp/backup_mtd5.img

第一次備份mtd1-4 6-9,因為mtd5也就是固件區比較大(64MB),下載前備份完的再刪掉清空間
分開備份比較比較好

用winscp把東西通通下載回來

下一步要刷U-boot (意思同刷android的recovery),方便刷機,刷有HTTP介面的

參考這篇
https://blog.qust.me/nx30pro

上傳U-boot之後
mtd write /tmp/uboot.bin FIP

然後電腦接Lan1 按住reset再插電
IP設靜態 192.168.1.2 連上192.168.1.1

選擇NX30pro.bin上傳,這是個immortalwrt的版本。

然後等他自動重開

重開之後用dhcp連192.168.6.1就有了
https://i.imgur.com/KvAO6Wj.png




這裡有幾個我也不太懂得問題,值得放在這裡

1.

因為不是用nor flash了,>= 32MB的flash有高機率是nand,而nand有壞塊的問題

mtk在這裡使用了NMBM管理壞塊,然而傳統openwrt是不支援這個東西的,他的Bootloader載入是純用offset,然且nmbm會影響整個mtd讀到的offset

據說,如果你的壞塊好死不死在前幾個block,刷入U-boot時就有可能變磚

參考這幾篇的說法

https://fast.v2ex.com/t/962550
https://www.right.com.cn/forum/thread-8292288-1-1.html
https://www.right.com.cn/forum/thread-8227879-1-1.html

尤其這篇
https://www.right.com.cn/FORUM/thread-8244730-1-1.html

2.
但是據說,如果不替換BL2(如果你按照openwrt或immortalwrt官方的指示是要刷BL2的)

preloader -> BL2
BL31-Uboot -> FIP(U-boot)



如果你刷的U-boot是本文章中前面blog給的u-boot,那要刷的是NMBM layout enabled 的image,目前已確認用U-boot刷immortalwrt跟x-wrt的帶nmbm的factory.bin是可以刷的

要注意與如果你刷過BL2就別嘗試用nmbm enabled layout

https://www.nonedata.com/posts/H3C-NX30PRO.html#%E5%88%B7%E5%85%A5-openwrt-%E6%88%96%E8%80%85-immortalwrt-%E5%8E%9F%E7%89%88%E7%B3%BB%E7%BB%9F

https://firmware-selector.immortalwrt.org/?version=23.05.0-rc4&target=mediatek%2Ffilogic&id=h3c_magic-nx30-pro-nmbm
https://downloads.x-wrt.com/rom/

具體note:
https://github.com/x-wrt/x-wrt/commit/618fe4cae8a3fcbbe184b603c6ff5ed848d9785d

3.
MT798x是有閉源驅動的樣子(尤其是GL.inet),可能要去思考一下如果你的目的是要高速的wifi而不是像我想玩玩具

那要思考一下要不要刷機

4.
這東西還有大分區小分區的問題

參考前面的mtd block,存固件的mtd5只有64M,我刷完這個隨附的immortal大概剩16M可以給我玩

刷完immortal stock nmbm有41mb,刷完xwrt stock nmbm有36mb可以用

我的目的只有wireguard+zerotier+msdlite+連CHT Wifi或iTaiwan,已經夠了

還可以偶爾玩玩hcxdumptool

如果要全部利用的話,還要刷適合大分區的U-boot,就能完整利用mtd5之後的所有空間



--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.28.223.57 (臺灣)

※ 文章網址:
https://www.ptt.cc/Broad_Band/E.Vi1w-uXvC5XI

※ 編輯: tomsawyer (104.28.223.57 臺灣), 10/14/2023 11:57:49

IOU952710/14 12:11等之後AX3000T看能否刷機

GJME10/14 15:49沒想到現在刷機這麼折騰人,手上幾台MTK7620/7621看來還能

GJME10/14 15:49跑OpenWRT好幾年

我也刷了一台Archer A6,懷念那時代的TP,直接上傳固件就行 mt7621 雖然有4核 但是Ramips就很哭

Windcws9Z10/14 17:56刷機 一直都很折騰,是刀碩特別好刷

Windcws9Z10/14 17:57而且不容易死

刀碩的博通比較好刷,但是如果是MTK系的好像也不容易,高通IPQ想都別想

birdy59010/14 18:04跟 bootloader 有關 有些平台號稱刷不死 就容易處理

birdy59010/14 18:10要玩刷機 拆機搭TTL 是最低要求 但這樣還是有可能出事

有些TTL有外露的 從散熱孔就勾的到 有些排針還幫你插好 最近想入手CH341A了,但這種nand不是SOP-8 spi rom,封裝不好拆,很容易爆炸

virgil24610/14 18:14

empingao10/14 18:16驅動還是 git01.mediatek.com 這個好,不過要自己搞。

※ 編輯: tomsawyer (104.28.223.50 臺灣), 10/14/2023 18:33:00

※ 編輯: tomsawyer (104.28.223.50 臺灣), 10/14/2023 18:46:53

Windcws9Z10/14 18:43對..以前要玩刷機,拆機TTL是基本

Windcws9Z10/14 18:43有的還要自己焊上針腳

Saren10/14 19:25MT7621很好用呀 gbe環境很夠用 2.5g以上就不好用了

kobe811210/14 22:55抱歉有點職業病,SPI是通訊介面不是硬體封裝XD

我指的是傳統EEPROM那種,應該是SOP-8(?)

birdy59010/14 22:59看對岸修路由器的也在叫苦~ 現在跟修手機一樣要解焊重焊

birdy59010/14 22:59以前如果救磚是搭個腳就刷了 現在可能還要管壞塊

Saren10/14 23:47NAND用在路由器上大都是SLC 相對比較不容易壞cell

查了一下是用winbond封裝的128MB slc含spi模組 只是是FCBGA封裝 不能用夾的刷

※ 編輯: tomsawyer (1.200.75.69 臺灣), 10/15/2023 12:49:33

Saren10/15 14:27https://www.acwifi.net/24565.html 看這一篇 應該是8pin的

Saren10/15 14:28wson-8的serial nand. 好處理啦 不是FCBGA

喔喔 看錯了,不過還是得解焊,麻煩

※ 編輯: tomsawyer (104.28.223.50 臺灣), 10/15/2023 14:49:50