Dlink DIR-3040 stuck in initramfs and wont upgrade

Dlink dir-3040 A1 v1.01

-Tried upgrading from dlink firmware using firmware selector 24.10.0 and
using from Lucky1's server "openwrt-23.05.3-ramips-mt7621-dlink_dir-3060-a1-squashfs-factory with 3040 header.bin"
-Wouldn't accept it.

I then tftp the 24.10.0 kernel initramfs firmware to sdram and that got me into openwrt (initramfs mode). I then (under luci) flashed it with the upgrade image and it rebooted back into dlink firmware.

I then (after finding an old windows laptop) flashed the openwrt 24.10.0 recovery firmware via dlink recovery web interface.
This now has me loading openwrt every boot in initramfs mode (note: from the flash; not tftp to sdram).

When I upgrade flash under luci I see the messages from the UART before it reboots and loads openwrt in initramfs mode again.

verifying sysupgrade tar file integrity
cannot find ubi mtd partition rootfs
sysupgrade failed
umount: can't unmount /dev: Resource busy
umoun[  187.851818] reboot: Restarting system
t: can't unmount /tmp: Resource busy

It does the same thing when trying to use the snapshot image

root@OpenWrt:/proc# cat mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "Bootloader"
mtd1: 00080000 00020000 "config"
mtd2: 00040000 00020000 "factory"
mtd3: 00040000 00020000 "config2"
mtd4: 02800000 00020000 "firmware"
mtd5: 02000000 00020000 "private"
mtd6: 02800000 00020000 "firmware2"
mtd7: 00600000 00020000 "mydlink"
mtd8: 00880000 00020000 "reserved"
root@OpenWrt:/# mount
tmpfs on / type tmpfs (rw,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
tmpfs on /dev type tmpfs (rw,nosuid,noexec,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,noatime)
bpffs on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,noatime,mode=700)
root@OpenWrt:/proc# ubus call system board
{
        "kernel": "6.6.73",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7621 ver:1 eco:3",
        "model": "D-Link DIR-3040 A1",
        "board_name": "dlink,dir-3040-a1",
        "rootfs_type": "initramfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0",
                "revision": "r28427-6df0e3d02a",
                "target": "ramips/mt7621",
                "description": "OpenWrt 24.10.0 r28427-6df0e3d02a",
                "builddate": "1738624177"
        }
}

You have to check with lucky1?

While redoing everything over and comparing to the first go, I figured out my blunder.

When I renamed the files I moved to the windows machine for the dlink recovery, I renamed the firmwares incorrectly.

I ended up flashing the kernel firmware instead of the recovery firmware during the dlink recovery phase. And my subsequent attempts continued referencing the wrongly named firmware.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.