Hello,
I have downloaded and installed the last ModemManager version from the Git 
repository. I also have installed the NetworkManager packages by Aleksander to 
integrate MM with gnome3 in fedora18:
http://sigquit.wordpress.com/2012/11/13/integrating-the-new-modemmanager-in-gnome3/

Everything seems to work fine with some modems like Sierra 307U and 310U. I can 
use mmcli to unlock the SIM and enable the modem, the integration with 
nm-applet also works perfectly.

But with the Huawei e303 I have problems. The mmcli commands work, but there 
seem to be a problem in the integration with pppd.
As far as i know the pppd daemon gets the ttyUSB port to connect to from the 
D-Bus interface 'org.freedesktop.ModemManager1.Modem and property 'PrimaryPort'.

This PrimaryPort is defined in the MM sourcecode in the file 
src/mm-iface-modem.c, and it seems that in this case it is given the wrong 
port???

>From the logs I can see the following lines with identify the data and at port:
Feb 19 12:59:35 jmgonzalezcFedora ModemManager[7373]: <debug> 
[1361278775.691035] [mm-base-modem.c:834] log_port(): 
(/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3) tty/ttyUSB2 at (primary)
Feb 19 12:59:35 jmgonzalezcFedora ModemManager[7373]: <debug> 
[1361278775.691286] [mm-base-modem.c:834] log_port(): 
(/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3) tty/ttyUSB0 data (primary)

It is supposed that the pppd connection should be done through the data port. I 
can see that the ATD call command is sent over the DATA port, but the pppd 
daemon tries to establish the connection through the AT port because that is 
the port returned by D-Bus in the PrimaryPort property.

In order to try to fix this particular problem I created this simple patch:
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -3704,12 +3704,14 @@ interface_initialization_step (InitializationContext 
*ctx)

 #if defined WITH_QMI
             primary = MM_PORT (mm_base_modem_peek_port_qmi (MM_BASE_MODEM 
(ctx->self)));
-            if (!primary)
-                primary = MM_PORT (mm_base_modem_peek_port_primary 
(MM_BASE_MODEM (ctx->self)));
+            if (!primary){
+                primary = MM_PORT (mm_base_modem_peek_best_data_port 
(MM_BASE_MODEM (ctx->self)));
+           }
 #else
-            primary = MM_PORT (mm_base_modem_peek_port_primary (MM_BASE_MODEM 
(ctx->self)));
+            primary = MM_PORT (mm_base_modem_peek_best_data_port 
(MM_BASE_MODEM (ctx->self)));
 #endif

Which seems to solve the problem with no undesired effects...., but I suppose 
that this can break the MM for another modem.

I also have been forced to remove the NDIS connection from the Huawei plugin.
--- a/plugins/huawei/mm-plugin-huawei.c
+++ b/plugins/huawei/mm-plugin-huawei.c
@@ -492,7 +492,7 @@ grab_port (MMPlugin *self,
 G_MODULE_EXPORT MMPlugin *
 mm_plugin_create (void)
 {
-    static const gchar *subsystems[] = { "tty", "net", "usb", NULL };
+    static const gchar *subsystems[] = { "tty", "usb", NULL };
     static const guint16 vendor_ids[] = { 0x12d1, 0 };
     static const MMAsyncMethod custom_init = {

Beacuse sometimes (I don't no why only sometimes and not always) it tries to 
establish the connection by NDIS, but this never works. This modem is NDIS 
capable and it works in Windows, but it can only connect in Linux with AT 
commands and pppd.

With these two patches the huawei e303 it is working properly.
Does anyone have the same problems?
Any idea about how to fix in a better way this connectivity problem?


Best regards,
José María.


Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, 
contiene información de carácter confidencial exclusivamente dirigida a su 
destinatario o destinatarios. Si no es vd. el destinatario indicado, queda 
notificado que la lectura, utilización, divulgación y/o copia sin autorización 
está prohibida en virtud de la legislación vigente. En el caso de haber 
recibido este correo electrónico por error, se ruega notificar inmediatamente 
esta circunstancia mediante reenvío a la dirección electrónica del remitente.
Evite imprimir este mensaje si no es estrictamente necesario.

This email and any file attached to it (when applicable) contain(s) 
confidential information that is exclusively addressed to its recipient(s). If 
you are not the indicated recipient, you are informed that reading, using, 
disseminating and/or copying it without authorisation is forbidden in 
accordance with the legislation in effect. If you have received this email by 
mistake, please immediately notify the sender of the situation by resending it 
to their email address.
Avoid printing this message if it is not absolutely necessary.
_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to