[PATCH] qmimodem: fix roaming status report
by Christophe Ronco
Hi,
With a MC7304 modem and a roaming SIM card, Status in org.ofono.NetworkRegistration
properties ends up in "registered" instead of roaming.
Both AT command and qmicli indicates we are roaming.
What's happening is the following:
1) first QMI_NAS_SS_INFO_IND indicating we are registered contains a QMI_NAS_RESULT_ROAMING_STATUS parameter.
Parameter inside says we are roaming and qmimidem driver correctly reports status NETWORK_REGISTRATION_STATUS_ROAMING.
2) other QMI_NAS_SS_INFO_IND arrive, saying we are registered without QMI_NAS_RESULT_ROAMING_STATUS parameter.
Driver reports NETWORK_REGISTRATION_STATUS_REGISTERED.
Extract of traces with QMI binary debug interpreted (as far as I can...):
a) first "searching" indication
Dec 13 13:19:40 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: < 01 3b 00 80 03 01 04 00 00 24 00 2f 00
29 05 00 d0 00 14 00 00 MCC:208 MNC:20
22 05 00 01 02 00 01 00 Detailed Service Status: QMI_NAS_SERVICE_STATUS_LIMITED, QMI_NAS_NETWORK_SERVICE_DOMAIN_PS, ...
15 03 00 01 08 01 LTE, no roaming
12 05 00 d0 00 14 00 00 Current PLMN: MCC:208 MNC:20, no desc
11 01 00 00
10 01 00 01 No roaming
01 06 00 02 02 02 02 01 08 QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING, CS detached, PS detached, NETWORK_TYPE_3GPP, QMI_NAS_RADIO_INTERFACE_LTE
Dec 13 13:19:40 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: NAS_ind msg=36 len=47 [client=1,type=4,tid=0,len=59]
Dec 13 13:19:40 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=41,len=5} {type=34,len=5} {type=21,len=3} {type=18,len=5}
Dec 13 13:19:40 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=17,len=1} {type=16,len=1} {type=1,len=6}
Dec 13 13:19:40 klk-lpbs-0504B4 daemon.debug ofonod[855]: ofono_netreg_status_notify modem /sierra_0 status 2 lac -1 cellid -1 tech 7
b) second "searching" indication
Dec 13 13:19:41 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: < 01 21 00 80 03 01 04 00 00 24 00 15 00
22 05 00 03 03 00 01 00 Detailed Service Status: QMI_NAS_SERVICE_STATUS_LIMITED_REGIONAL, CS_PS, ...
11 01 00 00
01 06 00 02 02 02 02 01 08 QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING, CS detached, PS detached, NETWORK_TYPE_3GPP, QMI_NAS_RADIO_INTERFACE_LTE
Dec 13 13:19:41 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: NAS_ind msg=36 len=21 [client=1,type=4,tid=0,len=33]
Dec 13 13:19:41 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=34,len=5} {type=17,len=1} {type=1,len=6}
c) First indication while "registered"
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: < 01 5e 00 80 03 01 04 00 00 24 00 52 00
2a 01 00 00
29 05 00 d0 00 14 00 00 MCC:208 MNC:20
28 02 00 15 01 UMTS Primary Scrambling Code
26 08 00 03 00 00 00 03 00 00 00 CS: all calls allowed, PS: all calls allowed
22 05 00 02 03 00 01 00 Detailed Service Status: QMI_NAS_SERVICE_STATUS_AVAILABLE, CS_PS, ...
1e 04 00 f7 00 95 04 CID 3GPP
1d 02 00 fb 50 LAC 3GPP
15 03 00 01 05 00 UMTS: roaming
12 05 00 d0 00 14 00 00 Current PLMN: MCC:208 MNC:20, no desc
11 04 00 03 03 04 05
10 01 00 00 ROAMING ON
01 06 00 01 01 01 02 01 05 QMI_NAS_REGISTRATION_STATE_REGISTERED, CS attached, PS attached, NETWORK_TYPE_3GPP, QMI_NAS_RADIO_INTERFACE_UMTS
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: NAS_ind msg=36 len=82 [client=1,type=4,tid=0,len=94]
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=42,len=1} {type=41,len=5} {type=40,len=2} {type=38,len=8}
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=34,len=5} {type=30,len=4} {type=29,len=2} {type=21,len=3}
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=18,len=5} {type=17,len=4} {type=16,len=1} {type=1,len=6}
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.debug ofonod[855]: ofono_gprs_status_notify modem /sierra_0 status 1
==================> ROAMING status reported <==========================
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.debug ofonod[855]: ofono_netreg_status_notify modem /sierra_0 status 5 lac 20731 cellid 76873975 tech 2
d) second indication while "registered"
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: < 01 31 00 80 03 01 04 00 00 24 00 25 00
29 05 00 d0 00 14 00 00 MCC:208 MNC:20
28 02 00 15 01 UMTS Primary Scrambling Code
12 05 00 d0 00 14 00 00 Current PLMN: MCC:208 MNC:20, no desc
11 04 00 03 03 04 05
01 06 00 01 01 01 02 01 05 QMI_NAS_REGISTRATION_STATE_REGISTERED, CS attached, PS attached, NETWORK_TYPE_3GPP, QMI_NAS_RADIO_INTERFACE_UMTS
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: NAS_ind msg=36 len=37 [client=1,type=4,tid=0,len=49]
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=41,len=5} {type=40,len=2} {type=18,len=5} {type=17,len=4}
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.info ofonod[855]: QMI: {type=1,len=6}
==================> ROAMING information lost <==========================
Dec 13 13:19:56 klk-lpbs-0504B4 daemon.debug ofonod[855]: ofono_netreg_status_notify modem /sierra_0 status 1 lac -1 cellid -1 tech 2
I don't know if this is a problem specific to MC7304 or even to my firmware version or if this is a normal behavior to have ROAMING_STATUS parameter only when status change from anything to registered.
Best Regards,
Christophe
Christophe Ronco (1):
qmimodem: fix roaming status report
drivers/qmimodem/network-registration.c | 50 ++++++++++++++++++++++++++++-----
1 file changed, 43 insertions(+), 7 deletions(-)
--
2.7.4
2 years, 5 months
[PATCH] plugins: Add support for SIM7100E by SIMCom
by Bob Ham
Add support for the SIM7100E modem. We add a new "sim7100" plugin
because there's no other AT-based modem that has support for both GPRS
and voice calls.
---
Makefile.am | 3 +
plugins/sim7100.c | 271 ++++++++++++++++++++++++++++++++++++++++++++++
plugins/udevng.c | 56 +++++++++-
3 files changed, 327 insertions(+), 3 deletions(-)
create mode 100644 plugins/sim7100.c
diff --git a/Makefile.am b/Makefile.am
index a921bd2b..6dee4ce3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -499,6 +499,9 @@ builtin_sources += plugins/samsung.c
builtin_modules += sim900
builtin_sources += plugins/sim900.c
+builtin_modules += sim7100
+builtin_sources += plugins/sim7100.c
+
builtin_modules += connman
builtin_sources += plugins/connman.c
diff --git a/plugins/sim7100.c b/plugins/sim7100.c
new file mode 100644
index 00000000..7986abf2
--- /dev/null
+++ b/plugins/sim7100.c
@@ -0,0 +1,271 @@
+/*
+ *
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
+ * Copyright (C) 2009 Collabora Ltd. All rights reserved.
+ * Copyright 2018 Purism SPC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+/*
+ * This file was originally copied from g1.c and
+ * modified by Bob Ham <bob.ham(a)puri.sm>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <gatchat.h>
+#include <gattty.h>
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include <ofono/plugin.h>
+#include <ofono/log.h>
+#include <ofono/modem.h>
+#include <ofono/call-barring.h>
+#include <ofono/call-forwarding.h>
+#include <ofono/call-meter.h>
+#include <ofono/call-settings.h>
+#include <ofono/devinfo.h>
+#include <ofono/message-waiting.h>
+#include <ofono/netreg.h>
+#include <ofono/phonebook.h>
+#include <ofono/sim.h>
+#include <ofono/sms.h>
+#include <ofono/ussd.h>
+#include <ofono/voicecall.h>
+#include <ofono/gprs.h>
+#include <ofono/gprs-context.h>
+
+#include <drivers/atmodem/vendor.h>
+
+struct sim7100_data {
+ GAtChat *at;
+ GAtChat *ppp;
+};
+
+static void sim7100_debug(const char *str, void *user_data)
+{
+ const char *prefix = user_data;
+
+ ofono_info("%s%s", prefix, str);
+}
+
+/* Detect hardware, and initialize if found */
+static int sim7100_probe(struct ofono_modem *modem)
+{
+ struct sim7100_data *data;
+
+ DBG("");
+
+ data = g_try_new0(struct sim7100_data, 1);
+ if (data == NULL)
+ return -ENOMEM;
+
+ ofono_modem_set_data(modem, data);
+
+ return 0;
+}
+
+static void sim7100_remove(struct ofono_modem *modem)
+{
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ if (!data)
+ return;
+
+ if (data->at)
+ g_at_chat_unref(data->at);
+
+ if (data->ppp)
+ g_at_chat_unref(data->ppp);
+
+ ofono_modem_set_data(modem, NULL);
+ g_free (data);
+}
+
+static void cfun_set_on_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+
+ DBG("");
+
+ if (ok)
+ ofono_modem_set_powered(modem, TRUE);
+}
+
+static int open_device(struct ofono_modem *modem, const char *devkey,
+ GAtChat **chatp)
+{
+ GIOChannel *channel;
+ GAtSyntax *syntax;
+ GAtChat *chat;
+ const char *device;
+
+ DBG("devkey=%s", devkey);
+
+ device = ofono_modem_get_string(modem, devkey);
+ if (device == NULL)
+ return -EINVAL;
+
+ channel = g_at_tty_open(device, NULL);
+ if (channel == NULL)
+ return -EIO;
+
+ syntax = g_at_syntax_new_gsm_permissive();
+ chat = g_at_chat_new(channel, syntax);
+ g_at_syntax_unref(syntax);
+ g_io_channel_unref(channel);
+
+ if (chat == NULL)
+ return -EIO;
+
+ if (getenv("OFONO_AT_DEBUG"))
+ g_at_chat_set_debug(chat, sim7100_debug, "");
+
+ *chatp = chat;
+ return 0;
+}
+
+static int sim7100_enable(struct ofono_modem *modem)
+{
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+ int err;
+
+ DBG("");
+
+ err = open_device(modem, "AT", &data->at);
+ if (err < 0)
+ return err;
+
+ err = open_device(modem, "PPP", &data->ppp);
+ if (err < 0)
+ return err;
+
+ /* ensure modem is in a known state; verbose on, echo/quiet off */
+ g_at_chat_send(data->at, "ATE0Q0V1", NULL, NULL, NULL, NULL);
+
+ /* power up modem */
+ g_at_chat_send(data->at, "AT+CFUN=1", NULL, cfun_set_on_cb, modem, NULL);
+
+ return 0;
+}
+
+static void cfun_set_off_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ g_at_chat_unref(data->ppp);
+ g_at_chat_unref(data->at);
+ data->at = data->ppp = NULL;
+
+ if (ok)
+ ofono_modem_set_powered(modem, FALSE);
+}
+
+static int sim7100_disable(struct ofono_modem *modem)
+{
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+ /* power down modem */
+ g_at_chat_cancel_all(data->ppp);
+ g_at_chat_cancel_all(data->at);
+ g_at_chat_unregister_all(data->ppp);
+ g_at_chat_unregister_all(data->at);
+ g_at_chat_send(data->at, "AT+CFUN=0", NULL, cfun_set_off_cb, modem, NULL);
+
+ return -EINPROGRESS;
+}
+
+static void sim7100_pre_sim(struct ofono_modem *modem)
+{
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+ struct ofono_sim *sim;
+
+ DBG("");
+
+ ofono_devinfo_create(modem, 0, "atmodem", data->at);
+ sim = ofono_sim_create(modem, 0, "atmodem", data->at);
+ ofono_voicecall_create(modem, 0, "atmodem", data->at);
+
+ if (sim)
+ ofono_sim_inserted_notify(sim, TRUE);
+}
+
+static void sim7100_post_sim(struct ofono_modem *modem)
+{
+ struct sim7100_data *data = ofono_modem_get_data(modem);
+ struct ofono_message_waiting *mw;
+ struct ofono_gprs *gprs = NULL;
+ struct ofono_gprs_context *gc = NULL;
+
+ DBG("");
+
+ ofono_ussd_create(modem, 0, "atmodem", data->at);
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->at);
+ ofono_call_settings_create(modem, 0, "atmodem", data->at);
+ ofono_netreg_create(modem, 0, "atmodem", data->at);
+ ofono_call_meter_create(modem, 0, "atmodem", data->at);
+ ofono_call_barring_create(modem, 0, "atmodem", data->at);
+ ofono_sms_create(modem, OFONO_VENDOR_SIMCOM, "atmodem", data->at);
+ ofono_phonebook_create(modem, 0, "atmodem", data->at);
+
+ gprs = ofono_gprs_create(modem, 0, "atmodem", data->at);
+ gc = ofono_gprs_context_create(modem, 0, "atmodem", data->ppp);
+
+ if (gprs && gc)
+ ofono_gprs_add_context(gprs, gc);
+
+ mw = ofono_message_waiting_create(modem);
+ if (mw)
+ ofono_message_waiting_register(mw);
+}
+
+static struct ofono_modem_driver sim7100_driver = {
+ .name = "sim7100",
+ .probe = sim7100_probe,
+ .remove = sim7100_remove,
+ .enable = sim7100_enable,
+ .disable = sim7100_disable,
+ .pre_sim = sim7100_pre_sim,
+ .post_sim = sim7100_post_sim,
+};
+
+static int sim7100_init(void)
+{
+ return ofono_modem_driver_register(&sim7100_driver);
+}
+
+static void sim7100_exit(void)
+{
+ ofono_modem_driver_unregister(&sim7100_driver);
+}
+
+OFONO_PLUGIN_DEFINE(sim7100, "SIMCom SIM7100E modem driver", VERSION,
+ OFONO_PLUGIN_PRIORITY_DEFAULT, sim7100_init, sim7100_exit)
diff --git a/plugins/udevng.c b/plugins/udevng.c
index ff5d41af..cd56fd56 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -710,7 +710,7 @@ static gboolean setup_telitqmi(struct modem_info *modem)
return TRUE;
}
-static gboolean setup_simcom(struct modem_info *modem)
+static gboolean setup_sim900(struct modem_info *modem)
{
const char *mdm = NULL, *aux = NULL, *gps = NULL, *diag = NULL;
GSList *list;
@@ -1213,6 +1213,54 @@ static gboolean setup_xmm7xxx(struct modem_info *modem)
return TRUE;
}
+static gboolean setup_sim7100(struct modem_info *modem)
+{
+ const char *at = NULL, *ppp = NULL, *gps = NULL, *diag = NULL, *audio = NULL;
+ GSList *list;
+
+ DBG("%s", modem->syspath);
+
+ for (list = modem->devices; list; list = list->next) {
+ struct device_info *info = list->data;
+
+ DBG("%s %s", info->devnode, info->number);
+
+ /*
+ * Serial port layout:
+ * 0: QCDM/DIAG
+ * 1: NMEA
+ * 2: AT
+ * 3: AT/PPP
+ * 4: audio
+ *
+ * -- https://www.spinics.net/lists/linux-usb/msg135728.html
+ */
+ if (g_strcmp0(info->number, "00") == 0)
+ diag = info->devnode;
+ else if (g_strcmp0(info->number, "01") == 0)
+ gps = info->devnode;
+ else if (g_strcmp0(info->number, "02") == 0)
+ at = info->devnode;
+ else if (g_strcmp0(info->number, "03") == 0)
+ ppp = info->devnode;
+ else if (g_strcmp0(info->number, "04") == 0)
+ audio = info->devnode;
+ }
+
+ if (at == NULL)
+ return FALSE;
+
+ DBG("at=%s ppp=%s gps=%s diag=%s, audio=%s", at, ppp, gps, diag, audio);
+
+ ofono_modem_set_string(modem->modem, "AT", at);
+ ofono_modem_set_string(modem->modem, "PPP", ppp);
+ ofono_modem_set_string(modem->modem, "GPS", gps);
+ ofono_modem_set_string(modem->modem, "Diag", diag);
+ ofono_modem_set_string(modem->modem, "Audio", audio);
+
+ return TRUE;
+}
+
static struct {
const char *name;
gboolean (*setup)(struct modem_info *modem);
@@ -1232,7 +1280,8 @@ static struct {
{ "nokia", setup_nokia },
{ "telit", setup_telit, "device/interface" },
{ "telitqmi", setup_telitqmi },
- { "simcom", setup_simcom },
+ { "sim900", setup_sim900 },
+ { "sim7100", setup_sim7100 },
{ "zte", setup_zte },
{ "icera", setup_icera },
{ "samsung", setup_samsung },
@@ -1596,7 +1645,8 @@ static struct {
{ "alcatel", "option", "1bbb", "0017" },
{ "novatel", "option", "1410" },
{ "zte", "option", "19d2" },
- { "simcom", "option", "05c6", "9000" },
+ { "sim900", "option", "05c6", "9000" },
+ { "sim7100", "option", "1e0e", "9001" },
{ "telit", "usbserial", "1bc7" },
{ "telit", "option", "1bc7" },
{ "telit", "cdc_acm", "1bc7", "0021" },
--
2.17.0
2 years, 10 months
[PATCH 1/2] include: Add ofono_modem_get_gprs
by Slava Monich
---
include/modem.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/modem.h b/include/modem.h
index c93b3d2..005a42e 100644
--- a/include/modem.h
+++ b/include/modem.h
@@ -29,6 +29,7 @@ extern "C" {
#include <ofono/types.h>
struct ofono_modem;
+struct ofono_gprs;
struct ofono_sim;
enum ofono_modem_type {
@@ -82,6 +83,7 @@ void ofono_modem_remove_interface(struct ofono_modem *modem,
const char *ofono_modem_get_path(struct ofono_modem *modem);
struct ofono_sim *ofono_modem_get_sim(struct ofono_modem *modem);
+struct ofono_gprs *ofono_modem_get_gprs(struct ofono_modem *modem);
void ofono_modem_set_data(struct ofono_modem *modem, void *data);
void *ofono_modem_get_data(struct ofono_modem *modem);
--
1.9.1
2 years, 10 months
[PATCH] ussd: Don't ignore data from TERMINATED response
by Slava Monich
Typically responses to USSD requests are coming with status
zero (NOTIFY) but some are coming with status 2 (TERMINATED).
If those contain data, the data should be presented to the user.
---
src/ussd.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/ussd.c b/src/ussd.c
index 84f64c6..f5dd9d9 100644
--- a/src/ussd.c
+++ b/src/ussd.c
@@ -417,13 +417,18 @@ void ofono_ussd_notify(struct ofono_ussd *ussd, int status, int dcs,
}
if (status == OFONO_USSD_STATUS_TERMINATED) {
- ussd_change_state(ussd, USSD_STATE_IDLE);
+ if (ussd->state == USSD_STATE_ACTIVE && data && data_len > 0) {
+ /* Interpret that as a Notify */
+ status = OFONO_USSD_STATUS_NOTIFY;
+ } else {
+ ussd_change_state(ussd, USSD_STATE_IDLE);
- if (ussd->pending == NULL)
- return;
+ if (ussd->pending == NULL)
+ return;
- reply = __ofono_error_network_terminated(ussd->pending);
- goto out;
+ reply = __ofono_error_network_terminated(ussd->pending);
+ goto out;
+ }
}
if (status == OFONO_USSD_STATUS_NOT_SUPPORTED) {
--
1.9.1
2 years, 10 months
[PATCH] Signal sim initialized for gemalto plugin
by Mark van der Putten
Modem type PLS8-E, firmware 03.017
---
plugins/gemalto.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/plugins/gemalto.c b/plugins/gemalto.c
index af02403..ec8174d 100644
--- a/plugins/gemalto.c
+++ b/plugins/gemalto.c
@@ -204,6 +204,11 @@ static void gemalto_ciev_notify(GAtResult *result, gpointer user_data)
NULL);
break;
+ /* USIM initialization completed. UE has finished reading USIM data. */
+ case 5:
+ ofono_sim_initialized_notify(sim);
+ break;
+
default:
break;
}
--
2.1.4
2 years, 10 months
[PATCH] sim: fix crash in case of invalid sim password type
by Christophe Ronco
Hi,
I have an old Swedish SIM card here that I tried to put in my MC7304 modem.
My ofono version is 1.20 (with some additional patches).
It sometimes return an invalid SIM password type.
After that, ofono crashes. Here is an extract of debug traces when this happens.
Ofono is just starting, modem was here before ofono starts.
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_attributes() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/devinfo.c:string_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/devinfo.c:qmi_query_serial()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_file_attributes_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.err ofonod[1120]: Requested file structure differs from SIM: 6fb7
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g2_read_cb() 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_attributes() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/devinfo.c:get_ids_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_file_attributes_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_record() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g3_read_cb() 1
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_record() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g3_read_cb() 1
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_record() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g3_read_cb() 1
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_record() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g3_read_cb() 1
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_record() file id 0x6fb7 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/voicecall.c:ecc_g3_read_cb() 1
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_attributes() file id 0x2fe2 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_file_attributes_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_transparent() file id 0x2fe2 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 10
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_attributes() file id 0x6f05 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_file_attributes_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_transparent() file id 0x6f05 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 6
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_attributes() file id 0x2f05 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_file_attributes_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_read_transparent() file id 0x2f05 path len 0
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:read_generic_cb()
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 6
Jun 27 15:28:41 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:qmi_query_passwd_state()
Jun 27 15:28:42 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:get_card_status() info1->app_state:0x6: OFONO_SIM_PASSWORD_INVALID
Jun 27 15:28:42 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/drivers/qmimodem/sim.c:query_passwd_state_cb() passwd state 16
Jun 27 15:28:42 klk-lpbs-0504B4 daemon.debug ofonod[1120]: ../git/src/sim.c:sim_pin_query_cb() sim->pin_type: 0, pin_type: 16
Jun 27 15:28:42 klk-lpbs-0504B4 daemon.err ofonod[1120]: Aborting (signal 11) [/usr/sbin/ofonod]
Problem is just that we don't have a string corresponding to this password type.
Christophe Ronco (1):
sim: fix crash in case of invalid sim password type
src/sim.c | 1 +
1 file changed, 1 insertion(+)
--
2.7.4
2 years, 10 months
A small patch for gemalto plugin
by Mark van der Putten
From df8af202e8382056be80ce24387bee104bf8f048 Mon Sep 17 00:00:00 2001
From: Mark van der Putten <mark.van.der.putten(a)intemo.com>
Date: Wed, 18 Apr 2018 17:19:01 +0200
Subject: [PATCH] Signal sim initialized for gemalto plugin
Modem type PLS8-E, firmware 03.017
---
plugins/gemalto.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/plugins/gemalto.c b/plugins/gemalto.c
index af02403..ec8174d 100644
--- a/plugins/gemalto.c
+++ b/plugins/gemalto.c
@@ -204,6 +204,11 @@ static void gemalto_ciev_notify(GAtResult *result,
gpointer user_data)
NULL);
break;
+ /* USIM initialization completed. UE has finished reading USIM data. */
+ case 5:
+ ofono_sim_initialized_notify(sim);
+ break;
+
default:
break;
}
--
2.1.4
2 years, 10 months
[PATCH 1/1] SIM detection: Fixing the logical error in using the number of slot and number of application
by Eswaran Vinothkumar (BEG/PJ-IOT-EL)
>From d1ec66c643f005d558c403a68c7df04b0819aa79 Mon Sep 17 00:00:00 2001
From: "Eswaran Vinothkumar (BEG-PT/PJ-IOT1)"
<Vinothkumar.Eswaran(a)de.bosch.com>
Date: Mon, 12 Mar 2018 14:46:28 +0100
Subject: [PATCH] sim detection: Fix to take the right slot and application
number
---
drivers/qmimodem/sim.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/qmimodem/sim.c b/drivers/qmimodem/sim.c
index 71c7e04..99c6d68 100644
--- a/drivers/qmimodem/sim.c
+++ b/drivers/qmimodem/sim.c
@@ -557,7 +557,7 @@ static enum get_card_status_result handle_get_card_status_result(
index = GUINT16_FROM_LE(status->index_gw_pri);
- if ((index & 0xff) == i && (index >> 8) == n) {
+ if ((index & 0xff) == n && (index >> 8) == i) {
if (get_card_status(slot, info1, info2,
sim_stat))
res = GET_CARD_STATUS_RESULT_TEMP_ERROR;
--
2.7.4
Mit freundlichen Grüßen / Best regards
Vinothkumar Eswaran
BEG-PT/PJ-IOT-EL
2 years, 10 months
ofono 1.22
by Mark van der Putten
Used ofono 1.16 for a long time. While upgrading to 1.22 there is a
signal 11. (Also on 1.23)
Target: armv7ahf-vfp-neon-oe-linux-gnueabi
Execute: ofonod -d -n
.
.
.
ofono-1.22/src/modem.c:ofono_modem_driver_register() driver: 0x130088,
name: infineon
ofono-1.22/src/modem.c:ofono_modem_driver_register() driver: 0x130040,
name: ril
ofono-1.22/plugins/udevng.c:udev_start()
ofono-1.22/plugins/udevng.c:enumerate_devices()
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:add_serial_device() Device is missing
required OFONO_DRIVER property
ofono-1.22/plugins/udevng.c:check_usb_device() hub [(null):(null)]
ofono-1.22/plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofono-1.22/plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofono-1.22/plugins/udevng.c:check_usb_device() cdc_acm [(null):(null)]
ofonod[27193]: Aborting (signal 11) [ofonod]
Can someone shine a light on this?
2 years, 10 months
[PATCH 0/2] gobi: support SMD devices (smartphone SoC)
by Joey Hewitt
These add support for Qualcomm-based smartphone modems.
The first is fairly straightforward: searching for "rpmsg"-subsystem devices and supporting them in gobi as a serial device. A friend has tested it on the mainline kernel, with the help of something like `rpmsgexport /dev/rpmsg_ctrl0 DATA5_CNTL` (https://github.com/andersson/rpmsgexport) and then giving the created rpmsg node OFONO_DRIVER=gobi property.
The second is uglier, and maybe controversial, since it's for Qualcomm's forked kernel. The smdpkt device doesn't support polling for write, so oFono would wait forever on the poll. This would probably be a 5-line fix in the kernel, but there are thousands of kernel forks, so I thought it might be better to workaround in oFono. I've tested it on Samsung S4 Mini LTE, running a kernel based on the MSM fork.
Joey Hewitt (2):
gobi: support rpmsg device node (SMD channel)
gobi/qmi: support smdpkt device (MSM kernel forks)
drivers/qmimodem/qmi.c | 33 ++++++++++++++++++++++---
drivers/qmimodem/qmi.h | 6 ++++-
plugins/gobi.c | 7 ++++--
plugins/udevng.c | 66 +++++++++++++++++++++++++++++---------------------
4 files changed, 77 insertions(+), 35 deletions(-)
--
2.7.4
2 years, 10 months