TP-Link WDR4300 N750にOpenWRTを入れてみる。

前回、Buffalo WSR-600DHPをOpenWRT化することに成功したが、Wi-Fi設定の部分で見事に躓いてしまった。
* WSR-600DHPはMediaTekチップセット(MT7603E)を使っており、このチップセット対応のファームウェアがWSR-600DHP用に作成されていない。つまり、WSR-600DHPで5GHz帯のWi-Fiを使いたいのであれば、自分でファームウェアをビルドする必要がある。(難しかったので断念...) そこで、Buffalo ルータはサクッと諦めて、別のルータを購入しOpenWRT化する。
今回使ったのはTP-Link WDR4300 N750
(5GHz帯がOpenWRTで使用できるルータはかなり少ないし、日本で売っているのかは謎。TP-Linkの最新の無線LANルータはArcher 7である。Archer 7チップセットファームウェアとしてAth10kを使用しているが、Ath10kはまだOpenWRTでサポートされていない。よって、今回はTP-Linkの最新版からは3世代ほど前の型であるWDR4300を使用した。)

WDR4300のWebUIからOpenWRT化 → 失敗

OpenWRTの公式ページにはTP-LinkのWebUIからFirmware UpgradeでOpenWRTの...factory.binファイルを選択し、Upgradeボタンを押すとOpenWRTにアップグレードされるよと書いてある。
しかし、TP-linkはそんなに甘くは無いんだな。 見事に失敗

Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.  

こんなエラーメッセージが....
どうしたものかなこれ
いろんなバージョン.binファイルを試したが、同じエラーが出続ける。挙句の果てにはTP-Link公式ページからダウンロードしてきたファームウェアもアップグレード失敗(T.T)....
軽く怒りがこみ上げてくるが、こんな事では諦めない。

TFTPサーバからOpenWRT化 → 失敗

続いてはTFTPサーバからのブートを試す。

assign 192.168.0.66 to your local network interface (the router uses 192.168.0.86)
publish a firmware image via tftp: cp openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin/srv/tftp/wdr4300v1_tp_recovery.bin
configure your tftp server
wait for the firmware transfer (about 20s), firmware flash (about 90s) and subsequent reboot (about 30s)

OpenWRTの公式にはこんなことが書いてあるので、その通りに実装(Tftp64っていうソフトでWindowsを簡単にTFTPサーバにできます。)
が、ぜんぜんだめ

[http://www.friedzombie.com/tplink-stripped-firmware/]

この記事によると、TP-Linkは最近になって正規のファームウェアしかアップデートできないようなってるようである...
これは難敵、YouTubeでアップデート手順を見てみると、

  • ルータをこじ開け
  • 無理やりシリアルコンソールを繋ぐ
  • シリアルポートからブートを強制中断
  • 無理やりブート対象を書き換え

なんていう荒業をしている動画があった
(できればそんなことやりたくないね。)


Bricked TP-Link WDR4300 Router Recovery Using UART Serial Converter Part #1

さらに検索検索。

ネット上にこんな一言が、
「DD-DRTにならアップグレードできるよ」

そんなことがあるのか?

DD-WRT化の後にOpenWRT化 → 成功

とりあえず、DD-WRTのbinファイルを公式ホームページから取ってくる。よくよくネットを見ていると、最新バージョンより2~3個前のほうが安定しているらしいので、最新よりも2~3個前のDD-WRTのbinファイルを取ってくる。DD-WRTはファームの作成年月日が細かく分かれていて、使いやすそう。
※同じTP-Linkルータでも、ファームウェアversionが違うことがあるらしく(今回はver1.7)versionによってアップデートできるファームウェアが違うっぽい。今回は下記のDD-WRTファームウェアでアップデートできたが、Versionによっていろいろ試す必要がありそう。

[ftp://ftp.dd-wrt.com/betas/2016/07-01-2016-r30082/tplink_tl-wdr4300v1/]

今回使用したのは上記のURLの中にある"factory-to-ddwrt-us.bin"っていうファイル。これをTP-LinkのWebUIからアップデート。

なんとアップデート成功。後は下記のリンクのやり方にしたがって、ファームをDD-WRTからOpenWRTに書き換えるだけ。

[http://www.madox.net/blog/2013/03/10/how-to-install-openwrt-on-a-tl-wr703n-that-came-with-dd-wrt/]

で、telnet 192.168.1.1でDD-WRTコマンドラインに入れるのだけれど、sshで入りたかったらUIで設定できるみたい。 あとは、wgetかなんかでopenwrtのファームウェアをダウンロードして(....factory.binとかいうやつ)
以下のコマンドでファームウェアアップグレード

root@DD-WRT:/tmp# mtd -r write openwrt-ar71xx-generic-tl-wdr4300n-v1-squashfs-factory.bin linux
Unlocking linux ...
Writing from openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin to linux ... [e]
Connection closed by foreign host.

http://d.hatena.ne.jp/from_kyushu/20080917/1221581890

また、アップグレードしたい場合は

sysupgrade -n openwrt-ramips-mt7621-wsr-600-squashfs-sysupgrade.bin

非常に長かったが、最後はあっけなかった。お疲れ様でした。