I’ve got confirmation from the team that the other topic you had found (forum thread and github issue) are not resolved yet (balenaOS is still using firmware version 7.45.154 rather than 7.45.173 or later) because the upstream Linux kernel repo (RPi-Distro/firmware-nonfree) has not updated it yet. I am seeking clarification on whether balena could / should get around the upstream repo for this firmware.
can I do that myself with the latest BalenaOS version?
Possibly (but check my warning below). I understand that you can add or modify firmware files in the
/lib/firmware folder in an app container if you set the
io.balena.features.firmware label in the
docker-compose.yml file (or by using a single-container app with a single Dockerfile):
/lib/firmware folder will be initially mounted “read only” on the app container, but it can remounted “read write” before copying the file(s) with the command:
# in the app container
mount -o remount,rw /lib/firmware
After you replaced the firmware, you’d probably need to reboot the device. Obviously you would do this in a lab controlled device at first, because if something goes wrong, the WiFi will go down and this may leave the device offline. And here’s the warning and reason why this may not advisable in production / field devices: if an app update went wrong and the firmware file was not correctly replaced, the device could become unreachable.
When do I need to connect it to ethernet? At reboot or when it’s disconnected again?
If the device was always connected to ethernet, then the question is whether you would be able to reproduce the issue and be able to tell that the WiFi interface was disconnected. The purpose of the ethernet connection is to allow access to the device for investigation as soon as possible after the failure took place (because as time passes, the logs rotate).