April 8, 2012

Cisco Linksys WRT160N v2無線路由器刷機失敗 (用tftp拯救)

這台無線路由器用了三四年,一直以來都很穩定。昨天心血來潮想更新一下 (我從來就沒更新過),沒想到第一次更新就刷錯ROM。這對已經刷過HTC Hero,HTC Desire從未失手的我來說真是太丟臉,刷不成功是一回事,放錯ROM就真的是太丟臉...


美國版的WRT160N v2跟荷蘭版的WRT160N v2原來不一樣阿。後來查一查還有英國版等等。Cisco Linksys的員工也太勤勞了吧,同一個機器竟然全世界還細分這麼多的版本號。我當然是不知道差別在那,機器背後也沒寫是那一國的版本。我現在只知道韌體不能共用了!

不斷用30/30/30方法去重設,不過就是沒辦法連上路由器。搜尋了很多解法,很多是物理破壞式的讓我不太敢下手。後來看到tftp,想一想,反正路由器不也都是以linux當核心在運作的,玩了這麼多次chroot,這看起來應該是不會太困難。最後當然是有成功 (雖然我一整天都在妄想是不是可以買個Cisco Linksys E4200,哈)。

以Arch linux為例:

下載tftp-hpa
$ pacman -S tftp-hpa

啟用tftp
$ /etc/rc.d/tftpd start

這時路由器是無法運作的,所以當然也沒有辦法靠自動DHCP取得local IP,這時就需要手動讓電腦強制進到路由器設置的子網域。

手動加入一個新的乙太網路設置 (repair router)

指定電腦的IP位置(我設定192.168.1.100)

這時準備將ROM傳到路由器裡。

Terminal,先指定到ROM所在的位置
$ cd

連上路由器,Cisco Linksys預設是在192.168.1.1
$ tftp 192.168.1.1

如果路由器沒有整個掛掉的話這時就可以進到tftp
tftp>>

進到binary模式
tftp>> binary

選擇ROM檔 (以我的機型為例 - WRT160Nv2_v2.0.01_014_ETSI_code.bin)
tftp>> put WRT160Nv2_v2.0.01_014_ETSI_code.bin

如果傳輸成功,那過不久就可以看到路由器復活了。

Reference: dd-wrt TFTP Flash

No comments:

Post a Comment