Hi there,
I’m working on an embedded Linux product that uses the EG21-G Mini PCIe module. I’m using NetworkManager 1.32.2, ModemManager 1.16.10, and libqmi 1.30.2 to handle the connection for me. I’m using a global Hologram SIM card, with the APN “hologram”. This is working great (as far as I can tell) in the United States, Canada, etc. It also mostly works great in New Zealand, but I’m running into a weird problem:
If the modem happens to select 2degrees as the network to use, it will repeatedly fail to connect. It tries over and over again but never succeeds. It seems to be a QMI error that isn’t documented anywhere that I can find:
[modem0/bearer1] verbose call end reason (3,1078): [cm] (null)
I can’t find anything on this error other than one other person on the libqmi-devel mailing list who never got an answer. It will also print this message sometimes instead:
[modem0/bearer14] verbose call end reason (3,2001): [cm] no-service
If I connect to another network, like Vodafone, it works just fine. I’ve also never reproduced this problem here in the United States where I’ve been developing. I reported this problem to Hologram and they immediately responded telling me that this is something wrong on my end, but I’m suspicious because everything works fine when the modem connects to other networks instead. Anybody have any idea why this is happening? Is there some kind of “EG21-G and 2degrees” incompatibility?
Example connection log:
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] simple connect started...
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] simple connect state (4/8): wait to get fully enabled
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] simple connect state (5/8): register
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] 3GPP registration state changed (roaming -> registering)
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] 3GPP registration state changed (registering -> home)
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] 3GPP registration state changed (home -> registering)
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] simple connect state (6/8): bearer
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] simple connect state (7/8): connect
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] state changed (registered -> connecting)
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] 3GPP registration state changed (registering -> roaming)
Oct 31 21:49:29 ust20 daemon.info ModemManager[231]: <info> [modem0] state changed (connecting -> registered)
Oct 31 21:49:29 ust20 daemon.info NetworkManager[239]: <info> [1667252969.8827] modem["cdc-wdm0"]: modem state changed, 'registered' --> 'connecting' (reason: user-requested)
Oct 31 21:49:29 ust20 daemon.info NetworkManager[239]: <info> [1667252969.8907] modem["cdc-wdm0"]: modem state changed, 'connecting' --> 'registered' (reason: unknown)
Oct 31 21:49:34 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] couldn't start network: QMI protocol error (14): 'CallFailed'
Oct 31 21:49:34 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] call end reason (1): generic-unspecified
Oct 31 21:49:34 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] verbose call end reason (3,1078): [cm] (null)
Oct 31 21:49:38 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] couldn't start network: QMI protocol error (14): 'CallFailed'
Oct 31 21:49:38 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] call end reason (2): generic-client-end
Oct 31 21:49:38 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] verbose call end reason (3,2000): [cm] client-end
Oct 31 21:49:38 ust20 daemon.warn ModemManager[231]: <warn> [modem0/bearer1] connection attempt #9 failed: QMI protocol error (14): 'CallFailed'
Oct 31 21:49:38 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer1] connection #9 finished: duration 0s, tx: 0 bytes, rx :0 bytes
And when it retries, the error looks like this instead:
Oct 31 21:49:40 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer19] couldn't start network: QMI protocol error (14): 'CallFailed'
Oct 31 21:49:40 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer19] call end reason (3): generic-no-service
Oct 31 21:49:40 ust20 daemon.info ModemManager[231]: <info> [modem0/bearer19] verbose call end reason (3,2001): [cm] no-service
Oct 31 21:49:40 ust20 daemon.warn ModemManager[231]: <warn> [modem0/bearer19] connection attempt #1 failed: QMI protocol error (14): 'CallFailed'
Thanks for any advice!