For a project we are using Raspberry Pi 3 Model B+ in combination with Balena (Resin OS 2.12.3+rev1) and a Huawei E353 (2G/3G dongle).
What I have noticed is that when I first boot my application and then insert the E353, everything works as expected.
However, if I try to boot with the E353 inserted, the whole process hangs on a line from udevd initialization (timing out after about 3 minutes), after which I have no internet connectivity (does not matter whether ethernet is plugged in or not).
In both cases I see udev correctly identifying the E353, loading it as a USB Mass Storage / CDROM and then switching it over to cdc_ether.
For this one device, I have made some changes to the Host OS through the web terminal.
(remounting root and adding a usb_modeswitch rule to udev for the E353)
After these changes booting with the E353 works perfectly, and my device connects as expected.
My question now is: what is the preferred way to make changes to the Host OS like these manageable?
It seems to me not very desirable to have to manually tweak every device that is being created, not to mention the fact that this might not be the only change we will need in the future.
More manual tweaking = higher chance of making a mistake somewhere down the line.