I apologize in advance for the long email.
We are attempting to use Connman/Ofono to setup a data connection with a
Telit HE910-G modem. The modem is on a Telit development kit which plugs
into our embedded hardware via the USB port.
Using version 1.17 of ofono, we were able to pickup and power/enable the
Using version 1.24 of ofono, the first problem we had was that ofono would
generate a /telit_0 interface, but any attempt to enable the mode would
fail with a dbus timeout. Eventually we tracked this down to the +GMM
command ofono uses to get the model_variant string. We saw that ofono
expects "HE910-G" from the modem, but the modem was only responding with
the model and not the variant "HE910". Hard coding the model_varaint string
to "HE910-G" solved the problem and we were able to enable/power the modem
through ofono and even register the SIM on the network. From what I can
tell, this bug seems to be present in all ofono versions that don't use the
I looked through the AT commands data sheet for the HE910 family and the
closest command I could find that would give us the model and variant was
..., but unfortunately this echos the command back which is a bit messy. So
for now I have left it hard coded.
The current problem we are having is that we cannot activate the context
with ofono or connman. Any attempt fails with:
Error activating /telit_1/context1: org.ofono.Error.NotImplemented:
Implementation not provided.
I have seen some old (2015) posts with the same problem, but these have all
been with the older versions of ofono that use the he910.c plugin, and non
of the solutions worked for us. I am currently stuck at this point and have
been unsuccessful at debugging this any further. Is there anyone who has
had a similar problem or have any ideas on how I can debug this?
Any help with our problem would be greatly appreciated.
I think I found a bug.
Commit 1d63b1d35 essentially breaks the sim900 driver for serial port
It adds a new entry in plugins/udevng.c driver_list with name "sim900".
There are two entries with the same name then: The new one which calls
the new setup_sim900 function and the old one which wants to call
the old setup_serial_modem function. Since driver_list is scanned
by name of the driver from top to button, serial driver users don't
have a chance to reach the entry with setup_serial_modem anymore.
Calling setup_sim900 does not work on a modem that was added through
add_serial_device, because the union serial/devices is written a
struct serial_device_info * that can not be used as GSList *.
Maybe I am missing something, but I think the new driver name in
driver_list should be different from the old one.