Hello, and thanks for the help.
Short version:
I bricked my WRT3200ACM router.
I'm not able to recover/restore the router through its Ethernet port; but I am able to access it though its serial port.
Unfortunately, when I try to upload the firmware, my "atftp" client and PuTTY both time-out.
I don't know what I'm doing wrong. I'd appreciate any pointers.
Long version:
I bricked by Linksys WRT3200ACM router while trying to restore the OEM firmware (replace OpenWRT).
I tried the recovery instructions below, but they failed:
I located several guides on how to debrick a router using the routers serial port:
- https://openwrt.org/docs/guide-user/troubleshooting/generic.debrick
- https://www.youtube.com/watch?v=PZYXKAkuJ5w
Following these guides, I successfully connected to the router through its serial port using a PuTTY terminal.
I tested the Ethernet and serial port connections:
- The computer can ping the router.
- The router can ping the computer.
So I now have a 2-way connection between the router and the computer, and I can configure both the computer and the router.
Unfortunately, when I try to upload the OEM firmware, both "atftp" and "PuTTY" time-out.
Below is my detailed procedure:
Power "off" BRICKED router and disconnect all cables.
Connect WORKING router to computer Ethernet port.
On computer, install FRESH minimal Debian Buster with user "Tom".
First boot: CLI Login as root.
apt update
apt full-upgrade
apt --yes install <cpu microcode package> #CPU microcode
apt --yes install <graphics driver package> #graphics drivers
apt --yes install sddm #simple desktop manager
apt --yes install kde-full #full KDE (including ssh & network packages)
apt --yes install atftp #ftp client used to upload firmware to router
apt --yes install putty #terminal program used to access router though its serial port
usermod -aG sudo tom #add user "tom" to "sudo" group
vi /etc/network/interfaces #set static computer IP address to 192.168.1.2
#iface <LAN ethernet adapter> inet dhcp
iface <LAN ethernet adapter> inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
shutdown now
Disconnect WORKING router from computer Ethernet port.
Make sure that power to BRICKED router is "off".
Connect "Ethernet cable" between "computer Ethernet port" and "BRICKED router LAN port #1".
Connect "USB to TTY cable" between "computer USB port" and "BRICKED router serial port".
Bootup.
GUI Login as tom.
Copy Linksys OEM firmware to "~/linksys/linksys.img" from USB stick.
Computer terminal #1: #connect to the BRICKED router through its serial port
sudo putty
Connection type: Serial
Serial line: /dev/ttyUSB0
Speed: 115200
Power "on" the BRICKED router.
PuTTY terminal: #configure the BRICKED router to receive a new firmware image.
"Hit any key to stop autoboot: 3" <SPACE-BAR>
ping 192.168.1.2 #verify that router is connected to computer
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.2
setenv firmwareName linksys.img
run update_both_images #start "listening" for an upload (quickly do the commands below)
Computer terminal #2: #start the firmware upload from the computer
hostname -I #verify static computer IP address
ping -c 1 192.168.1.1 #verify that computer is connected to router
cd ~/linksys
sudo atftp --option "mode octet" --verbose -p -l linksys.img 192.168.1.1 #start upload
Below are snapshots of outputs of the 2 terminals (Computer terminal and PuTTY terminal).
tom@debian:~$ hostname -I
192.168.1.2
tom@debian:~$ ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.056 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.056/0.056/0.056/0.000 ms
tom@debian:~$ cd ~/linksys
tom@debian:~/linksys$ sudo atftp --option "mode octet" --verbose -p -l linksys.img 192.168.1.1
[sudo] password for tom:
Option mode = octet
Verbose mode on.
timeout: retrying...
timeout: retrying...
timeout: retrying...
timeout: retrying...
timeout: retrying...
timeout: retrying...
tftp: aborting
tom@debian:~/linksys$
The router and the computer can ping each other;
but they can not exchange a file.
Why?
Any pointers appreciated.
Thanks.