E1750 Reloaded

poma pomidorabelisima at gmail.com
Sat Aug 2 00:05:00 PDT 2014


Restored functionality for the 
Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode) 12d1:1436 cdc_ether, 
Huawei Technologies Co., Ltd. E180v 12d1:140c qmi_wwan, 
actually Huawei E1750 FW Rev. 11.126.13.00.00 Qualcomm based mobile broadband modem
by reverting commit ca0a567 
"broadband-bearer-qmi: support IPv6 configuration and use static for IPv4" 
and updating 'mm-bearer-qmi.c' with commit 3ca267b 
"bearer: rename 'MMBearer' to 'MMBaseBearer'"

---
 src/mm-bearer-qmi.c | 306 +++++++++++++++++++---------------------------------
 1 file changed, 111 insertions(+), 195 deletions(-)

diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index c25b9f7..bf0f6fc 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -31,7 +31,6 @@
 #include "mm-modem-helpers-qmi.h"
 #include "mm-port-enums-types.h"
 #include "mm-log.h"
-#include "mm-modem-helpers.h"
 
 G_DEFINE_TYPE (MMBearerQmi, mm_bearer_qmi, MM_TYPE_BASE_BEARER);
 
@@ -83,14 +82,12 @@ typedef struct {
     gboolean running_ipv4;
     QmiClientWds *client_ipv4;
     guint32 packet_data_handle_ipv4;
-    MMBearerIpConfig *ipv4_config;
     GError *error_ipv4;
 
     gboolean ipv6;
     gboolean running_ipv6;
     QmiClientWds *client_ipv6;
     guint32 packet_data_handle_ipv6;
-    MMBearerIpConfig *ipv6_config;
     GError *error_ipv6;
 } ConnectContext;
 
@@ -102,12 +99,14 @@ connect_context_complete_and_free (ConnectContext *ctx)
     g_free (ctx->apn);
     g_free (ctx->user);
     g_free (ctx->password);
-    g_clear_error (&ctx->error_ipv4);
-    g_clear_error (&ctx->error_ipv6);
-    g_clear_object (&ctx->client_ipv4);
-    g_clear_object (&ctx->client_ipv6);
-    g_clear_object (&ctx->ipv4_config);
-    g_clear_object (&ctx->ipv6_config);
+    if (ctx->error_ipv4)
+        g_error_free (ctx->error_ipv4);
+    if (ctx->error_ipv6)
+        g_error_free (ctx->error_ipv6);
+    if (ctx->client_ipv4)
+        g_object_unref (ctx->client_ipv4);
+    if (ctx->client_ipv6)
+        g_object_unref (ctx->client_ipv6);
     g_object_unref (ctx->data);
     g_object_unref (ctx->qmi);
     g_object_unref (ctx->cancellable);
@@ -248,191 +247,51 @@ build_start_network_input (ConnectContext *ctx)
 }
 
 static void
-qmi_inet4_ntop (guint32 address, char *buf, const gsize buflen)
+print_address4 (gboolean success, const char *tag, guint32 address, GError *error)
 {
     struct in_addr a = { .s_addr = GUINT32_TO_BE (address) };
+    char buf[INET_ADDRSTRLEN + 1];
 
-    g_assert (buflen >= INET_ADDRSTRLEN);
-
-    /* We can ignore inet_ntop() return value if 'buf' is
-     * at least INET_ADDRSTRLEN in size. */
-    memset (buf, 0, buflen);
-    g_assert (inet_ntop (AF_INET, &a, buf, buflen));
-}
-
-static MMBearerIpConfig *
-get_ipv4_config (QmiMessageWdsGetCurrentSettingsOutput *output, guint32 mtu)
-{
-    MMBearerIpConfig *config;
-    char buf[INET_ADDRSTRLEN];
-    char buf2[INET_ADDRSTRLEN];
-    const gchar *dns[3] = { 0 };
-    guint dns_idx = 0;
-    guint32 addr = 0;
-    GError *error = NULL;
-    guint32 prefix = 0;
-
-    /* IPv4 subnet mask */
-    if (!qmi_message_wds_get_current_settings_output_get_ipv4_gateway_subnet_mask (output, &addr, &error)) {
-        mm_dbg ("Failed to read IPv4 netmask (%s)", error->message);
-        g_clear_error (&error);
-        return NULL;
-    }
-    qmi_inet4_ntop (addr, buf, sizeof (buf));
-    prefix = mm_netmask_to_cidr (buf);
-
-    /* IPv4 address */
-    if (!qmi_message_wds_get_current_settings_output_get_ipv4_address (output, &addr, &error)) {
-        mm_dbg ("IPv4 family but no IPv4 address (%s)", error->message);
-        g_clear_error (&error);
-        return NULL;
-    }
-
-    mm_dbg ("QMI IPv4 Settings:");
-
-    config = mm_bearer_ip_config_new ();
-    mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC);
-
-    /* IPv4 address */
-    qmi_inet4_ntop (addr, buf, sizeof (buf));
-    mm_bearer_ip_config_set_address (config, buf);
-    mm_bearer_ip_config_set_prefix (config, prefix);
-    mm_dbg ("    Address: %s/%d", buf, prefix);
-
-    /* IPv4 gateway address */
-    if (qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error)) {
-        qmi_inet4_ntop (addr, buf, sizeof (buf));
-        mm_bearer_ip_config_set_gateway (config, buf);
-        mm_dbg ("    Gateway: %s", buf);
-    } else {
-        mm_dbg ("    Gateway: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
-
-    /* IPv4 DNS #1 */
-    if (qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error)) {
-        qmi_inet4_ntop (addr, buf, sizeof (buf));
-        dns[dns_idx++] = buf;
-        mm_dbg ("    DNS #1: %s", buf);
-    } else {
-        mm_dbg ("    DNS #1: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
-
-    /* IPv6 DNS #2 */
-    if (qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error)) {
-        qmi_inet4_ntop (addr, buf2, sizeof (buf2));
-        dns[dns_idx++] = buf2;
-        mm_dbg ("    DNS #2: %s", buf2);
-    } else {
-        mm_dbg ("    DNS #2: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
-
-    if (dns_idx > 0)
-        mm_bearer_ip_config_set_dns (config, (const gchar **) &dns);
-
-    if (mtu) {
-        mm_bearer_ip_config_set_mtu (config, mtu);
-        mm_dbg ("       MTU: %d", mtu);
+    if (success) {
+        memset (buf, 0, sizeof (buf));
+        if (inet_ntop (AF_INET, &a, buf, sizeof (buf) - 1))
+            mm_dbg ("    %s: %s", tag, buf);
+        else
+            mm_dbg ("    %s: failed (address conversion error)", tag);
+        return;
     }
-
-    return config;
+    mm_dbg ("    %s: failed (%s)", tag, error ? error->message : "unknown");
 }
 
 static void
-qmi_inet6_ntop (GArray *array, char *buf, const gsize buflen)
+print_address6 (gboolean success,
+                const char *tag,
+                GArray *array,
+                guint32 prefix,
+                GError *error)
 {
     struct in6_addr a;
+    char buf[INET6_ADDRSTRLEN + 1];
     guint32 i;
 
-    g_assert (array);
-    g_assert (array->len == 8);
-    g_assert (buflen >= INET6_ADDRSTRLEN);
-
-    for (i = 0; i < array->len; i++)
-        a.s6_addr16[i] = GUINT16_TO_BE (g_array_index (array, guint16, i));
-
-    /* We can ignore inet_ntop() return value if 'buf' is
-     * at least INET6_ADDRSTRLEN in size. */
-    memset (buf, 0, buflen);
-    g_assert (inet_ntop (AF_INET6, &a, buf, buflen));
-}
-
-static MMBearerIpConfig *
-get_ipv6_config (QmiMessageWdsGetCurrentSettingsOutput *output, guint32 mtu)
-{
-    MMBearerIpConfig *config;
-    char buf[INET6_ADDRSTRLEN];
-    char buf2[INET6_ADDRSTRLEN];
-    const gchar *dns[3] = { 0 };
-    guint dns_idx = 0;
-    GArray *array;
-    GError *error = NULL;
-    guint8 prefix = 0;
-
-    /* If the message has an IPv6 address, create an IPv6 bearer config */
-    if (!qmi_message_wds_get_current_settings_output_get_ipv6_address (output, &array, &prefix, &error)) {
-        mm_dbg ("IPv6 family but no IPv6 address (%s)", error->message);
-        g_clear_error (&error);
-        return NULL;
-    }
-
-    mm_dbg ("QMI IPv6 Settings:");
-
-    config = mm_bearer_ip_config_new ();
-    mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC);
-
-    /* IPv6 address */
-    qmi_inet6_ntop (array, buf, sizeof (buf));
-    g_array_unref (array);
-
-    mm_bearer_ip_config_set_address (config, buf);
-    mm_bearer_ip_config_set_prefix (config, prefix);
-    mm_dbg ("    Address: %s/%d", buf, prefix);
-
-    /* IPv6 gateway address */
-    if (qmi_message_wds_get_current_settings_output_get_ipv6_gateway_address (output, &array, &prefix, &error)) {
-        qmi_inet6_ntop (array, buf, sizeof (buf));
-        mm_bearer_ip_config_set_gateway (config, buf);
-        mm_dbg ("    Gateway: %s", buf);
-        g_array_unref (array);
-    } else {
-        mm_dbg ("    Gateway: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
-
-    /* IPv6 DNS #1 */
-    if (qmi_message_wds_get_current_settings_output_get_ipv6_primary_dns_address (output, &array, &error)) {
-        qmi_inet6_ntop (array, buf, sizeof (buf));
-        dns[dns_idx++] = buf;
-        mm_dbg ("    DNS #1: %s", buf);
-        g_array_unref (array);
-    } else {
-        mm_dbg ("    DNS #1: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
+    if (success) {
+        g_assert (array);
+        g_assert (array->len == 8);
 
-    /* IPv6 DNS #2 */
-    if (qmi_message_wds_get_current_settings_output_get_ipv6_secondary_dns_address (output, &array, &error)) {
-        qmi_inet6_ntop (array, buf2, sizeof (buf2));
-        dns[dns_idx++] = buf2;
-        mm_dbg ("    DNS #2: %s", buf2);
-        g_array_unref (array);
-    } else {
-        mm_dbg ("    DNS #2: failed (%s)", error->message);
-        g_clear_error (&error);
-    }
+        memset (buf, 0, sizeof (buf));
+        for (i = 0; i < array->len; i++)
+            a.s6_addr16[i] = GUINT16_TO_BE (g_array_index (array, guint16, i));
 
-    if (dns_idx > 0)
-        mm_bearer_ip_config_set_dns (config, (const gchar **) &dns);
+        if (inet_ntop (AF_INET6, &a, buf, sizeof (buf) - 1))
+            mm_dbg ("    %s: %s/%d", tag, buf, prefix);
+        else
+            mm_dbg ("    %s: failed (address conversion error)", tag);
 
-    if (mtu) {
-        mm_bearer_ip_config_set_mtu (config, mtu);
-        mm_dbg ("       MTU: %d", mtu);
+        g_array_free (array, TRUE);
+        return;
     }
 
-    return config;
+    mm_dbg ("    %s: failed (%s)", tag, error ? error->message : "unknown");
 }
 
 static void
@@ -453,33 +312,73 @@ get_current_settings_ready (QmiClientWds *client,
         mm_info ("error: couldn't get current settings: %s", error->message);
         g_error_free (error);
     } else {
-        QmiWdsIpFamily ip_family = QMI_WDS_IP_FAMILY_UNSPECIFIED;
-        guint32 mtu = 0;
+        gboolean success;
+        guint32 addr, mtu, i;
         GArray *array;
+        guint8 prefix;
+
+        /* If the message has an IPv4 address, print IPv4 settings */
+        if (qmi_message_wds_get_current_settings_output_get_ipv4_address (output, &addr, &error)) {
+            mm_dbg ("QMI IPv4 Settings:");
 
-        if (!qmi_message_wds_get_current_settings_output_get_ip_family (output, &ip_family, &error)) {
-            mm_dbg (" IP Family: failed (%s); assuming IPv4", error->message);
+            /* IPv4 address */
+            print_address4 (TRUE, "Address", addr, error);
+            g_clear_error (&error);
+
+            /* IPv4 gateway address */
+            success = qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error);
+            print_address4 (success, "Gateway", addr, error);
+            g_clear_error (&error);
+
+            /* IPv4 subnet mask */
+            success = qmi_message_wds_get_current_settings_output_get_ipv4_gateway_subnet_mask (output, &addr, &error);
+            print_address4 (success, "Netmask", addr, error);
             g_clear_error (&error);
-            ip_family = QMI_WDS_IP_FAMILY_IPV4;
-        }
-        mm_dbg (" IP Family: %s",
-                (ip_family == QMI_WDS_IP_FAMILY_IPV4) ? "IPv4" :
-                   (ip_family == QMI_WDS_IP_FAMILY_IPV6) ? "IPv6" : "unknown");
 
-        if (!qmi_message_wds_get_current_settings_output_get_mtu (output, &mtu, &error)) {
-            mm_dbg ("       MTU: failed (%s)", error->message);
+            /* IPv4 DNS #1 */
+            success = qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error);
+            print_address4 (success, " DNS #1", addr, error);
+            g_clear_error (&error);
+
+            /* IPv4 DNS #2 */
+            success = qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error);
+            print_address4 (success, " DNS #2", addr, error);
+            g_clear_error (&error);
+        } else {
+            /* no IPv4 configuration */
             g_clear_error (&error);
         }
 
-        if (ip_family == QMI_WDS_IP_FAMILY_IPV4)
-            ctx->ipv4_config = get_ipv4_config (output, mtu);
-        else if (ip_family == QMI_WDS_IP_FAMILY_IPV6)
-            ctx->ipv6_config = get_ipv6_config (output, mtu);
+        /* If the message has an IPv6 address, print IPv6 settings */
+        if (qmi_message_wds_get_current_settings_output_get_ipv6_address (output, &array, &prefix, &error)) {
+            mm_dbg ("QMI IPv6 Settings:");
+
+            /* IPv6 address */
+            print_address6 (TRUE, "Address", array, prefix, error);
+            g_clear_error (&error);
+
+            /* IPv6 gateway address */
+            success = qmi_message_wds_get_current_settings_output_get_ipv6_gateway_address (output, &array, &prefix, &error);
+            print_address6 (success, "Gateway", array, prefix, error);
+            g_clear_error (&error);
+
+            /* IPv6 DNS #1 */
+            success = qmi_message_wds_get_current_settings_output_get_ipv6_primary_dns_address (output, &array, &error);
+            print_address6 (success, " DNS #1", array, 0, error);
+            g_clear_error (&error);
+
+            /* IPv6 DNS #2 */
+            success = qmi_message_wds_get_current_settings_output_get_ipv6_secondary_dns_address (output, &array, &error);
+            print_address6 (success, " DNS #2", array, 0, error);
+            g_clear_error (&error);
+        } else {
+            /* no IPv6 configuration */
+            g_clear_error (&error);
+        }
 
         /* Domain names */
         if (qmi_message_wds_get_current_settings_output_get_domain_name_list (output, &array, &error)) {
             GString *s = g_string_sized_new (array ? (array->len * 20) : 1);
-            guint i;
 
             for (i = 0; array && (i < array->len); i++) {
                 if (s->len)
@@ -492,6 +391,13 @@ get_current_settings_ready (QmiClientWds *client,
             mm_dbg ("   Domains: failed (%s)", error ? error->message : "unknown");
             g_clear_error (&error);
         }
+
+        if (qmi_message_wds_get_current_settings_output_get_mtu (output, &mtu, &error))
+            mm_dbg ("       MTU: %d", mtu);
+        else {
+            mm_dbg ("       MTU: failed (%s)", error ? error->message : "unknown");
+            g_clear_error (&error);
+        }
     }
 
     if (output)
@@ -822,6 +728,8 @@ connect_context_step (ConnectContext *ctx)
     case CONNECT_STEP_LAST:
         /* If one of IPv4 or IPv6 succeeds, we're connected */
         if (ctx->packet_data_handle_ipv4 || ctx->packet_data_handle_ipv6) {
+            MMBearerIpConfig *config;
+
             /* Port is connected; update the state */
             mm_port_set_connected (MM_PORT (ctx->data), TRUE);
 
@@ -843,11 +751,19 @@ connect_context_step (ConnectContext *ctx)
                 ctx->self->priv->client_ipv6 = g_object_ref (ctx->client_ipv6);
             }
 
+            /* Build IP config; always DHCP based */
+            config = mm_bearer_ip_config_new ();
+            mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_DHCP);
+
             /* Set operation result */
             g_simple_async_result_set_op_res_gpointer (
                 ctx->result,
-                mm_bearer_connect_result_new (ctx->data, ctx->ipv4_config, ctx->ipv6_config),
+                mm_bearer_connect_result_new (
+                    ctx->data,
+                    ctx->packet_data_handle_ipv4 ? config : NULL,
+                    ctx->packet_data_handle_ipv6 ? config : NULL),
                 (GDestroyNotify)mm_bearer_connect_result_unref);
+            g_object_unref (config);
         } else {
             GError *error;
 
 -- 
2.0.4


- ModemManager
  "Update to 1.3.0 git 1fc3e17 2014-08-02"
  https://bugzilla.redhat.com/show_bug.cgi?id=1125426

- libqmi
  "Update to 1.11.0 git 852b5bf 2014-06-02"
  https://bugzilla.redhat.com/show_bug.cgi?id=1125424

- libmbim
  "Update to 1.9.0 git 597af10 2014-07-31"
  https://bugzilla.redhat.com/show_bug.cgi?id=1125422


- journal ModemManager-1.3.0-1.git20140802:
[19.304510] MM[595]: <info>  MM (version 1.3.0-1.git20140802.fc21) starting in system bus...
[22.081165] MM[595]: <warn>  (ttyUSB0): port attributes not fully set
[22.081655] MM[595]: <warn>  (ttyUSB1): port attributes not fully set
[22.083024] MM[595]: <warn>  (ttyUSB2): port attributes not fully set
[22.368265] MM[595]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
[22.369188] MM[595]: cannot connect to proxy: Could not connect: Connection refused
[22.369660] MM[595]: spawning new qmi-proxy (try 1)...
[22.726065] MM[595]: [/dev/cdc-wdm0] Checking version info (10 retries)...
[22.729417] MM[595]: [/dev/cdc-wdm0] QMI Device supports 5 services:
[22.729873] MM[595]: [/dev/cdc-wdm0]    ctl (1.2)
[22.730327] MM[595]: [/dev/cdc-wdm0]    wds (1.3)
[22.730765] MM[595]: [/dev/cdc-wdm0]    dms (1.2)
[22.731227] MM[595]: [/dev/cdc-wdm0]    nas (1.0)
[22.731669] MM[595]: [/dev/cdc-wdm0]    cat (0.0)
[28.743636] MM[595]: <warn>  (ttyUSB1): port attributes not fully set
[28.744161] MM[595]: <warn>  (ttyUSB2): port attributes not fully set
[36.614653] MM[595]: <info>  Creating modem with plugin 'Huawei' and '5' ports
[36.614786] MM[595]: <info>  Modem for device at '/sys/devices/pci0000:00/0000:00:04.1/usb2/2-3' successfully created
[36.614911] MM[595]: [/dev/cdc-wdm0] Opening device with flags 'version-info, net-802-3, net-no-qos-header, proxy'...
[36.615041] MM[595]: [/dev/cdc-wdm0] Checking version info (10 retries)...
[36.615168] MM[595]: [/dev/cdc-wdm0] QMI Device supports 5 services:
[36.615292] MM[595]: [/dev/cdc-wdm0]    ctl (1.2)
[36.615425] MM[595]: [/dev/cdc-wdm0]    wds (1.3)
[36.615549] MM[595]: [/dev/cdc-wdm0]    dms (1.2)
[36.615674] MM[595]: [/dev/cdc-wdm0]    nas (1.0)
[36.615809] MM[595]: [/dev/cdc-wdm0]    cat (0.0)
[36.615933] MM[595]: [/dev/cdc-wdm0] Setting network port data format...
[36.616716] MM[595]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
[36.619166] MM[595]: [/dev/cdc-wdm0] Checking version info (10 retries)...
[36.622110] MM[595]: [/dev/cdc-wdm0] QMI Device supports 5 services:
[36.622271] MM[595]: [/dev/cdc-wdm0]    ctl (1.2)
[36.622397] MM[595]: [/dev/cdc-wdm0]    wds (1.3)
[36.622521] MM[595]: [/dev/cdc-wdm0]    dms (1.2)
[36.622643] MM[595]: [/dev/cdc-wdm0]    nas (1.0)
[36.622765] MM[595]: [/dev/cdc-wdm0]    cat (0.0)
[36.636241] MM[595]: [/dev/cdc-wdm0] Allocating new client ID...
[36.638701] MM[595]: [/dev/cdc-wdm0] Registered 'dms' (version 1.2) client with ID '44'
[36.651357] MM[595]: [/dev/cdc-wdm0] Allocating new client ID...
[36.654844] MM[595]: [/dev/cdc-wdm0] Registered 'nas' (version 1.0) client with ID '38'
[36.655486] MM[595]: <warn>  (ttyUSB2): port attributes not fully set
[36.678646] MM[595]: <warn>  couldn't load Supported Bands: 'QMI operation failed: Cannot send message: QMI service 'dms' version '1.3' required, got version '1.2''
[36.700371] MM[595]: <warn>  couldn't load SIM identifier: 'QMI operation failed: Cannot send message: QMI service 'dms' version '1.3' required, got version '1.2''
[36.700545] MM[595]: <warn>  couldn't load IMSI: 'QMI operation failed: Cannot send message: QMI service 'dms' version '1.3' required, got version '1.2''
[36.704371] MM[595]: <warn>  couldn't load list of Own Numbers: 'Couldn't get MSISDN: QMI protocol error (16): 'NotProvisioned''
[36.708171] MM[595]: <warn>  couldn't load current allowed/preferred modes: 'Loading current modes is not supported by this device'
[37.356176] MM[595]: <warn>  couldn't load current Bands: 'QMI operation failed: Cannot send message: QMI service 'nas' version '1.1' required, got version '1.0''
[37.356711] MM[595]: <info>  Modem: state changed (unknown -> disabled)
[37.361244] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (disabled -> enabling)
[37.361727] MM[595]: <warn>  (ttyUSB2): port attributes not fully set
[37.466267] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: 3GPP Registration state changed (unknown -> registering)
[37.467356] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: 3GPP Registration state changed (registering -> home)
[38.459311] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (enabling -> registered)
[38.462556] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: access technology changed (unknown -> umts)
[67.896723] MM[595]: <info>  Simple connect started...
[67.896912] MM[595]: <info>  Simple connect state (4/8): Wait to get fully enabled
[67.897054] MM[595]: <info>  Simple connect state (5/8): Register
[67.897188] MM[595]: <info>  Simple connect state (6/8): Bearer
[67.897315] MM[595]: <info>  Simple connect state (7/8): Connect
[67.897441] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (registered -> connecting)
[67.988740] MM[595]: [/dev/cdc-wdm0] Allocating new client ID...
[67.992775] MM[595]: [/dev/cdc-wdm0] Registered 'wds' (version 1.3) client with ID '37'
[71.872712] MM[595]: [/dev/cdc-wdm0] Allocating new client ID...
[71.876473] MM[595]: [/dev/cdc-wdm0] Registered 'wds' (version 1.3) client with ID '38'
[71.880362] MM[595]: <info>  error: couldn't start network: QMI protocol error (64): '(null)'
[71.880913] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (connecting -> connected)
[71.881442] MM[595]: <info>  Simple connect state (8/8): All done
[78.899466] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (connected -> disconnecting)
[78.902833] MM[595]: <info>  Modem /org/freedesktop/MM1/Modem/0: state changed (disconnecting -> registered)


poma



More information about the ModemManager-devel mailing list