Unstable firmware on Rocket M2

Hi,

I have a mesh network of 2 x Gl iNet AR300M16-Ext (using 23.05.3) and they work perfectly. However, on my Rocket M2, it's nearly impossible to have it working fine.

The tiny firmware on 22.03.6 works smoothly but impossible to get the RM2 connecting to the mesh.
The 23.05.3 generic works smoothly but not enough space to install wpad-mesh-wolfssl and mesh11sd through opkg. If I force those two package with a custom-build, it's timing out all the time. The flash is so full it doesn't really work (and it sees the mesh and connects to it)

So I tried to custom build again to reduce the firmware size, and I wasn't sure what to remove.

  • Removing ipv6 reduce size but impossible to have the RM2 connecting to the mesh
  • Removing ppp pppoe, opkg and some other package (don't really know what they all do so it was like russian roulette) somehow work but the firmware is highly unstable and freezes; loosing connection

The last custom build I did was the one who worked the best and yet it dropped connection a lot and highly unstable

base-files busybox dnsmasq dropbear fstools kmod-ath9k libc libgcc libustream-mbedtls logd luci mtd netifd nftables odhcp6c odhcpd-ipv6only procd procd-seccomp procd-ujail rssileds swconfig uci uclient-fetch urandom-seed urngd wpad-mesh-wolfssl mesh11sd

What can I remove more? I just want and off-grid network. I don't need internet. It's supposed to connect an RPI server to some smartphones (and 2-3 multicast apps for comms). Nothing more.

How can I do a tiny build, like tiniest one?
Thanks for your help

If you don't need Point-to-Point protocol support (ppp and pppoe) and be able to install software after you've flashed the image (opkg) (which I highly doubt since you're so strapped for space anyway) they're fine to remove.

Do you need DNS and DHCP? If those are served by another device in the network, I would remove dnsmasq and odhcp6. I've never setup mesh myself but I don't think it needs DNS and DHCP to function. Also, if you can manage through SSH you can remove luci.

You say you're running out of flash but is the RAM full as well? If your device have 32 MB of RAM you'll never be able to run OpenWrt 23.05 satisfactory anyway, see https://openwrt.org/supported_devices/openwrt_on_432_devices

Hi Dannil,

Thank you for replying.

I tried a new firmware build by removing ppp and pppoe yesterday, along with ipv6 but it wasn't successful. After a few hours trying numerous combinations of packages, I ended up downgrading to 21.02.7 on my 3 nodes (without removing anything and just adding the two package I needed.)

It works fine as we speak. So I may not need the last version for what I aim to do. I didn't know, in my case, I had to get the same firmware version across all my nodes to have the mesh working.

Try removing or disabling mesh11sd. You don't need it; its main use is as a dynamic parameter configuration daemon, so you don't have to reboot the router after making changes to the mesh parameters.

I have a mesh system consisting of a Linksys EA8300 and some TP-Links C7v2 routers. When I upgraded to 23.05.3, everything worked until mesh11sd 3.1.0 was pushed out to replace mesh11sd 2.0.0. After this upgrade, the system would only run for a minute or two before the wireless kept disconnecting and resetting.

1 Like

Dang, didn't know that. So I could go only with wpad-mesh-wolfssl and it would just work with my nomade mobile nodes?

In my experience, mesh11sd is not required to run a mesh system. The downside to not having mesh11sd, as I understand it, is that if you change your setup parameters, you may need to reboot the router for the settings to take effect.

If you do use Mesh11sd, it has also undergone a significant update and requires deleting your old mesh11sd setup files as well as your wireless mesh settings.

See:

https://openwrt.org/docs/guide-user/network/wifi/mesh/mesh11sd

Here's an excerpt:

  • WARNING - It is not recommended to upgrade to v3.1.0 or or higher, from a lower version eg 2.0.0 as the configuration is very different. If upgrading, remove the old version, delete the /etc/config/mesh11sd file and then remove all mesh configuration from /etc/config/wireless before installing the new version.

I'm gonna make a backup of my actual setup and try without Mesh11sd and the last firmware to see how it goes. Thanks for the precious information Thomas.

I will share the outcome here.

If you only have two nodes you might get away with it. There are essential parameters that must be set for a multiple ( > 2 ) node mesh to establish and be stable and none of these can be set in the wireless config.

As I said, it is required to set mesh parameters that cannot be set in the wireless config. It is done dynamically and changes can be made on the fly, but without mesh11sd, no amount of rebooting will make the mesh work correctly.

You could of course write your own script to set essential parameters once the mesh interface has come up, but that is waht mesh11sd is designed to do, so what would be the point?

Yes, and you know the reason this happened to you (I explained it to you in your own thread) and you even pointed out the problem earlier in this thread:

The Rocket 2M has 64 MB ram, so not excellent, but ok.
But it has only 8MB flash so is very tight.

You can use the firmware selector to try options for a cut down image, and I think this will work for you with 23.05.3

https://firmware-selector.openwrt.org/?version=23.05.3&target=ath79%2Fgeneric&id=ubnt_rocket-m

In the installed packages box:
Put a minus sign in front of the following -
-kmod-nft-offload
-kmod-usb-ohci
-kmod-usb2
-luci
-opkg
-ppp
-ppp-mod-pppoe
-wpad-basic-mbedtls

and add the following (without the minus sign)
wpad-mesh-mbedtls
kmod-nft-bridge
mesh11sd

Try it and see. It does not matter if there is not enough flash left to save config changes over a reboot because everything will be in the image.

If this works, the ssid will come up as "OpenWrt-2g-xxxx" where xxxx is the last 4 digits of the mac address.

Once you verify it is working you can go back to the Firmware Selector and add some uci-defaults entries to set ssid, encryption type/key, country code etc.

EDIT:
The ar300m-16 has 16MB flash and 128Mb ram so does not need its image "reducing" at all

1 Like

Not strictly necessary, but a very sensible thing to do.

Thanks for the in-depth explanation. I will try that!

You may have missed my edit - the ar300m-16 will be just fine as it has 16MB flash and 128Mb ram, so nothing special to do there to make it all fit, although making a custom image with everything ready to go will be quite convenient.

1 Like