TL;DR Issue solved
Walk-through:
a) Set up an alternative router for internet, in case I brick the current router.
b) With UART connected through Putty and with LAN cable connected to PC and WiFi turned off:
c) Backed up all of my settings from the router and checked that everything was included.
-
Installed a new unlocked U-Boot ( courtesy of https://github.com/pepe2k/u-boot_mod ) by sysupgrading the appropriate old OpenWrt image (openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin) created by pepe2k and running the built-in script.
-
Downloaded a factory image of the latest OpenWrt 18.06.2 (openwrt-18.06.2-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin)
-
Set my PC IP address as 192.168.1.2 and started a tftp server with the above latest 18.06.2 image renamed as firmware.bin
-
Ran following commands through Putty:
tftp $loadaddr $firmware_name
erase $firmware_addr +$filesize
cp.b $loadaddr $firmware_addr $filesize
reset
-
Tested first with the 5GHz WiFi : works
-
Tested starting the 2.4GHz WiFi: works
-
Added all my custom scripts, bells and whistles: works
-
Did 7 reboots: still everything works. The 5GHz wifi starts a bit later than the 2.4GHz WiFi, which made me panic at first, but this seems to be a normal process order.
-
Drilled a hole in the bottom cover and installed a permanent UART line for easy access.
Final result:
*********************************************
* U-Boot 1.1.4 (Nov 19 2014, 09:48:01) *
*********************************************
DB120 (AR9344) U-Boot for TL-WDR3600/43x0
DRAM: 128 MB DDR2 32-bit
FLASH: EON EN25Q64 (8 MB)
CLOCKS: 560/450/225/28 MHz (CPU/RAM/AHB/SPI)
LED on during eth initialization...
Hit any key to stop autobooting: 1 0
Booting image at: 0x9F020000
Image name: OpenWrt r7676-cddd7b
Image type: MIPS Linux Kernel Image (lzma compressed)
Data size: 1376556 Bytes = 1.3 MB
Load address: 0x80060000
Entry point: 0x80060000
Uncompressing kernel image... OK!
Starting kernel...
[ 0.000000] Linux version 4.9.152 (buildbot@builds-03.infra.lede-project.org) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7549-217219e) ) #0 Mon Jan 28 08:54:32 2019
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[ 0.000000] SoC: Atheros AR9344 rev 2
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: board=TL-WDR4300 console=ttyS0,115200 rootfstype=squashfs noinitrd
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 125004K/131072K available (3388K kernel code, 175K rwdata, 448K rodata, 268K init, 211K bss, 6068K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:51
[ 0.000000] Clocks: CPU:560.000MHz, DDR:450.000MHz, AHB:225.000MHz, Ref:40.000MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6825930166 ns
[ 0.000010] sched_clock: 32 bits at 280MHz, resolution 3ns, wraps every 7669584382ns
[ 0.008702] Calibrating delay loop... 278.93 BogoMIPS (lpj=1394688)
[ 0.081667] pid_max: default: 32768 minimum: 301
[ 0.086927] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.094316] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.104876] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.115869] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.123887] NET: Registered protocol family 16
[ 0.130341] MIPS: machine is TP-LINK TL-WDR3600/4300/4310
[ 0.139700] registering PCI controller with io_map_base unset
[ 0.383469] Can't analyze schedule() prologue at 803ab684
[ 0.400296] PCI host bridge to bus 0000:00
[ 0.404873] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[ 0.412574] pci_bus 0000:00: root bus resource [io 0x0000]
[ 0.418786] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 0.426365] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.435240] pci 0000:00:00.0: invalid calibration data
[ 0.441410] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1001ffff 64bit]
[ 0.449579] pci 0000:00:00.0: BAR 6: assigned [mem 0x10020000-0x1002ffff pref]
[ 0.457666] pci 0000:00:00.0: using irq 40 for pin 1
[ 0.466430] clocksource: Switched to clocksource MIPS
[ 0.473169] NET: Registered protocol family 2
[ 0.478998] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.486828] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.493926] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.501107] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.507664] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.514894] NET: Registered protocol family 1
[ 0.522622] Crashlog allocated RAM at address 0x3f00000
[ 0.529584] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[ 0.544072] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.550611] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.570810] io scheduler noop registered
[ 0.575183] io scheduler deadline registered (default)
[ 0.581377] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[ 0.591287] console [ttyS0] disabled
[ 0.615355] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[ 0.624987] console [ttyS0] enabled
[ 0.624987] console [ttyS0] enabled
[ 0.632409] bootconsole [early0] disabled
[ 0.632409] bootconsole [early0] disabled
[ 0.646949] m25p80 spi0.0: found en25q64, expected m25p80
[ 0.652443] m25p80 spi0.0: en25q64 (8192 Kbytes)
[ 0.657975] 5 tp-link partitions found on MTD device spi0.0
[ 0.663636] Creating 5 MTD partitions on "spi0.0":
[ 0.668549] 0x000000000000-0x000000020000 : "u-boot"
[ 0.675476] 0x000000020000-0x00000017032c : "kernel"
[ 0.682558] 0x00000017032c-0x0000007f0000 : "rootfs"
[ 0.689246] mtd: device 2 (rootfs) set to be root filesystem
[ 0.695021] 1 squashfs-split partitions found on MTD device rootfs
[ 0.701351] 0x0000003c0000-0x0000007f0000 : "rootfs_data"
[ 0.708970] 0x0000007f0000-0x000000800000 : "art"
[ 0.715769] 0x000000020000-0x0000007f0000 : "firmware"
[ 0.724039] libphy: Fixed MDIO Bus: probed
[ 0.740258] switch0: Atheros AR8327 rev. 2 switch registered on ag71xx-mdio.0
[ 1.408717] libphy: ag71xx_mdio: probed
[ 2.037826] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd033, driver=Atheros AR8216/AR8236/AR8316]
[ 2.049342] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[ 2.057725] NET: Registered protocol family 10
[ 2.065974] NET: Registered protocol family 17
[ 2.070593] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[ 2.083859] 8021q: 802.1Q VLAN Support v1.8
[ 2.089811] hctosys: unable to open rtc device (rtc0)
[ 2.099707] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[ 2.108132] Freeing unused kernel memory: 268K
[ 2.112643] This architecture does not have kernel memory protection.
[ 2.566444] random: fast init done
[ 2.812567] init: Console is alive
[ 2.816230] init: - watchdog -
[ 3.772669] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 3.841803] usbcore: registered new interface driver usbfs
[ 3.847524] usbcore: registered new interface driver hub
[ 3.853017] usbcore: registered new device driver usb
[ 3.863351] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3.871562] ehci-platform: EHCI generic platform driver
[ 3.877010] ehci-platform ehci-platform: EHCI Host Controller
[ 3.882889] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[ 3.893029] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[ 3.926471] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[ 3.933759] hub 1-0:1.0: USB hub found
[ 3.937945] hub 1-0:1.0: 1 port detected
[ 3.942750] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 3.960546] init: - preinit -
[ 4.536528] usb 1-1: new high-speed USB device number 2 using ehci-platform
[ 4.781307] random: procd: uninitialized urandom read (4 bytes read)
[ 4.788233] hub 1-1:1.0: USB hub found
[ 4.796211] hub 1-1:1.0: 4 ports detected
[ 4.804686] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 5.877682] eth0: link up (1000Mbps/Full duplex)
[ 5.883868] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 8.074374] jffs2: notice: (438) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 8.091504] mount_root: switching to jffs2 overlay
[ 8.125144] urandom-seed: Seeding with /etc/urandom.seed
[ 8.337613] eth0: link down
[ 8.352528] procd: - early -
[ 8.355553] procd: - watchdog -
[ 8.988757] procd: - watchdog -
[ 8.992228] procd: - ubus -
[ 9.101118] random: ubusd: uninitialized urandom read (4 bytes read)
[ 9.109599] random: ubusd: uninitialized urandom read (4 bytes read)
[ 9.116592] random: ubusd: uninitialized urandom read (4 bytes read)
[ 9.124117] procd: - init -
Please press Enter to activate this console.
[ 9.533387] kmodloader: loading kernel modules from /etc/modules.d/*
[ 9.544793] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 9.562889] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[ 9.571065] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[ 9.580891] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 9.595222] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[ 9.654280] xt_time: kernel timezone is -0000
[ 9.713047] PPP generic driver version 2.4.2
[ 9.726807] NET: Registered protocol family 24
[ 9.786842] ieee80211 phy0: Atheros AR9340 Rev:2 mem=0xb8100000, irq=47
[ 9.793731] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[ 9.819284] ieee80211 phy1: Atheros AR9300 Rev:4 mem=0xb0000000, irq=40
[ 9.929056] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 11.242240] urandom_read: 5 callbacks suppressed
[ 11.242249] random: jshn: uninitialized urandom read (4 bytes read)
[ 22.254392] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 22.292260] br-lan: port 1(eth0.1) entered blocking state
[ 22.297794] br-lan: port 1(eth0.1) entered disabled state
[ 22.303697] device eth0.1 entered promiscuous mode
[ 22.308618] device eth0 entered promiscuous mode
[ 22.386708] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 22.458736] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[ 23.317925] eth0: link up (1000Mbps/Full duplex)
[ 23.322682] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 23.390851] br-lan: port 1(eth0.1) entered blocking state
[ 23.396340] br-lan: port 1(eth0.1) entered forwarding state
[ 23.402224] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[ 23.562555] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 25.192895] ath: EEPROM regdomain: 0x80e9
[ 25.197014] ath: EEPROM indicates we should expect a country code
[ 25.203192] ath: doing EEPROM country->regdmn map search
[ 25.208601] ath: country maps to regdmn code: 0x37
[ 25.213464] ath: Country alpha2 being used: XX
[ 25.217981] ath: Regpair used: 0x37
[ 25.221527] ath: regdomain 0x80e9 dynamically updated by user
[ 25.227439] ath: EEPROM regdomain: 0x80e9
[ 25.231501] ath: EEPROM indicates we should expect a country code
[ 25.237697] ath: doing EEPROM country->regdmn map search
[ 25.243083] ath: country maps to regdmn code: 0x37
[ 25.247953] ath: Country alpha2 being used: XX
[ 25.252463] ath: Regpair used: 0x37
[ 25.256002] ath: regdomain 0x80e9 dynamically updated by user
[ 27.539387] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 27.570207] br-lan: port 2(wlan1) entered blocking state
[ 27.575609] br-lan: port 2(wlan1) entered disabled state
[ 27.581587] device wlan1 entered promiscuous mode
[ 27.655008] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 27.712987] br-lan: port 3(wlan0) entered blocking state
[ 27.718536] br-lan: port 3(wlan0) entered disabled state
[ 27.724386] device wlan0 entered promiscuous mode
[ 27.729314] br-lan: port 3(wlan0) entered blocking state
[ 27.734712] br-lan: port 3(wlan0) entered forwarding state
[ 27.757374] ath: EEPROM regdomain: 0x8348
[ 27.761450] ath: EEPROM indicates we should expect a country code
[ 27.767689] ath: doing EEPROM country->regdmn map search
[ 27.773076] ath: country maps to regdmn code: 0x3a
[ 27.777950] ath: Country alpha2 being used: XX
[ 27.782454] ath: Regpair used: 0x3a
[ 27.785995] ath: regdomain 0x8348 dynamically updated by user
[ 27.791917] ath: EEPROM regdomain: 0x8348
[ 27.795979] ath: EEPROM indicates we should expect a country code
[ 27.802179] ath: doing EEPROM country->regdmn map search
[ 27.807586] ath: country maps to regdmn code: 0x3a
[ 27.812444] ath: Country alpha2 being used: XX
[ 27.816964] ath: Regpair used: 0x3a
[ 27.820578] ath: regdomain 0x8348 dynamically updated by user
[ 28.257105] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 76.236483] random: crng init done
[ 90.569847] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 90.576571] br-lan: port 2(wlan1) entered blocking state
[ 90.581972] br-lan: port 2(wlan1) entered forwarding state
BusyBox v1.28.4 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 18.06.2, r7676-cddd7b4c77
-----------------------------------------------------
root@XXXXXXXXXX:/#