I think I finally figured it out after reading ModemManager’s source code. It seems like ModemManager goes and look at the physical device at the root of the uart. Therefore not /sys/devices/platform/soc/20201000.uart/
but /sys/devices/platform/soc/
.
Therefore this udev rule (I tried multiple including this one before starting this thread) did not work:
ACTION=="add", KERNEL=="20201000.uart", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"
Adding the following udev rule and restarting the Pi allowed ModemManager to detect the modem correctly.
# vi /etc/udev/rules.d/98-modemmanager.rules
ACTION=="add", KERNEL=="soc", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"
ModemManager now sees:
# mmcli -L
Found 1 modems:
/org/freedesktop/ModemManager1/Modem/0 [SIMCOM_Ltd] SIMCOM_SIM800L
I now added a system-connection file as from here to the boot partition and restarted the Pi. After a few minutes the light on the GSM module starts to flash in the pattern that signals a GPRS connection. I however still do not see the Pi reporting to the resin.io dashboard.
Next step will be to burn a clean resinOS image to the SD card, add the UDEV rule, add the system-connection file, and restart. I’ll report back with my findings.