oFono support for the Telit GC864-QUAD V2 serial port GSM/GPRS modem
Hello @all,
I'm new here and I'm in the process of developing a Embedded Linux datalogger appliance. At the moment I'm evaluating the modem part of it, and we are looking forward to use the Telit GC864-QUAD V2 serial port GSM/GPRS modem with oFono.
Unfortunately I couldn't find much "getting started" information for oFono, but by reading throughout the old posts on this list I gathered at least some. Please correct me if I get things wrong:
1. The one-and-only way to tell oFono to use a modem is by udev rules like this:
KERNEL=="ttyUSB0", ENV{OFONO_DRIVER}="calypso"2. Serial port GPRS modems like the Telit GC864 are not supported out-of-the-box, so one has to write a special modem driver for it.
3. Since this modem supports CMUX multiplexing with the 3GPP 27.010 standard, I can use 'GAtMux' like it's done in 'plugins/calypso.c'.
4. There is a telit modem driver, but this is only for the UC864 UMTS modem which is connected via USB.
So in order to write a driver to support the GC864, what would be a good starting point? Add support for serial port CMUX to the telit driver?
Looking forward for some advice ...
Cheers, Markus
Hi Markus,
Quoted 7 lines · Markus Hubig
Hello @all,
I'm new here and I'm in the process of developing a Embedded Linux datalogger appliance. At the moment I'm evaluating the modem part of it, and we are looking forward to use the Telit GC864-QUAD V2 serial port GSM/GPRS modem with oFono.
Quoted 8 lines
Unfortunately I couldn't find much "getting started" information for oFono, but by reading throughout the old posts on this list I gathered at least some. Please correct me if I get things wrong:
1. The one-and-only way to tell oFono to use a modem is by udev rules like
this: KERNEL=="ttyUSB0", ENV{OFONO_DRIVER}="calypso"
Not the 'only' way, but that is the preferred way. The KERNEL== line tells udev the device to use and OFONO_DRIVER part tells what modem driver to use (e.g. one from plugins/)
Quoted 3 lines
2. Serial port GPRS modems like the Telit GC864 are not supported out-of-the-box, so one has to write a special modem driver for it.
We do not have a 'generic' driver. While it is tempting to think that 27.007 is enough to drive any modem, in practice that is not the case. At least we have tried and failed ;) So yes, your statement is correct.
Quoted 3 lines
3. Since this modem supports CMUX multiplexing with the 3GPP 27.010 standard, I can use 'GAtMux' like it's done in '
plugins/calypso.c'.
Correct.
Quoted 3 lines
4. There is a telit modem driver, but this is only for the UC864 UMTS modem which is connected via USB.
Correct.
Quoted 4 lines
So in order to write a driver to support the GC864, what would be a good starting point? Add support for serial port CMUX to the telit driver?
I would create a brand new modem driver, perhaps using calypso as the starting point and go from there.
Quoted 2 lines
Looking forward for some advice ...
IRC is also a good place to get (quick) questions answered.
Regards,
-Denis
Quoted 7 lines · Denis Kenzior
Quoted 3 lines · Markus Hubig
1. The one-and-only way to tell oFono to use a modem is by udev rules like
this: KERNEL=="ttyUSB0", ENV{OFONO_DRIVER}="calypso"Not the 'only' way, but that is the preferred way. The KERNEL== line tells udev the device to use and
OFONO_DRIVERpart tells what modem driver to use (e.g. one from plugins/)
e.g. means there are other places where drivers can be found. What exactly makes some blob.c a oFono driver? And what's the minimal API I have to implement to make a working driver?
Quoted 5 lines
Quoted 3 lines
So in order to write a driver to support the GC864, what would be a good starting point? Add support for serial port CMUX to the telit driver?
I would create a brand new modem driver, perhaps using calypso as the starting point and go from there.
Hm OK i'll give it at try. But the few docs I found refer havily to the simple oFono-API but were can I find it? Inside doc's?
Quoted 3 lines
Quoted 2 lines
Looking forward for some advice ...
IRC is also a good place to get (quick) questions answered.
Unfortunately every time I'm on IRC everybody else seems to be asleep ... ;-(
Thank you, Markus
Hi Markus,
Quoted 5 lines · Markus Hubig
Quoted 4 lines · Denis Kenzior
Quoted 3 lines · Markus Hubig
1. The one-and-only way to tell oFono to use a modem is by udev rules like
this: KERNEL=="ttyUSB0", ENV{OFONO_DRIVER}="calypso"
Quoted 8 lines
Quoted 3 lines
Not the 'only' way, but that is the preferred way. The KERNEL== line tells udev the device to use and
OFONO_DRIVERpart tells what modem driver to use (e.g. one from plugins/)e.g. means there are other places where drivers can be found. What exactly makes some
blob.ca oFono driver? And what's the minimal API I have to implement to make a working driver?
No, modem drivers are only found in plugins/. However, there are other ways of creating modems besides udev. However, that is not really relevant to this discussion.
The bare minimum API would be probe and remove. However, that is not very useful :)
Quoted 9 lines
Quoted 5 lines
Quoted 3 lines
So in order to write a driver to support the GC864, what would be a good starting point? Add support for serial port CMUX to the telit driver?
I would create a brand new modem driver, perhaps using calypso as the starting point and go from there.
Hm OK i'll give it at try. But the few docs I found refer havily to the simple oFono-API but were can I find it? Inside doc's?
The docs are referring to application APIs which are exposed via D-Bus.
These are found in the doc/ directory. There isn't a howto / tutorial
on how to write a brand new modem driver, however just about everything can be figured out by poking around in plugins/.
Quoted 6 lines
Quoted 3 lines
Quoted 2 lines
Looking forward for some advice ...
IRC is also a good place to get (quick) questions answered.
Unfortunately every time I'm on IRC everybody else seems to be asleep ... ;-(
Maybe you're in the wrong hemisphere? :) Most of the (still active) people are in the U.S. timezones.
Regards,
-Denis