How to install OpenWrt packages in RAM “permanently” on space-constrained devices

OpenWRT is a great open-source operating system for embedded devices with great extensibility, benefiting from thousands of additional packages with extra functionality.

These additional packages can be installed on the device’s internal storage when such storage is available. For situations where the storage space is limited, OpenWRT can also install those packages in RAM memory instead of flash storage – with the side-effect of such installations not surviving reboots.

Making the Brovi E3372-325 4G/LTE modem work on OpenWRT 22.03

The device seems to have some compatibility quirks concerning Linux support at least with the firmware version I received it with. An elusive update which cannot be found anywhere is claimed to resolve the issues.
For OpenWRT I eventually managed to use information from multiple sources to botch up a script that performs the necessary mode switching to get it working.

First glance and adding external antennas to the GL.iNet GL-MT300N-V2

I recently got some new toys to play with, one of them being the GL.iNet GL-M300N-V2 mini (read that as ultra-small) smart router.
The “Mango” is indeed very small, and for the price packs some pretty decent hardware specs, not to mention that it’s running a (slightly modified – with good additions I’d say) OpenWrt release.

How to change MAC address on Ubuntu KVM virtual machine

If you’ve tried changing the MAC address on a recent Ubuntu VM running under KVM/QEMU, you may have noticed that changing the address in the VM configuration on the host yields no result in the guest machine. Also, a change done using either Virtualmin’s configuration or the command line on the guest doesn’t survive a reboot.

How to configure WireGuard VPN as gateway on Rocky Linux / CentOS 8

From WireGuard’s perspective, there is no server and client – all points in a WireGuard network are called peers, and they can connect to each other without a central point and not necessarily in a star topology. However, in this particular configuration scenario and because one peer is central to the whole infrastructure I’m setting up (as it’s the only one to always have a static public IP address, open ports and it can also be used to tunnel all other peers’ traffic), I’m calling it a server – while all other peers I will consider clients.

How to correct sensors information with Home Assistant

Some of the smart power plugs I’m using to monitor power usage appear to report incorrect information when viewed in Home Assistant through the Tuya bridge. The information is fine directly in the Tuya app, so the app is probably doing some data processing behind the hood.
Unfortunately, there’s no way of correcting this directly in the entities as managed by Home Assistant. To display (and use) the right sensors values in HA we need to (manually) create some aliases and mathematically correct the values.

How to stop Jellyfin from logging to system log

By default, Jellyfin on CentOS logs to the main system log. This isn’t an issue except in odd instances, like for example when part of library is located on a remote network attached storage that isn’t permanently available.
This makes Jellyfin log thousands of lines of warnings when (re)scanning the libraries and hits the missing media locations which in turn causes lfd to send out alerts about the syslog getting flooded.

How to (try to) recover data from failed RAID0 array

For experimental reasons I was running a RAID0 array (the speed!) off of two Sandisk Cruiser Mini USB sticks connected to a Raspberry PI.

As expected, due to wear and tear one of the flash memories eventually failed causing the array to go read-only and crash everything that was writing to it, including the array activation.