Possibilities to get more free storage space for TL-WR841N v8.x?

Hi all,

I'm quite new to OpenWRT and want to try it out with a TL-WR841N v8.x. I'm asking my question here because the OpenWRT website redirects to this board.

Because I don't want to use root for administrating OpenWRT I had to insatll the sudo package. Even installing only this one additional package it seems that there is no more space left:

# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  576.0K    428.0K    148.0K  74% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    14.0M      1.1M     12.8M   8% /tmp
/dev/mtdblock3          576.0K    428.0K    148.0K  74% /overlay
overlayfs:/overlay      576.0K    428.0K    148.0K  74% /
tmpfs                   512.0K         0    512.0K   0% /dev

My first idea was to uninstall LuCI because I don't want to a web interface (which I even could not secure with SSL at the moment because there would be no space to install luci-ssl) but as I understoof FAQ this is not possible:

By removing packages you installed after flashing OpenWrt onto your Router. You cannot remove packages on the SquashFS partition, which is included in the image you flashed.

So now I have 3 possibilites:

  • Use root instead of a custom root-account.
  • Buy new hardware.
  • Compile OpenWRT on my own without LuCI.
  1. Are there any other possibilities to get more space I maybe forgot to try?
  2. If I would try to comile OpenWRT on my own: Why there are 2 compiling tutorials:

and which one should I use?

  1. Will compiling OpenWRT on my own without LuCI give me enough additional space for sudo, screen and the additional packages I would like to have maybe later? :slight_smile:

Thank you for OpenWRT/LEDE (and merging the communities again)!

Edit: Removed links for my used OpenWRT image and FAQ because of board restrictions for new users.

This solution involves the least efforts (apart from money) and will make you happier than any other solution.

Devices with only 4 MB flash were already a PITA back in 12.09, and the situation has not gotten any better in the last 5 years.

1 Like

did you tried enabling su in busybox ? or just sudo is working for you ?

I understand. Thank you for your honest advice. Any recommendations for router hardware which has good chances to be well supported by OpenWRT/LEDE for the next years?

Well I followed https://wiki.openwrt.org/doc/howto/secure.access which offers 3 methods to give a non-privileged user root privileges. All methods need the sudo package for visudo command. Is there any other way?

There are several threads about that.

But your best chances are with popular devices that are powerful today ( = still worthwhile in 3-5 years)... Meaning at least 64-128 MB flash and 256+ MB RAM.

Right now probably ipq806x devices like R7800 and mvebu devices like WRT3200ACM (and the older WRT1900AC routers)) plus some Mediatek-based devices offer the widest user-base support and developer interest.

2 Likes

Depends on your budget.

Personally, I'd not suggest anything with less than 16 M of flash and 128 M of RAM ("16/128"). hynman's recommendation of 64/256 is a good one.

If you have or are considering more than a couple hundred Mbps and want to do traffic shaping, I'd recommend an ARM processor. If you're throwing in anything CPU intensive (such as VPN), make that at least a dual-core device.

Long-term approaches also include an x86 as a router and either wireless "routers" acting (only) as APs, or dedicated APs.

There are a couple (long) threads that may be worth wading through for some ideas:

1 Like

You can still use your device fully fine.
Just remember one thing: Uninstalling/removing things dont save space on a read-only squashfs file system.
https://wiki.openwrt.org/doc/techref/filesystems

The solution to that is to use the build system for having everything inside the squashfs and when possible nearly nothing inside of JFFS2. Dont use opkg on the device itself.

Build openwrt on ubuntu/debian:

apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev subversion mercurial
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

Now select your device, you can also set SquashFS Block-Size from 256 to 1024. That "could" slow down the disk(ROM)-access time but would make more space available (You can compare it to giving lzma a bigger amount of data to work with.)
Then you can mostly fit luci+openwrt and so on into the image and you have all you need.

No need of new device.

IF you want to get some device for some reson, stay away from those non-ath9k based devics. They are terrible for freedom and require closed-source firmware files to run the wifi. One of the best free router devices is the WNDR4700. Its really fast, have great wifi and huge ram/rom.

1 Like

Thx for all your advices. Two more questions:

  1. Before I try to compile my own image: In my case even packages like lucie-ssl are missing in the pre-compiled image 15.05.1 and I thought the reason for this is the general very limited storage situation of my router. Is there really enough space in the squashfs for an image with more than the current packages? How can I determine if the compiled result will fit?

  2. I tested again to get what I need with the current provided version. Can someone explain me why there is less storage space after I uninstalled a package again which I've installed on my own before:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  576.0K    440.0K    136.0K  76% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    14.0M   1012.0K     13.0M   7% /tmp
/dev/mtdblock3          576.0K    440.0K    136.0K  76% /overlay
overlayfs:/overlay      576.0K    440.0K    136.0K  76% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# opkg remove luci-ssl
Removing package luci-ssl from root...
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  576.0K    448.0K    128.0K  78% /
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    14.0M      1.1M     12.9M   8% /tmp
/dev/mtdblock3          576.0K    448.0K    128.0K  78% /overlay
overlayfs:/overlay      576.0K    448.0K    128.0K  78% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# opkg remove --autoremove luci-ssl
No packages removed.

?

While I think that being able to compile your own firmware is a great thing, take a moment and think that you're worrying about 8k of space. There is a reason that there is the strong warning that 4 MB of flash and 32 MB of RAM is insufficient. While there are some that cling onto beloved devices for personal or ideological reasons, you may find the pain of working with too small of a device, or one that doesn't support current security and wireless standards not worth the small to modest cost of entry-level devices with current technology.

15.0.5.1 is over two years old and should be considered insecure, at a minimum you should be working with 17.01.4 or its forthcoming release. 18.06, when available, is preferred.

The git branches are

  • lede-17.01
  • openwrt-18.06

No, you will never get luci-ssl onto a 4 MB device. There really isn't an easy way to find out what will fit except by trying it. If you know something like LuCI is a couple hundred kB before SSL and the SSL packages are a couple hundred kB, you can guess that if you're already up against the limit, it is not going to fit.

You can get a good idea by considering that the squashfs image is very, very roughly half the size of the uncompressed packages. Their sizes are on the OpenWRT site package listings. You'll need to include all their dependencies, and all their dependencies,... Easier once you have a build system up an running to "try it and see". binwalk can tell you the size of the squashfs image in your built firmware. There is a minimum size to the writable partition as well, or the file system won't function.

A 4 or 8 kB change in the jffs overlay system isn't a lot to be worried about. Might be a directory structure that has changed. Things like that happen all the time but few worry about a 4k sector on even a 100 MB drive.

1 Like

Buy a new SPI nor flash, do a backup of your old one, flash the new one, desolder the old one and solder the new one...

I had bought long time ago some W25Q128FV for all my aging WR841 devices.
Additionally i upgraded every device to 64MB RAM, but currently i only use one of my four WR841´s as an outdoor ap.

First of all thank you for your detailed explanation. I friend will send me a TL-WR842N (which has 8MB) to start with and get a feeling for OpenWRT before I invest in better hardware.

Anyway two more questions:

A 4 or 8 kB change in the jffs overlay system isn’t a lot to be worried about. Might be a directory structure that has changed. Things like that happen all the time but few worry about a 4k sector on even a 100 MB drive.

The point I didn't get: Why there is less space on the device after I uninstalled a package? This doesn't make any sense for me.

Buy a new SPI nor flash, do a backup of your old one, flash the new one, desolder the old one and solder the new one…

I would do this just for fun but is it possible with a standard soldering iron? Would I need any special tools for this because you say "flash the new one" before "solder the new one"?

The rootfs is using squashfs, a readonly, but highly compressing, filesystem, all changes are done on a read/ write overlay (backed by jffs2); changes include the whiteouts needed for file deletions.

Yes

As programmer i use something like this. You could also use a linux system with spi interface, such as raspberry pi...
And as software i use flashrom.
You could flash your padded backup to the new one and after first boot write only the art partition from within openwrt in art partition.
To make art partition temporary writable you could use this commands:

opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
1 Like

I'v been search for W25Q128FV and found few modifications like W25Q128FVEIG, W25Q128FVFIG. So I have a few questions:

  1. Should I use any W25Q128FV, or I need specific chip?
  2. Can I use chip from aliexpress or they are crap that I will throw out?

Any success with upgrading flash and RAM?

Hi,
did the new router with 8MB Flash / 32MB RAM work for you?
Can you install packages and change the configuration?

THX

HI @cmonty14

did the new router with 8MB Flash / 32MB RAM work for you?
Can you install packages and change the configuration?

I didn't try and bought an Belkin Linksys WRT3200ACM instead. Sorry. :confused: