Hello,
I have a TP-Link TD-W8970 v1 router that I have used with OpenWRT (ROOter flavour) for a long time. Recently I have updated the firmware inside the router with a vanilla OpenWRT version 23.05.2 downloaded from https://firmware-selector.openwrt.org/?version=23.05.2&target=lantiq%2Fxrx200&id=tplink_tdw8970
The vanilla firmware doesn't do everything I want, as I may need to attach to it and use a Huawei 4G USB modem (which is why I was using ROOter originally) as an emergency measure if my new 4G router (which I use just as a modem) fails. The TP-Link router doesn't have enough space to install all the required packages for it post-installation, so I have used image builder (actually, the request build feature within the firmware download page for the device) to include the following packages: kmod-usb-net-huawei-cdc-ncm luci-proto-ncm picocom comgt-ncm kmod-usb-serial-option
in addition to those already listed on the webpage.
The generated firmware gets installed fine and everything works. For reference later, this is the output of df
with this firmware installed:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 4608 4608 0 100% /rom
tmpfs 27752 108 27644 0% /tmp
/dev/mtdblock4 448 232 216 52% /overlay
overlayfs:/overlay 448 232 216 52% /
tmpfs 512 0 512 0% /dev
Also for reference later, when I go to the Software page in Luci I have 216 KiB of free space to install further packages.
Now, despite everything working with this configuration, I would like to install some other packages, although they're not a must. For this, I thought I'd go the extroot way. Again, even with a vanilla firmware, I don't have enough space to install all the required packages, so I built a different custom firmware using the webpage. This time, I added the following packages (which are also those suggested in the OpenWRT wiki in the extroot guide page), again on top of those already present in the webpage: block-mount kmod-fs-ext4 kmod-usb-storage kmod-usb-ehci
. Notice that since my router has USB2 ports I decided to install kmod-usb-ehci
and skipped kmod-usb-ohci
and kmod-usb-uhci
instead. I have formatted a 1 GB pen drive with ext4 and it gets recognised by the firmware, so I assume the packages I installed are enough.
However, I'm having all sorts of issues with this firmware, which is basically unusable. To begin with, this is the output of df
:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 5120 5120 0 100% /rom
tmpfs 27752 116 27636 0% /tmp
tmpfs 27752 80 27672 0% /tmp/root
overlayfs:/tmp/root 27752 80 27672 0% /
tmpfs 512 0 512 0% /dev
This is the output of block info
:
/dev/mtdblock3: UUID="72f49f62-19221b68-08514f4a-36428fae" VERSION="4.0" MOUNT="/rom" TYPE="squashfs"
/dev/sda1: UUID="aab27360-8f9b-4b75-8b97-36d4574337ec" LABEL="extroot" VERSION="1.0" TYPE="ext4"
And this is the output of block detect
:
config 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'
config 'mount'
option target '/mnt/sda1'
option uuid 'aab27360-8f9b-4b75-8b97-36d4574337ec'
option enabled '0'
As you can see, /overlay
doesn't get created (the folder is present in the filesystem, but it's empty). As a result, any configuration that I apply after firmware installation doesn't survive a reboot. Further, if I go to the Software page in Luci the available space is now about 27 MiB, which must be wrong if you compare it to the value I get with a working firmware. Obviously, I cannot proceed with the extroot creation process, and I had to revert the firmware to the one I talked about at the beginning of the post.
Does anyone have any idea of what's happening, and how can I solve the issue? In case someone asks, both firmware images are below the 8 MB of the router flash space (the first one is 7.2 MB and the second one 7.4 MB).