device-pine64-pinephone: automatically recover modem when it dies
eg25-manager is supposed to watch for the modem going away and recover it automatically, but it doesn't seem to actually do anything. This upstream issue mobian1/eg25-manager#47 (closed) is probably the same, and as that issue says, manually restarting eg25-manager in this situation does recover the modem.
So this change adds a udev rule to automatically restart eg25-manager when the modem dies. Common triggers for the modem dying are:
-
When the phone wakes up from suspend.
-
When an incoming call is disconnected, especially if the disconnect happens very quickly after the call started, such as what happens when phosh-antispam identified the call as spam.
-
When plugging or unplugging the phone from USB power, and when plugging or unplugging other USB devices like keyboard from a connected dock.
udev shouldn't be used for spawning long-lasting processes,
but rc-service start
will parent the process to the service manager and exit,
so that's fine. It does take a few seconds during which udev is blocked and
can't process other events, which udev also recommends against,
but in this case it's not a big deal IMO.
Fixes #2641 (closed)