Is it possible to install and use MR3020 v1.9 OpenWrt 2021?

Is it possible to install and use MR3020 v1.9 OpenWrt 2021 because I cannot use the "opkg update" command to update my MR3020 V1.9 OpenWrt.

Please, help me.

yes, but it's ancient https://openwrt.org/toh/tp-link/tl-mr3020 , and it won't be much room for additional packages once you've installed openwrt.

yes, I can install it but I cannot seem to be able to update using "opkg update" command.

and there's no error at all, just silence ?
we're no mind readers.

I seem to be able to run the command again, but I wasn't be able to run it after install it

The devicepage lists 17.01 as last supported OpenWrt release, for a reason:

From the devicepage:
grafik

You should take this seriously.

You have already wasted a lot of time with this device, and I assume you will be wasting a lot more time trying to get OpenWrt to work on this underspec'ed device.

My first device almost 10 years ago was a MR3020. Already back then, it was no fun at all to constantly fight with too little flash and too little RAM.
Rest assured, the situation has not improved, but in fact worsened since then.

You will be much happier, have a way better OpenWrt experience and waste less of your precious lifetime if you buy a device that has sufficient resources and is up for the task, i.e. 8 or 16MB flash, 64 or 128MB RAM (higher values prefered).

1 Like

I just wanna try to learn openwrt and make a wifi pineapple mk5 clone so I just gonna try everything I can in my freetime.

learning something based on an deprecated firmware version probably isn't the best of ideas,
a lot have changed since then.

it's like learning how to service an 1970ies Ford, and then expect to be able to repair the new
electric Mustang - it's got a steering wheel, and four wheels, but pretty much everything else is
different/new.

Do you need a GUI for configuring OpenWrt, or are you happy with command line configuration?

1 Like

Agreed, but I want to build a budget wifi pineapple clone with mr3020 openwrt

It's a lot easier to learn OpenWrt on adequate hardware where you can try things without hitting a memory limit. The GL-MT300n-v2 is a suitable replacement for MR3020.

opkg uses a lot of RAM, it is very prone to crash a 32M RAM device. Use Image Builder to make an image with the packages you want. Leave out opkg to save space, it's useless at runtime here.

1 Like

It should be possible to configure your old device using 17.01.07, but you will need to use an external USB2 stick/drive to increase storage capacity and memory for the extra packages (use a failrly decent one for better performance). You will also need a linux x64 system (wsl ok) with dependancies to run imagebuilder and follow the guide for extroot. Create 2 partitions on your USB drive/stick (you can't do it on the device because no room for fdisk try DiskGenius perhaps or gparted), one being a 1gb swap partition and the rest an ext4 partition. Get the device mounting /overlay to the /dev/sdaX ext 4 partition by setting up extroot using ssh and uci commands, mount your swap drive and after 1st successful extroot boot with swap, copy your config files to you imagebuilder files folder eg
scp -r root@openwrt.lan:/rwm/upper/etc/* $HOME/tl-mr3020-v1/files/etc/.
Then rebuild and reflash new firmware again. Now you can opkg update and add luci packages and more to your extroot partition. Below is a script that will help generate either a minimum luci or extroot firmware for your device.

chief@IG-88:~/tl-mr3020-v1$ cat ./buildfw.sh
#!/bin/bash
# OpenWrt firmware builder
# Set up variables
export profile="tl-mr3020-v1"
export ver="17.01.07"
export files="$HOME/$profile/files"
export fwdir="$HOME/$profile/firmware"
export source="$HOME/$profile/$ver"

# Trim base packages used in build
# Remove ip6, ppp, ssl and usb1 packages
pkgs="-ppp -ppp-mod-pppoe "
pkgs+="-ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd-ipv6only "
pkgs+="-luci-proto-ipv6 -luci-proto-ppp -luci-ssl -kmod-usb-ohci"
export pkgs

# luci packages
export luci="uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base luci-app-firewall luci-mod-admin-full luci-theme-bootstrap"

# extroot packages
export extroot="block-mount kmod-fs-ext4 e2fsprogs kmod-usb-storage"

# other addons
export other=""

# Get imagebuilder and unpack if not done already
download="https://downloads.openwrt.org/releases/17.01.7/targets/ar71xx/generic/lede-imagebuilder-17.01.7-ar71xx-generic.Linux-x86_64.tar.xz"
builder="$(echo "$download" | sed 's#.*/##')"
mkdir -p "$HOME/$profile" && cd "$HOME/$profile"; mkdir -p "$files/etc"; mkdir -p "$dir"
[ ! -f "$builder" ] && clear && echo "Downloading $builder" && wget -q --show-progress "$download"
[ ! -f "$source/Makefile" ] && rm -rf "$source" && echo "Unpacking $builder" && tar -xf "$builder" && mv "$(echo "$builder" | sed 's#.tar.xz##')" "$ver"
cd "$source"

# Create menu
DELAY=3
while true; do
  clear
  cat << _EOF_
Openwrt $ver imagebuilder

Please Select:

1. Create Luci Firmware for $profile
2. Create Extroot Firmware for $profile
0. Quit

_EOF_

  read -p "Enter selection [0-2] > "

  if [[ $REPLY =~ ^[0-2]$ ]]; then
    case $REPLY in
      1)
        echo "Building luci Firmware, please wait"
        extra="luci"
        make -s image PROFILE="$profile" FILES="$files" EXTRA_IMAGE_NAME="$extra" PACKAGES="$pkgs $luci $other" BIN_DIR="$fwdir" CONFIG_IPV6=n > /dev/null 2>&1
        break
        ;;
      2)
        echo "Building extroot firmware, please wait"
        extra="extroot"
        make -s image PROFILE="$profile" FILES="$files" EXTRA_IMAGE_NAME="$extra" PACKAGES="$pkgs $extroot $other" BIN_DIR="$fwdir" CONFIG_IPV6=n > /dev/null 2>&1
        break
        ;;
      0)
        return 2>/dev/null
        exit
        ;;
    esac
  else
    echo "Invalid entry."
    sleep $DELAY
  fi
done
# Cleanup and show build summary
rm $(find $fwdir/* -not -name "*$profile*") 2>/dev/null
manifest=$(cat $(ls -d $fwdir/*.manifest | grep $extra) | awk '{print $1}')
echo "Packages included in build are:"
echo $manifest | fold -s
echo -------------------------------------------------------------------------------
echo "Firmwares with $extra packages have been created in $dir"
ls -lh $fwdir | awk '{print $5,$9}'

Output from script looks like

Openwrt 17.01.07 imagebuilder

Please Select:

1. Create Luci Firmware for tl-mr3020-v1
2. Create Extroot Firmware for tl-mr3020-v1
0. Quit

Enter selection [0-2] > 2
Building extroot firmware, please wait
Packages included in build are:
base-files block-mount busybox dnsmasq dropbear e2fsprogs firewall fstools
fwtool hostapd-common iptables iw jshn jsonfilter kernel kmod-ath kmod-ath9k
kmod-ath9k-common kmod-cfg80211 kmod-crypto-crc32c kmod-crypto-hash
kmod-fs-ext4 kmod-gpio-button-hotplug kmod-ipt-conntrack kmod-ipt-core
kmod-ipt-nat kmod-lib-crc16 kmod-mac80211 kmod-nf-conntrack kmod-nf-ipt
kmod-nf-nat kmod-nls-base kmod-scsi-core kmod-usb-core kmod-usb-ledtrig-usbport
kmod-usb-storage kmod-usb2 lede-keyring libblobmsg-json libc libext2fs libgcc
libip4tc libip6tc libjson-c libjson-script libnl-tiny libpthread librt libubox
libubus libuci libuclient libuuid libxtables logd mtd netifd odhcpd opkg procd
swconfig uboot-envtools ubox ubus ubusd uci uclient-fetch usign wpad-mini
-------------------------------------------------------------------------------
Firmwares with extroot packages have been created in /home/chief/tl-mr3020-v1/firmware

2.0K lede-17.01.7-extroot-ar71xx-generic-device-tl-mr3020-v1.manifest
3.8M lede-17.01.7-extroot-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
3.6M lede-17.01.7-extroot-ar71xx-generic-tl-mr3020-v1-squashfs-sysupgrade.bin
2.3K lede-17.01.7-luci-ar71xx-generic-device-tl-mr3020-v1.manifest
3.8M lede-17.01.7-luci-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
3.4M lede-17.01.7-luci-ar71xx-generic-tl-mr3020-v1-squashfs-sysupgrade.bin

To be fair, learning OpenWrt on an old device will ease the pain if you brick it :slight_smile:
Learn first about failsafe mode for your device if there is one. Good luck, Have fun.

1 Like

Thank you so much :>>>

1 Like

but when I reboot my openwrt, it just can't update and return "wget returned 1" and "bad address" error

what are you trying to download in wrt?

I just trying to update it

On small devices, you should be doing a factory reset first to free ram for the up/downgrade. This will also require connecting via lan cable afterwards as wifi is disabled by default. You might have to flash squashfs-factory.bin initially too. The firmware is loaded into RAM via /tmp/ folder. Do you have 4mb RAM spare? Try manual upgrade via cli. Read here about updating on low memory device. Use scp command to copy from PC to device.

chief@IG-88:~/tl-mr3020-v1$ scp firmware/lede-17.01.7-extroot-ar71xx-generic-tl-mr3020-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/sysupgrade.bin
chief@IG-88:~/tl-mr3020-v1$ ssh root@192.168.10.1 sysupgrade -v /tmp/sysupgrade.bin

should I use this video to install alternative OpenWrt for mr3020 v1 ?

Or should I flash DD-WRT instead?
https://dd-wrt.com/support/router-database/?model=MR3020_1.x

Ask the Pulpstone group about that. This forum is for official builds.

Don't do that. As previously discussed, don't run opkg at all on 4/32 hardware.

Is that Windows 7? It's just not a good idea to run old versions of anything to suffer security vulnerabilities and chase bugs that were actually fixed years ago.

ok, so I need to manually install packages on the archive website and install them to OpenWrt via WinSCP (on my windows 10) as I cannot use opkg.