Follow all steps at own risk!
Before downloading/running anything, consider reading the blog post:
https://peterbabic.dev/blog/how-verify-openwrt-integrity-files
The build is automated in a script. Change the release
version
at the top. Running does the following:
Manual recovery image preparation:
dd bs=512 obs=512 skip=1 count=256 if=stock_firmware.bin of=ArcherMR200_bootloader.bin
cat ArcherMR200_bootloader.bin openwrt-sysupgrade.bin > ArcherC2V1_tp_recovery.bin
Manual recovery image upload using TFTP:
sudo pacman -S atftp
sudo mkdir -p /srv/atftp
sudo cp ArcherC2V1_tp_recovery.bin /srv/atftp
sudo chown -R atftp:atftp /srv/atftp
sudo ifconfig enp0s31f6 192.168.0.66/23
sudo systemctl start atftpd.service
# Optionally test TFTP server is working properly
#curl -O tftp:/192.168.0.66/ArcherC2V1_tp_recovery.bin
Attention: following this step can possibly brick the device. Double check everything before proceeding! Citing the MR200 OpenWRT manual:
Turn on the device while pushing the WPS button until the WPS light turns on. At that point, the bootloaders integrated tftp client with the ip address of 192.168.1.1, tries to connect to a tftp server running at address 192.168.0.66 and getting the file named ArcherC2V1_tp_recovery.bin, so you need to be running a tftp server with the ip/netmask of 192.168.0.66/23 and connect it to lan port1. It is vital that your firmware includes the bootloader at the very beginning (without any extra tp-link header) as the bootloader will start writing the firmware to flash with the starting address of 0x00000000.
After the upload the router reboots itself and after this point, upgrading should be always the preferred option to this one, because it is not touching the bootloader.
OpenWRT does not enable working LED's for 4G signal by default. Manual method:
cd files
scp -r root etc root@openwrt:/
/usr/bin/ssh root@openwrt
opkg update
opkg install curl
reboot
Manual steps for building a custom image (daily snapshots used here, not a release):
pacman -S --needed base-devel ncurses zlib gawk git gettext openssl libxslt wget unzip python
wget https://downloads.openwrt.org/snapshots/targets/ramips/mt7620/openwrt-imagebuilder-ramips-mt7620.Linux-x86_64.tar.xz
tar xJf openwrt-imagebuilder-ramips-mt7620.Linux-x86_64.tar.xz
cd openwrt-imagebuilder-ramips-mt7620.Linux-x86_64
ln -s ../files .
make image PROFILE=tplink_archer-mr200 PACKAGES="curl luci" FILES=files/
The sysupgrade file is then available at
openwrt-imagebuilder-ramips-mt7620.Linux-x86_64/bin/targets/ramips/mt7620/openwrt-ramips-mt7620-tplink_archer-mr200-squashfs-sysupgrade.bin
after the build and includes curl
, luci
and the LED script.
Upgrading can be done once the OpenWRT is installed in the router. Manual
steps for a standard sysupgrade
procedure:
scp build/openwrt-19.07.7-ramips-mt7620-ArcherMR200-squashfs-sysupgrade.bin root@openwrt:/tmp
/usr/bin/ssh root@openwrt
cd /tmp
sysupgrade openwrt-19.07.7-ramips-mt7620-ArcherMR200-squashfs-sysupgrade.bin
Important: Always revert back to the same stock firmware version which was used to prepare the recovery image.
To avoid the possibility that the firmware file will be un-published fro
mthe vendor, it is stored is stored in the firmware folder in
this repository. There is also an extracted_firmware.bin
created out of
this stock firmware, should the ned to revert back be required (for
instance to install newer firmware released by the vendor, that would
update the 4G router firmware as well - something OpenWRT cannot do).
Manual steps to revert to stock from OpenWRT:
cd firmware
dd bs=512 obs=512 skip=257 count=15744 if=Archer\ MR200v1_0.9.1_1.2_up_boot_v004a.0\ Build\ 180502\ Rel.53881n.bin of=extracted_firmware.bin
scp extracted_firmware.bin root@openwrt:/tmp
/usr/bin/ssh root@openwrt
mtd -r write extracted_firmware.bin firmware
The authors of the LED script are users asenac and spamcop, published ad OpenWRT forum.