Re: 1199:6832 Sierra Wireless, Inc. MC8780 not working with NetworkManager 0.8.3.998 / ModemManager 0.4



On Thu, May 19, 2011 at 11:00 PM, Gerd Bavendiek
<gerd bavendiek googlemail com> wrote:
> I have a ID 1199:6832 Sierra Wireless, Inc. MC8780 Device.
> Unfortunately NetworkManager in Ubuntu 9.10 Karmic
> was the last version I could use the device with. I recently checked
> Ubuntu 11.04 Natty (coming with NetworkManager version
> 0.8.3.998). This too does not work, forcing me to stay with Karmic.
[...]
> All the details are here:
[...]
> Is there anything I can do (besides from learning to hack at
> NetworkManager ...) ?

Hi, I 'm not a NetworkManager dev, just a fellow ubuntu user :)

>From a cursory reading of the bug reports you cited it seems like some
sierra modems crash when ModemManager sends CFUN=1 to them.

Can you help verify if this is indeed the case with yours as well?

I put a version of natty's modemmanager with the attached patch
applied in my ppa. So, the only thing you need to do to test is:

sudo add-apt-repository ppa:pktoss/ppa
sudo apt-get update
sudo apt-get install modemmanager

restart networkmanager/modemmanager or to be 100% sure you
can just reboot.

Test to see if your device works now

sudo add-apt-repository -r ppa:pktoss/ppa
sudo apt-get update

(The last 2 steps are in order to remove my ppa to avoid it breaking
your system with my other experimental stuff).

Alternatively you can just build modemmanager with the attached
patch applied by yourself.

If the patched modemmanager works, then please say it so that
the appropriate quirk for your device can be added.

Thanks,
Pantelis
Index: modemmanager-0.4+git.20110124t203624.00b6cce/plugins/mm-modem-sierra-gsm.c
===================================================================
--- modemmanager-0.4+git.20110124t203624.00b6cce.orig/plugins/mm-modem-sierra-gsm.c	2011-05-20 08:23:29.908008899 +0300
+++ modemmanager-0.4+git.20110124t203624.00b6cce/plugins/mm-modem-sierra-gsm.c	2011-05-20 08:32:49.606784301 +0300
@@ -638,6 +638,32 @@
 }
 
 static void
+set_property (GObject *object, guint prop_id,
+              const GValue *value, GParamSpec *pspec)
+{
+    /* gobject does not like to just have get_property and seems to
+     * to not honour our overriden properties ... keep this as an empty
+     * func around */
+}
+
+static void
+get_property (GObject *object, guint prop_id,
+              GValue *value, GParamSpec *pspec)
+{
+    /* At least some Sierra modems go down if you send a power up command */
+    switch (prop_id) {
+    case MM_GENERIC_GSM_PROP_POWER_UP_CMD:
+        g_value_set_string (value, "");
+        break;
+    case MM_GENERIC_GSM_PROP_POWER_DOWN_CMD:
+        g_value_set_string (value, "");
+        break;
+    default:
+        break;
+    }
+}
+
+static void
 mm_modem_sierra_gsm_class_init (MMModemSierraGsmClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -653,5 +679,16 @@
     gsm_class->get_access_technology = get_access_technology;
     gsm_class->get_sim_iccid = get_sim_iccid;
     gsm_class->do_disconnect = do_disconnect;
+
+    object_class->get_property = get_property;
+    object_class->set_property = set_property;
+
+    g_object_class_override_property (object_class,
+                                      MM_GENERIC_GSM_PROP_POWER_UP_CMD,
+                                      MM_GENERIC_GSM_POWER_UP_CMD);
+
+    g_object_class_override_property (object_class,
+                                      MM_GENERIC_GSM_PROP_POWER_DOWN_CMD,
+                                      MM_GENERIC_GSM_POWER_DOWN_CMD);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]