brick tplink problem wifi wdr4300

root@OpenWrt:~# cat /etc/config/wireless
root@OpenWrt:~#

there is nothing written

this is a new installation from the original tplink firmware, now the openwrt version 19.0.7.2 is installed. thanks

Here your wifi hw initializations failed most likely because of corrupted art partition.

Do you have any backup of your flash, especially the art partition?

no i have no backup, the only thing i have a wdr3600 can be useful?

I have a WDR4300, and can provide a backup from my ART partition, it somebody tells me how to extract it.

thanks !!!!!!! would you give me a great help, I hope it is a simple thing to do.

Verify mtd device of art partition from partition table:

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 007d0000 00010000 "firmware"
mtd2: 001d140f 00010000 "kernel"
mtd3: 005febf0 00010000 "rootfs"
mtd4: 003d0000 00010000 "rootfs_data"
mtd5: 00010000 00010000 "art"

Backup:
dd if=/dev/mtd5 of=/tmp/art.bin bs=64k

Restore:

opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd write /tmp/art.bin art

The package kmod-mtd-rw makes your read-only partitions temporarily (until next reboot) writeable.

@idris83 Please do a backup before you restore any other backup and store it on your computer.

This link should lead you to a file called "art.bin", generated according to @juppin instructions, on a "TP-Link TL-WDR4300 v1" running "OpenWrt 19.07.2 r10947-65030d81f3":

Hope this helps!

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 007d0000 00010000 "firmware"
mtd2: 00185c43 00010000 "kernel"
mtd3: 0064a3bc 00010000 "rootfs"
mtd4: 003e0000 00010000 "rootfs_data"
mtd5: 00010000 00010000 "art"

thanks tonight when i get home i try because i am at work now. thanks

hello sorry I'm not an expert but could you give me a guide of how to do it? I don't know how to install it.thank

This are commands that you have to execute in a shell, most likely a ssh session.

  • Back up whatever is in the ART partition now:
    cat /dev/mtd5 > /tmp/oldart.bin
  • SCP the old ART to your PC, and SCP the new ART file to the router.
  • Unlock the mtd for writing with mtd-rw
  • Write the new ART: mtd write /tmp/art.bin art.

Very important make sure to back up whatever is in the ART now in case it turns out to be needed later.

1 Like
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/releases/19.07.2/targets/ath79/generic/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading http://downloads.openwrt.org/releases/19.07.2/targets/ath79/generic/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/targets/ath79/generic/kmods/4.14.171-1-b84a5a29b1d5ae1dc33ccf9ba292ca1d/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_kmods
Downloading http://downloads.openwrt.org/releases/19.07.2/targets/ath79/generic/kmods/4.14.171-1-b84a5a29b1d5ae1dc33ccf9ba292ca1d/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/base/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/luci/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/packages/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/routing/Packages.sig
Signature check passed.
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading http://downloads.openwrt.org/releases/19.07.2/packages/mips_24kc/telephony/Packages.sig
Signature check passed.
root@OpenWrt:~# opkg install kmod-mtd-rw
Package kmod-mtd-rw (4.14.171+git-20160214-1) installed in root is up to date.
root@OpenWrt:~# insmod mtd-rw i_want_a_brick=1
root@OpenWrt:~# dd if=/tmp/art.bin of=/dev/mtd5 o bs=64k
BusyBox v1.30.1 () multi-call binary.

Usage: dd [if=FILE] [of=FILE] [ibs=N obs=N/bs=N] [count=N] [skip=N] [seek=N]
        [conv=notrunc|noerror|sync|fsync]
        [iflag=skip_bytes|fullblock] [oflag=seek_bytes]

Copy a file with converting and formatting

        if=FILE         Read from FILE instead of stdin
        of=FILE         Write to FILE instead of stdout
        bs=N            Read and write N bytes at a time
        ibs=N           Read N bytes at a time
        obs=N           Write N bytes at a time
        count=N         Copy only N input blocks
        skip=N          Skip N input blocks
        seek=N          Skip N output blocks
        conv=notrunc    Don't truncate output file
        conv=noerror    Continue after read errors
        conv=sync       Pad blocks with zeros
        conv=fsync      Physically write data out before finishing
        conv=swab       Swap every pair of bytes
        iflag=skip_bytes        skip=N is in bytes
        iflag=fullblock Read full blocks
        oflag=seek_bytes        seek=N is in bytes

N may be suffixed by c (1), w (2), b (512), kB (1000), k (1024), MB, M, GB, G
root@OpenWrt:~#

the last passage I don't know what to do

root@OpenWrt:~# mtd-rw
-ash: mtd-rw: not found
root@OpenWrt:~# mtd write /tmp/art.bin
Usage: mtd [<options> ...] <command> [<arguments> ...] <device>[:<device>...]

The device is in the format of mtdX (eg: mtd4) or its label.
mtd recognizes these commands:
        unlock                  unlock the device
        refresh                 refresh mtd partition
        erase                   erase all data on device
        verify <imagefile>|-    verify <imagefile> (use - for stdin) to device
        write <imagefile>|-     write <imagefile> (use - for stdin) to device
        jffs2write <file>       append <file> to the jffs2 partition on the device
Following options are available:
        -q                      quiet mode (once: no [w] on writing,
                                           twice: no status messages)
        -n                      write without first erasing the blocks
        -r                      reboot after successful command
        -f                      force write without trx checks
        -e <device>             erase <device> before executing the command
        -d <name>               directory for jffs2write, defaults to "tmp"
        -j <name>               integrate <file> into jffs2 data when writing an image
        -s <number>             skip the first n bytes when appending data to the jffs2 partiton, defaults to "0"
        -p <number>             write beginning at partition offset
        -l <length>             the length of data that we want to dump
        -F <part>[:<size>[:<entrypoint>]][,<part>...]
                                alter the fis partition table to create new partitions replacing
                                the partitions provided as argument to the write command
                                (only valid together with the write command)

Example: To write linux.trx to mtd4 labeled as linux and reboot afterwards
         mtd -r write linux.trx linux

root@OpenWrt:~#

I can't even do this.thanks

Sorry there was a typo and a wrong command.
You have to use the mtd until.

Do a backup before and download your art.bin with winscp from your router.

Then upload the new art.bin with winscp to /tmp and restore it with:

opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd write /tmp/art.bin art

thanks and back to work :grinning:

thanks for your help you have been very kind. thanks thanks

1 Like