Hi Denis,

Thanks for your quick reply !

On 29/04/2016 17:13, Denis Kenzior wrote:
Hi Martin,

On 04/29/2016 08:08 AM, Martin Chaplet wrote:
Hi everybody,


I'm trying to use MC7304 chip with ofono (yes, exactly like Dirk Meul
few months ago).

It's a QMI-interfaced GSM.
I've used Bjørn Mork's patches and with a little hack in setup_sierra
(forcing qmi device name), the modem is "detected" and initialized.
... But the "gprs" feature is not detected !

I'm a newbie on ofono project ... Can anyone can explain me how the
features detection is done please ?

FYI, Please find below ofono debug log :


ofonod[1110]: src/modem.c:ofono_modem_create() name: (null), type: sierra
ofonod[1110]: plugins/udevng.c:setup_sierra()
/sys/devices/soc0/soc.0/2100000.aips-bus/2184000.usb/ci_hdrc.0/usb1/1-1
ofonod[1110]: plugins/udevng.c:setup_sierra() /dev/ttyUSB0 255/255/255
00 (null)
ofonod[1110]: plugins/udevng.c:setup_sierra() /dev/ttyUSB1 255/0/0 02 (null)
ofonod[1110]: plugins/udevng.c:setup_sierra() /dev/ttyUSB2 255/0/0 03 (null)
ofonod[1110]: plugins/udevng.c:setup_sierra() wwan0 255/255/255 08 (null)
ofonod[1110]: plugins/udevng.c:setup_sierra() wwan1 255/255/255 0a (null)
ofonod[1110]: plugins/udevng.c:setup_sierra() wwan2 255/255/255 0b (null)

If this is a QMI card, then setup_sierra isn't the right place for this detection.  It should likely be setup_gobi.

Yes, you're right. It came from Bjørn Mork's patches who did this patch :

https://lists.ofono.org/pipermail/ofono/2013-February/014239.html

The "gobi" driver is plugged "manually" by ofono_modem_set_driver function

This card is mainly QMI but also have Diag, NMEA and AT interfaces (ttyUSB). I think that's why he did it in setup_sierra.



ofonod[1110]: src/modem.c:ofono_modem_set_driver() type: gobi
ofonod[1110]: plugins/udevng.c:setup_sierra() modem=/dev/ttyUSB2
app=(null) net=wwan0 diag=/dev/ttyUSB0 qmi=/dev/cdc-wdm1
ofonod[1110]: src/modem.c:set_modem_property() modem 0x20d4d28 property
Device
ofonod[1110]: src/modem.c:set_modem_property() modem 0x20d4d28 property
Modem
ofonod[1110]: src/modem.c:set_modem_property() modem 0x20d4d28 property App
ofonod[1110]: src/modem.c:set_modem_property() modem 0x20d4d28 property Diag
ofonod[1110]: src/modem.c:set_modem_property() modem 0x20d4d28 property
NetworkInterface
ofonod[1110]: src/modem.c:ofono_modem_register() 0x20d4d28
ofonod[1110]: plugins/gobi.c:gobi_probe() 0x20d4d28
ofonod[1110]: src/modem.c:emit_modem_added() 0x20d4d28
ofonod[1110]: src/modem.c:call_modemwatches() 0x20d4d28 added:1
ofonod[1110]: plugins/smart-messaging.c:modem_watch() modem: 0x20d4d28,
added: 1
ofonod[1110]: plugins/push-notification.c:modem_watch() modem:
0x20d4d28, added: 1
ofonod[1110]: plugins/gobi.c:gobi_enable() 0x20d4d28
ofonod[1110]: src/modem.c:get_modem_property() modem 0x20d4d28 property
Device
ofonod[1110]: plugins/gobi.c:discover_cb()
ofonod[1110]: plugins/gobi.c:discover_cb() WDS 1.36
ofonod[1110]: plugins/gobi.c:discover_cb() DMS 1.14
ofonod[1110]: plugins/gobi.c:discover_cb() NAS 1.25
ofonod[1110]: plugins/gobi.c:discover_cb() QOS 1.3
ofonod[1110]: plugins/gobi.c:discover_cb() WMS 1.10
ofonod[1110]: plugins/gobi.c:discover_cb() PDS 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() AUTH 1.2
ofonod[1110]: plugins/gobi.c:discover_cb() AT 1.2
ofonod[1110]: plugins/gobi.c:discover_cb() VOICE 2.1
ofonod[1110]: plugins/gobi.c:discover_cb() CAT 2.16
ofonod[1110]: plugins/gobi.c:discover_cb() UIM 1.25
ofonod[1110]: plugins/gobi.c:discover_cb() PBM 1.4
ofonod[1110]: plugins/gobi.c:discover_cb() SAR 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() TS 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() TMS 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.10
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:discover_cb() (null) 1.0
ofonod[1110]: plugins/gobi.c:create_dms_cb()
ofonod[1110]: plugins/gobi.c:get_caps_cb()
ofonod[1110]: plugins/gobi.c:get_caps_cb() service capabilities 4
ofonod[1110]: plugins/gobi.c:get_caps_cb() sim supported 2
ofonod[1110]: plugins/gobi.c:get_caps_cb() radio = 4
ofonod[1110]: plugins/gobi.c:get_caps_cb() radio = 5
ofonod[1110]: plugins/gobi.c:get_caps_cb() radio = 8
ofonod[1110]: plugins/gobi.c:get_oper_mode_cb()
ofonod[1110]: src/modem.c:modem_change_state() old state: 0, new state: 1
ofonod[1110]: plugins/gobi.c:gobi_pre_sim() 0x20d4d28
ofonod[1110]: drivers/qmimodem/devinfo.c:qmi_devinfo_probe()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_sim_probe()
ofonod[1110]: drivers/qmimodem/voicecall.c:qmi_voicecall_probe()
ofonod[1110]:
drivers/qmimodem/location-reporting.c:qmi_location_reporting_probe()
ofonod[1110]: drivers/qmimodem/devinfo.c:create_dms_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:qmi_query_manufacturer()
ofonod[1110]: drivers/qmimodem/voicecall.c:create_voice_cb()
ofonod[1110]: drivers/qmimodem/sim.c:create_uim_cb()
ofonod[1110]: drivers/qmimodem/location-reporting.c:create_pds_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:string_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:qmi_query_model()
ofonod[1110]: drivers/qmimodem/sim.c:event_registration_cb()
ofonod[1110]: drivers/qmimodem/sim.c:event_registration_cb() event mask
0x0003
ofonod[1110]: drivers/qmimodem/location-reporting.c:set_event_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:string_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:qmi_query_revision()
ofonod[1110]: drivers/qmimodem/sim.c:get_card_status_cb()
ofonod[1110]: src/sim.c:ofono_sim_add_state_watch() 0x20d9aa0
ofonod[1110]: src/sim.c:ofono_sim_add_state_watch() 0x20d9aa0
ofonod[1110]: src/sim.c:ofono_sim_add_state_watch() 0x20d9aa0
ofonod[1110]: drivers/qmimodem/sim.c:get_card_status_cb()
ofono_sim_register OK
ofonod[1110]: drivers/qmimodem/sim.c:get_card_status_cb() exit func
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6fb7 path len 0
ofonod[1110]: drivers/qmimodem/devinfo.c:string_cb()
ofonod[1110]: drivers/qmimodem/devinfo.c:qmi_query_serial()
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: src/voicecall.c:ecc_g2_read_cb() 0
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6fb7 path len 0
ofonod[1110]: drivers/qmimodem/devinfo.c:get_ids_cb()
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: src/voicecall.c:ecc_g3_read_cb() 0
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x2fe2 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_transparent() file id
0x2fe2 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:read_generic_cb()
ofonod[1110]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff:
0, tocopy: 10
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6f05 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x2f05 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_transparent() file id
0x2f05 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:read_generic_cb()
ofonod[1110]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff:
0, tocopy: 10
ofonod[1110]: drivers/qmimodem/sim.c:qmi_query_passwd_state() passwd state 0
ofonod[1110]: src/sim.c:sim_pin_query_cb() sim->pin_type: 0, pin_type: 0
ofonod[1110]: drivers/qmimodem/sim.c:qmi_query_pin_retries() passwd state 0
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6fae path len 0
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6fad path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6f16 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_attributes() file id
0x6f38 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:get_file_attributes_cb()
ofonod[1110]: drivers/qmimodem/sim.c:qmi_read_transparent() file id
0x6f07 path len 0
ofonod[1110]: drivers/qmimodem/sim.c:read_generic_cb()
ofonod[1110]: Unable to read IMSI, emergency calls only

Your modem doesn't seem to want to read anything from the SIM.  So that is why your gprs isn't showing up.

Do you have a SIM in there or a PIN set?


OK, so I understand that Data feature is detected by scanning SIM capabilities + chip capabilities (UMTS, LTE, ...)
Am I right ?

My SIM doesn't have PIN and I can use Standard QMI tools (libqmi) to bring up a connection.
I will so investigate around SIM QMI requests / replies.

Regards,
-Denis

Thanks for your help,
Regards,

Martin