因緣際會參加「TTC財團法人電信技術中心」活動,目標是測量全台固網速率,所以會送一台AP到你家,機器有特製化韌體,是基於openwrt修改,接電連網後會自動量測並上傳資料。依速率不同會拿到不同機器,我拿到傳說中的改裝神機--TP-link 1043nd,右上角還有個TTC非賣品的logo。活動已經結束,就來準備刷成第三方的韌體吧!
一、1043nd 背景介紹
這台1043nd在改機界相當熱門,改機很重要的關鍵點就是「線路簡單」,打開機器就能看到,SoC、Ram、Lan晶片,一字排開,不會有著高階機種的遮遮掩掩跟精密焊點(?)。而且有Gb埠、USB、Atheros晶片,都算是當時的主流規格,另個改裝重點就是「價格便宜」,所以改裝失敗也不會心疼,再買一台便是,這非常重要,因為改裝很容易爆炸(?)
OpenWRT-1043nd專頁:https://wiki.openwrt.org/toh/tp-link/tl-wr1043nd
Mobile01討論串:http://www.mobile01.com/topicdetail.php?f=507&t=3594428&p=1
1043nd規格:
SoC:Atheros AR9132 @ 400MHz - 算是效能與耗電平衡的頻率
RAM:8MB Flash、64MB RAM - 相當標準的大小,再多加價,再少失效能
Wifi:Atheros AR9103 @ bgn @3x3:2 - 3T3R三天線收發,但其實只有二個空間流,第三支是輔助的
SoC是Atheros,第三方韌體中,OpenWRT支援,DD-WRT支援,OpenWRT分支Gargoyle(石像鬼)也支援。官方與OpenWRT韌體似乎並不怎麼穩定,最後選擇Gargoyle。它是基於OpenWRT發展的韌體,特色是媲美Tomato的Qos,與簡潔的設定介面,穩定性也不錯…其他沒了。
Gargoyle官網:http://www.gargoyle-router.com/index.php
1043ND一共出了四版(熱賣程度可見一斑),可詳閱openwrt的官網,這台是v1最原始版,所以當然也是最多人研究破解的。
二、拆機
▼可自行參考網路的影片(https://www.youtube.com/watch?v=IHNrnLnLakE),又是萬惡的卡榫,從正面燈號處拆非常難拆,除非你想拆爆,所以反著從屁股的天線拆比較容易。
▼前面燈號左右邊各一的卡榫,難拆的原因就在此,從正面進攻根本看不到除非鑽洞,只有從後面並拿掉ㄇ型黑邊才能看到。
▼我們刷機是「TTL大法」,接線直接跟硬體溝通,所以需要找到板上「序列埠 Serial Port」,圖中紅圈處。銲上排針(杜邦座),共有四根腳「Vcc、Gnd、Rx、Tx」,而Vcc電壓腳不用接,只需焊三針。AP接電開機即可,若再接Vcc腳會燒毀機板。
▼電子材料行買TTL線,聽說 PL2303 晶片有較佳相容性,也不貴。TTL線是透過序列埠直接跟晶片溝通的介面,可直接經由此線將韌體上傳至 flash 以刷新韌體,對於那些刷機失敗變磚的ap,是解磚的最佳途徑。
三、刷機
鉅細靡遺的刷機的專業步驟 OpenWRT 官網都詳實記錄,有問題就請看原文:https://wiki.openwrt.org/toh/tp-link/tl-wr1043nd。
我簡述一下流程:
a. 機器接上TTL線,把usb插進電腦,記得要裝驅動程式。
b. 電腦開 PuTTY 終端機偵測ap開機訊息
c. 打入一連串刷機指令將韌體刷入至AP的flash
d. 重開機,開始運行新韌體
e. 確認刷機或解磚後,清除nvram或按機身後方reset清除設定,至此刷機成功!
刷機工具包下載:https://goo.gl/Thk9uG
四、詳細步驟
第1步:接上TTL線
請注意,USB的Tx接機板的Rx,USB的Rx接機板的Tx,如下圖。
USB腳 ---- 機板針腳
Tx -------------- Rx
Rx -------------- Tx
Gnd ------------ Gnd
第2步:連接AP取得訊息
開 PuTTY,指定COM埠 (usb所在埠,可開系統管理員確認),Speed 輸入 115200 (代表溝通的頻率)。
第3步:登入AP
接上AP電源,會顯示開機資訊 (若沒有則關掉視窗重開就會有了)。跑到「Autobooting in 1 second」時輸入「tpl」三個字,才會停止並等待命令。切記只有 1秒可輸入錯過請關電重來。而變磚的機器則會直反覆在 Auto… 此處不停重跑,所以要抓準時機輸入指令。
第4步:刷入韌體
等下需要上傳韌體,所以我們要先在自機建立伺服器,先把網卡ip設成192.168.0.5,以方便等下輸入。
▼打開「tftpd64」軟體,不用設定就已經建好伺服,軟體也抓到網卡 ip (如圖),再按 Browse 選擇韌體資料夾,至此建完伺服。
▼回到終端機,輸入 printenv,確認serverip與ipaddr是否同一子網,如不是可鍵入 setserverip=192.168.0.5 與 setipaddr=192.168.0.2 來更改ip位置。
▼下載韌體至ap的記憶體內,鍵入 tftpboot□0x81000000□123.bin (123.bin是韌體名稱),最後會顯示韌體大小 7C0000,請記住等下會用到。(7C0000是16進位,單位是bytes,換算成10進位就是7936KB)
▼清除Flash內7C0000長度位址以放入新的韌體,鍵入 erase 0xbf020000□+7c0000,等待一段時間清除。這裡清除的長度就是依據之前上傳韌體的長度而定。
▼複製新韌體至Flash內,鍵入 cp.b□0x81000000□0xbf020000□0x7c0000。至此已完成刷入新韌體。
▼輸入reset重開,但此機不支援此指令,所以輸入 bootm□0xbf020000,一樣是重開機的意思。
▼重開機後,會自動開始新韌體,看到這畫面就代表進入新韌體成功,如果一直重開機循環就代表失敗。
PS1:刷機指令整理
依AP版本不同,指令會不同,我的是 v1.x版,其他請自找資料。
tftpboot□0x81000000□firmware.bin
//至伺服器下載 firmware.bin 韌體至RAM從 81000000 起始的位址
erase□0xbf020000□+7c0000
//抹除Flash從 bf020000 起算的 7c0000 空間。(7c0000即7936KB,依不同韌體大小而定)
cp.b□0x81000000□0xbf020000□0x7c0000
//以byte為單位,複製 RAM的 81000000 位址,到 Flash 的 0xbf020000 位址,長度為 7c0000。
bootm□0xbf020000
//從Flash的 bf02000 位址重新開機
PS2:tftp指令與bf020000開機位址確認
五、Gargoyle介面
登入Gargoyle,介面相當簡潔,而且一頁就可以把上網功能設定完畢,包含有線與無線,比一般ap的設定快速很多。由於我不需要Wan,想把Wan橋接至Lan後,常發生不穩的情況,可能bug吧,所以我直接把Wan Disable不用,直接接Lan。
基本設定頁面,無線功率最大可設23dBm(200mW),但台灣遵循歐盟電波上限 20dBm(100mW),且我的AP放置距人體近,只設12dBm(16mW)。
台灣的NCC法規限制AP的發射強度上限是100mW(毫瓦),原則上超過都算違法,也對人體有疑慮,最多設到200mW就好。而市面上標榜的高功率無限網卡,通常都是500mW起跳,有的還上到1000mW,絕對不可能通過安規。列出參考表供設定,紅字為常設值。
398mW = 26dBM
250mW = 24dBM
200mW = 23dBM
158mW = 22dBM
100mW = 20dBM
79mW = 19dBM
63mW = 18dBM
50mW = 17dBM
40mW = 16dBM
31mW = 15dBM
25mW = 14dBM
16mW = 12dBM
10mW = 10dBM
QoS頁面
..
感謝!幫補老外的拆刷機影片連結
回覆刪除https://www.youtube.com/watch?v=IHNrnLnLakE