Re: nm-pppd-plugin does not start




Aleksander,
thank your very much for your fine answers. Please find my replies/comments below.

2016-03-04 1:28 GMT+02:00 Aleksander Morgado <aleksander aleksander es>:

Did connman/ofono run a DHCP client on the interface?

No, I tried to run it manually with following procedure:
ifconfig wwan0 up
dhclient wwan0
DHCP tried for some time but did not give id addresses.
In fact, I also tried this procedure with MM with same results (without using udev to give ID_MM_IGNORE_PORT properties to cdc-wdm0 and wwan0).


> However my desktop machine - Ubuntu 14.04 opens connection quite smoothly.
> It has NM version 0.9.8.8 and MM version 1.0.0. Somehow it does not care
> about this ndisdup problem, but instead opens connection using ppp - no
> problem at all.
>

Despite the fact that is using PPP instead of the WWAN iface :)
Well, my priority is to get connection work somehow without fiddling. Majority of traffic is very low speed m2m traffic, so protocol really is no issue.

> Main difference found from sysfs is that Ubuntu opens only /dev/ttyUSB0
> /dev/ttyUSB2  /dev/ttyUSB3 devices for this modem whereas am335x board opens
> /dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2 /dev/cdc-wdm0 and /net/wwan0
>
> if I execute following command after plugging in modem:
> nmcli d
> Ubuntu provides:
> ttyUSB3    gsm               disconnected
>
> am335x board do not provide  have this line
>
> If I execute following command on am335x board:
> mmcli -m 0 --simple-connect="apn=internet"
>
> Everything seems going well, solid blue led swithes on, but there is no
> interface brought up.

You're connecting the modem through MM; while you want to connect the
modem through NM (NM will talk to MM internally). MM will not bring up
any interface or configure IP details on the interface; that's NM
doing it for you when you activate a "gsm" connection type.
OK, I thought this could be the problem, but really I did not figure out the syntax. Now I got it
so it should be
nmcli c up uuid <UUID>
or
nmcli c up id <ID>
both <UUID> and <ID> coming from the configuration file.

It was also a bit confusing that
nmcli c
command from Ubuntu lists all the configurations below
/etc/NetworkManager/system-connections
while same command from am335x board do not provide this listing.
It seems that am335x needs
nmcli c list
command.

But problem now is that NM does not see this modem. If I execute:
nmcli d
modem is not listed there. Also if I execute:
nmcli c up id <ID>

I will get following respons:
Error: No suitable device found: no device found for connection '<ID>'.


> If I start modem connection from nm app on Ubuntu, ppp connection starts and
> it is brought to interfaces. From logs it seems that it also is using
> simple-connect method.
>

NM calls the simple connect in MM; that's regardless of what
connection type MM will be using afterwards. NM always runs simple
connect; you shouldn't run it manually.
OK, but now there is this problem that "gsm"  device is not shown to NM.

> If I use udev rules to ignore cdc-wdm0 and net/wwan0 on am335x board,
> simple-connect proceeds up tp "all done", but no ppp is started an in fact
> now even the led is not having solid blue. However, if I start pppd manually
> at this point, connection is established quite well.

Ideally you should use NDISDUP+WWAN; very very likely you can use them
an you're losing some other thing. If using NDISDUP+WWAN, you won't
see NM creating a ppp0 interface, you'll just see NM trying to run a
DHCP client on the WWAN interface once ModemManager has decided the
WWAN is read for that (once the NDISDUP command has finished).
OK,  Here is one problem. NM and MM do not communicate with each other in my installation or at least with this modem. In fact I do have other Huawei 3131 that communicates in HiLink mode fro reference. That opens eth1 interface automatically without any manual operations. nmcli c command lists that like ordinary 802-3-ethernet connection. Does MM and NM communicate in that case?

Have you tried to use the modem with a newer ModemManager in the same
Ubuntu setup? MM 1.0.0 and MM 1.4.x are totally compatible API wise.
I'd really try it.
 
No I have not. I prefer not to mess with my desktop unless I become quite desperate (I'm pretty close to that, though).


> I have tried to reproduce Ubuntu settings.
> 1) /etc/NetworkManager/NetworkManager.conf with following contents:
> [main]
> plugins=keyfile
> dns=dnsmasq
>
> 2) /etc/NetworkManager/system-connections/Operator with following contents:
> [connection]
> id=Operator
> uuid=b9cbaa78-8856-4c82-915b-702048ab3b85
> type=gsm
> permissions=user:root:;
> autoconnect=true
> timestamp=0
>
> [gsm]
> number=*99#
> apn=internet
>
> [ipv4]
> method=auto
>
> [serial]
> baud=115200
>
> Differences bitween Ubuntu and am335x board:
> 1) Note that Ubuntu uses upstart and am335x board systemd.

This shouldn't be any issue.

> 2) Ubuntu lists one line for each of files in
> /etc/NetworkManager/system-connections folder whereas am335x
seems ignoring
> these settings.
>

I think you may be missing the step to create a "gsm" connection and
activate it through NM.
 
I'm not quite sure what you mean with "creating gsm connection". I thought that /etc/NetworkManager/system-connections/Operator above stands for "gsm" connection. I had rally slight misunderstanding related to "nmcli c" parameters.


> am335x: no reference for net/ppp0
>

You don't see any reference to the ppp0 interface because it is only
created on-the-fly when needed; in your yocto build we try to use
NDISDUP and WWAN, no PPP involved.

So problem is that NM does not see active modem that I could start "gsm" connection from NM.
 


> 2) net/ppp0. What is required to get am335x MM creating ppp0 interface like
> Ubuntu does?

It's NM the one creating the interface. Did you compile NM in yocto
with ppp support? (--with-ppp I think it is) What's the configure
report output? This would be when you want to force the legacy PPP
method, though. I still believe you should try NDISDUP on the
/dev/cdc-wdm0 and WWAN with DHCP... :)
Good point, ppp is not enabled! Option seems to be --enable-ppp. I'll try it. This NDISDUP seemp pretty problematic. In fact I found MM patch whose introduction comment describes pretty much how this modem works (https://cgit.freedesktop.org/ModemManager/ModemManager/log/?h=dcbw/huawei-at-dhcp). I'll check if that helps/works with this MM version - then I suppose, I should contact MM mailing list...

> 3) It is told in the MM package that there is no need starting on boot -
> dbus will start on demand. What event does this as MM does not start at all
> if service is not enabled by default
>

NM requests to open MM, BUT I don't think it tries to dbus auto-start
it any more if you're using systemd. In Ubuntu NM requests the dbus
daemon to auto-start MM, in your yocto build you need to have the
systemd service enabled so that MM starts itself on boot.

No problem at all, this was just told in the MM recipe commenting systemd confuguration variable that was set to inhibit starting service at boot (below).
# no need to start on boot - dbus will start on demand
SYSTEMD_AUTO_ENABLE = "disable"

It is no problem at all for me to enable it in my bbappend recipe. In fact I made that recipe overlay in order to fix annoying feature NM has compared to Connman.  With NM DHCP provides new IP address every time I build a new image for my card. Somehow Connman manages negotiating steady IP addresses. I have not seen them changing ever. In fact I have had images with Connman and MM. Always when I burn Connman image I get the original IP address back and wise verse, I always get new IP address when I burn image with MM. I studied this and I did not find other difference than the fact that Connman sent MAC based dhcp-client-identifier to dhcp server. My patch edited dhclient.conf on fly to set "send dhcp-client-identifier" if it has not already set before. Well, this worked somehow. When connection starts IP is what it used to be, but it changes pretty rapidly, then lasting pretty well. This however is another issue that I should contact NM mailing list. It is pretty annoying feature really as I have to work over ssh when I debug for instance this modem issue. Terminal gets halted in the middle of debugging when IP changes.

Hope this gives you a bit more of context.. :)

Please not that we also have a ModemManager-specific mailing list here:
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

In your case, though, I think it's a mix of NM integration issues and MM issues.

Yes I thought that also - well perhaps more MM problems than NM problems.

Thanks again,
Matti




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