LoginSignup
0
0

More than 1 year has passed since last update.

RT-AC59Uを分解して修理した話

Last updated at Posted at 2022-04-03

RT-AC59Uを分解して修理した話

背景

  • ある日突然ルータ(RT-AC59U)が使用不可能になった。
  • 何度リセットを行っても復旧せず。電源ランプが点滅するだけ。管理画面にも入れないため、ログを見ることができず原因の切り分けが困難
    • →デバッグポートがあるのでは?
      • →あった!UARTで接続してログを見ちゃおう!!

行ったこと

  • ASUS製のデュアルバンドWi-Fi無線ルータ「RT-AC59U」を分解
  • 基板上のデバッグポート(UART)を使用可能にして解析
  • ファームウェアの書き換え

必要な道具

  • トルクスドライバ(T8)
  • ヘラやギターのピックなどの薄くて硬いもの、あるいはマイナスドライバ
  • はんだごて
  • はんだ吸い取り機(あると非常に便利。なければはんだ吸い取り線とかでも。GNDとかかなり大変だけど。)
  • ピンヘッダ(基板側にピンソケット、ブレッドボード用ジャンパ線で接続が楽かも)
  • 適当なケーブル(片側にピンソケット、もう片側はピンヘッダにした。接続できればなんでもいい。)
  • USB-シリアル変換モジュール(arduinoでも大丈夫だと思うが、モジュールを使ってPCに直接接続するのが楽だと思う)
  • USB-シリアル変換モジュールに使用するUSBケーブル
  • Windowsマシン(インターネットに接続しているもの)

Windows11 Home 64bitおよびWindows10 Pro 64bitでこの手順が有効なことを確認しています。ソフトウェアのダウンロードページを見る限りではWindowsであれば何でも大丈夫だと思います。

分解手順

  • 本体裏側の滑り止めを4つ外す。簡単に取れる。PXL_20220403_160312262~2.jpg
  • 滑り止めの裏にトルクスネジが見えるようになるため、4つすべて外す。T8で外れた。中央シール裏にはネジは無い。
  • ランプ側の上面カバーの隙間にマイナスドライバなどの工具を差し込む。今回はスマホ修理用のヘラの様な工具でてこの原理でこじ開けた。10か所ツメがあり、かなり硬いので注意。周囲にあるツメは無理やり外す以外の方法は思いつかなかった。
    PXL_20220403_050900855.jpg
  • 上の画像は開けた様子。MHFコネクタで4本のアンテナが接続されている。
  • MHFケーブルをすべて外すと基板が簡単に分離できる。
    PXL_20220403_050655319.jpg

余談

基板は半分ほどが黒いヒートシンク(?)で覆われている。基板の裏面から4か所、プラスネジ(Ph00あたりだったか?)で固定されている。これを外すとヒートシンクを取り外すことができる。ヒートシンクと内側のシールドは2枚の放熱シートでくっついている。無理に剝がすと破れるため注意(1敗)。
シールドははんだでがっちりと固定されているため、外すのは困難。ルータが壊れたら挑戦してみようと思う。
同メーカ製、別機種ではシール裏にvoidシールとネジが隠されているものがあるが、この機種にはなかった。今回は剝がしてもメリットはないと思う。

UARTを使用可能に

  • この部分にUARTのデバッグポートを発見。シルクがあるため、テスタを当てて判別する必要はない。
  • スルーホールの裏面がはんだで埋められているため、はんだごてとはんだ吸い取り機で除去。ピンヘッダを実装。
    PXL_20220403_071257144.jpg
  • 適当にケーブルを製作してUSB-シリアル変換モジュールに接続する。今回は秋月電子の「24ピンDIP-ICサイズ FT232RL
    USB-シリアル変換モジュール
    」が転がっていたため、これを使用した。USB-シリアル変換モジュールはUSBケーブルでPCに接続した。
    PXL_20220403_075417488.jpg

各ピンの接続先

ルータ USB-シリアル変換モジュール
3.3V 3v3
GND GND
TX RXD
RX TXD

InkedPXL_20220403_080050961.jpg
肝心なUSB-シリアル変換モジュールの部分が写っていない......

ファームウェアの書き換え

  • ルータの電源を投入。TeraTermなどで接続。ボーレートは115200だった。
  • ログを眺めているとエラー発生。ath_set_tuning_caps: read WLANCAL fail!!! (r = -1)と表示され、Recuse Modeに入っていることが分かる。ファームウェアに問題があるっぽい。
U-Boot 1.1.4-g5820674d (May 29 2019 - 14:33:36)

RT-AC59U bootloader version: 1.0.0.5
apjet01 - JET 1.0DRAM:
sri
ath_ddr_initial_config(277): (ddr2 init)
ath_sys_frequency: cpu 775 ddr 650 ahb 258
Tap values = (0x12, 0x12, 0x12, 0x12)
128 MB
ASUS RT-AC59U gpio init : wps / reset pin
Flash Manuf Id 0xef, DeviceId0 0x40, DeviceId1 0x18
flash size 16MB, sector count = 256
Flash: 16 MB
Maximum malloc length: 128 KBytes
mem_malloc_start/brk/end: 0x87f98000/87f98000/87fc8000
*** Warning - bad CRC, using default environment

Power up PLL with outdiv = 0 then switch to 3
plat_dev_init: read 16384 bytes from offset 9fff1000 of WLANCAL fail! (r = -1)
In:    serial
Out:   serial
Err:   serial
Net:   ath_gmac_enet_initialize...
Fetching MAC Address from 0x87fee00c
ath_gmac_enet_initialize: reset mask:c02200
athr_mgmt_init ::done
JET  ----> S17 PHY *
athrs17_reg_init: complete
SGMII in forced mode
athr_gmac_sgmii_setup SGMII done
: cfg1 0x80000000 cfg2 0x7114
eth0: 【念のため削除】
eth0 up
eth0
ath_set_tuning_caps: read WLANCAL fail!!! (r = -1)

Please choose the operation:
   1: Load System code to SDRAM via TFTP.
   2: Load System code then write to Flash via TFTP.
   3: Boot System code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
 0
   3: Boot System code via Flash (default).

RT-AC59U bootloader version: 1.0.0.5
MAC Address: 【念のため削除】
## Checking 1st firmware at 9f060000 ...
   Image Name:
   Created:      2021-01-06   7:33:20 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    15698544 Bytes = 15 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum ... Bad Data CRC

Hello!! Enter Recuse Mode: (Check error)

eth0 link down
Force to _1000BASET and duplex
dup 1 speed 1000
switch prereq:0
tftpd start
Using eth0 device

Our IP address is:(192.168.1.1)
Wait for TFTP request...
tftpd open
D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D
  • 原因に見当がついたところで、ファームウェアの書き直しをしてみる。ここから最新のファームウェアをダウンロード。今回はバージョン 3.0.0.4.382.52482をダウンロードした。同時にASUS Firmware Restoration version 2.1.0.3もダウンロードした。
  • レスキューモードの使い方はここ

image.png

  • ASUS Firmware Restorationを解凍してインストール。今回は対象が自動的にレスキューモードに入っているため、そのままルータのLANポートとPCをLANケーブルで接続。

  • コントロールパネル→ネットワークとインターネット→ネットワークと共有センター→アダプターの設定の変更→「イーサネット」を右クリック→プロパティ
    image.png

  • 「インターネットプロトコルバージョン4(TCP/IPv4)」を選択してプロパティを押す。
    image.png

  • この状態にする。IPアドレスは「192.168.1.XXX」、サブネットマスクは255.255.255.0に設定。(先ほどのログに"Our IP address is:(192.168.1.1)"とあったので今回は192.168.1.1)
    image.png

  • ASUS Firmware Restorationを起動、ダウンロードしたファームウェアを選択してアップロードする。これ以降は自動的に進むため放置。TeraTermを眺めていると面白い。
    PXL_20220403_082201415.jpg

  • 待っているとそのうち終了する。「システムをリカバリーしました。システムを再起動します。お待ちください」と表示されたら閉じるを押す。ルータが自動的に再起動する。

  • (作業完了後、IP設定を自動取得している場合は、「IPアドレスを自動的に取得する」と「DNSサーバーのアドレスを自動的に取得する」に戻す。)

  • 書き込み完了!動作確認を行う。この時点で電源ランプの点滅は止まり、Wi-Fi 2.4GHZと5GHzのランプが点灯していた。

  • 元の分解手順と逆の手順で戻す。ピンヘッダを取り外すかどうかはお任せします(通常のサイズのものならそのままで全く問題なかった)。ケーブルを直接はんだ付けした場合は切るかケースを加工して外側に引き出すか?

今後について

  • UARTのデバッグポートが使えるため、何らかの方法でroot権限が取れないか試してみたい。

反省

  • マニュアルに「5.2 Firmware Restoration(ファームウェアの復元)」という項目があり、さらっとレスキューモードについて言及されていることに後で気づいた。早く気づいて試していればよかった
  • とは言うものの、ファームウェアが原因だと断定できなかったため、分解もやむを得なかった......?
  • RT-AC59Uに使用可能なデバッグポートが残されていることを知れただけでも良かったと思う。(攻撃ポイントとして利用できるかは別として)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0