Skip to content

device-pine64-pinephone: automatically recover modem when it dies

Arnav Singh requested to merge Arnavion/pmaports:fix-2641 into master

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 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:

  1. When the phone wakes up from suspend.

  2. 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.

  3. 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)

Merge request reports