TP-Link 8970 only 512KB of space left, which I can't even set up extroot

I can't do anything. On the wiki the device supposedly have 8MB flash, but only 512KB usable. I assume it's the kernel taking space? So this device is trash then?

It is pretty old, and not going to be particularly good in terms of performance. Wireless, in particular, will be really poor because it's a Broadcom chipset.

But with respect to the space available:
Have you flashed the standard official OpenWrt image to the device? What's currently installed? Did you do any additional package installations?

ubus call system board

There are ways to fit the packages for extroot.

In parciular, building your own image with the extroot packages pre-installed will likely help a lot -- it gets compressed when it is in the base image; there is no compression when it is installed later. You can omit packages which can then be installed after extroot is complete, too.

I just installed 23.05.3 firmware. Perfectly clean install, only 250kb or so available. Then I try extroot, no can't do that. For extroot there are also programs need to be installed so.

I am thinking, maybe I flash something as old as 18.00 something, then there will be enough space. Then flash the latest? Your advices look too complicated tbh.

It doesn't work like that. You need to use the latest of the base install, perform extroot, then install the rest. You cannot install an old version of OpenWrt into the flash and a new version into extroot... they must be the same version.

ubus call system board

You could use image builder to generate an image without the webui, install it once extroot is up.


And/Or replace wpad to hostapd losing wifi client and mesh.

mine is a 3x3 ath9k radio, nice radio,i don't know if some model have broadcom radio.
@bosukes use an older version of openwrt, or make a custom firmware.

1 Like

That's why I am hoping to see the ubus call info....

The V3 is Broadcom:

I didn't look at the others, yet.

1 Like

8 MB physical flash, 7680 KB usable for the firmware - with 7296.6 KB for a 23.05.3 release image, there's no need to wonder.


Is the xDSL function still required? If not, using the image builder as suggested above to remove the xDSL related packages (which take up a significant chunk of flash space) and include the extroot related packages instead (no need to remove the LUCI packages) would be one way forward. There are now a number of relatively inexpensive routers available that are well supported by OpenWrt if the OP decides to retire the 8970 too.

If the xDSL function is still required, I can see a couple of ways forward:

  • use the device only to bridge the xDSL connection to another router (you might be able to do this with the available free space in 23.05.3, or you might need to go back to 22.03 - in this scenario with the device bridged the security requirements can be more relaxed hence using 22.03 can be viable)
  • build the image from source, changing the kernel compile options from "speed" to "size" and increasing the SquashFS block size from 256kB to 1024kB; from experience this approach should save enough flash space to allow inclusion of the extroot related packages in the built image (so they're compressed instead of being uncompressed when added later). There are some other config options that can be disabled to reduce kernel size too but that's a lot more detail.

Sadly there now aren't any production xDSL modems available that OpenWrt can support (even the FB7520/7530 having been replaced with Broadcom based designs).

Sorry can't put ubus call info, my friend has the device now. It's v1.2 btw. not v.3

I deleted all luci packages, still not enough space.

did it also delete the uhttpd ?
if not, remove it too.

add the extroot packages in image builder, instead of installing them post flash, it'll save you some space too.

that will not make any difference, you ll not free memory this way. you need build a firmware, or use an older version.

So I select 8970 in the menu select of that image builder, then just remove the luci packages. Then save it to .config, then build it that way am I right? I've done this for asustor as1002t before, but didn't work, guess it was using different ethernet than I knew.

put a - (minus) in front of all the package names you don't want (-luci), click "Request build", DL the new sysupgrade image, and reflash.

Not delete packages but omit them when combining image in firmware selector.

Just to reiterate and expand on what @frollic and @brada4 have said (as well as what I said earlier) - you must build a custom image using the image builder. You can do this with the firmware selector.

"Removing" packages that are part of an existing firmware image doesn't actually free up any space. Counterintuitively, it consumes additional space because the stuff in ROM is, by nature, read-only, which means that the system must make a bunch of files in the read/write partitions that basically say "this file has been deleted," even though the file still exists in the ROM. Therefore, you need to remove the files before the image is even created... thus the firmware selector's custom image option. At the same time, you can add the additional files you need (such as those required for extroot). After extroot is complete, you can install packages again, including any that might have been intentionally omitted earlier for space saving.

1 Like

I had a W8970 configured as a dumb AP; I was use to get space for extroot by adding "-" to the following pakages:

-dnsmasq -dsl-vrx200-firmware-xdsl-a -dsl-vrx200-firmware-xdsl-b-patch -kmod-atm -kmod-ltq-atm-vr9 -kmod-ltq-vdsl-vr9 -kmod-ltq-vdsl-vr9-mei -kmod-ppp -kmod-pppoa -kmod-pppoe -kmod-pppox -linux-atm logd -ltq-dsl-base -ltq-vdsl-vr9-app -ltq-vdsl-vr9-vectoring-fw-installer -luci-proto-ipv6 -luci-proto-ppp -odhcp6c -odhcpd-ipv6only -ppp -ppp-mod-pppoa -ppp-mod-pppoe
1 Like

Which section do we remove those packages? Do I * ton the "Build the Openwrt Image Builder" thing?