NetworkManager not managing additional ethernet interface

OS: balenaOS 2.38.3+rev2
device: SKX2

We have an UBlox LTE modem in our device that we have been using for a while. It appear to the system as a RNDIS ethernet interface so everything should just work out of the box. After upgrading to BalenaOS 2.38.3, that device stopped coming up on boot. NetworkManager says is not managed and trying to set it to be managed by NetworkManager results in an error saying it’s strictly unmanaged.
After searching around, I found this thread that seems to have a solution: https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1638842 <- comment #6 .
I confirmed that this does work but required modifications in the filesystem on the HostOS side. Is there a way to achieve the same results via DBUS or another method?

Hi

  • There are a bunch of things one can do to customize the os while booting, they can be found here. Unfortunately, we don’t have a method of mounting files from the boot partition to the path that you need (i.e. /etc/NetworkManager/conf.d/).
  • Creating an empty conf file feels like a workaround to problem rooted elsewhere. Are there any other things that you have tried that worked? Maybe we can approach this differently.
  • Also, 2.38.3 is rather old. Can you try this with the latest os version and share the results?

Hi

Can you guys update the latest available image for SKX2? 2.38.3 is the latest available I see.

I’m asking internally to see what is the update status on that device. We do have newer versions on staging (https://dashboard.balena-staging.com/) if you want to try. You do need to create a new account account there, and there is of course no guarantees as it is still a test version.

Ok, thank you! We’ll test the latest on staging and let you know how it goes.

Hi David, does the carrier board have a serial debug interface?

Also, can you tell me which was the OS release the modem worked fine for you?

Hi Florin,

2.9.7 worked for us without any issues. When the UBlox LTE modem comes up, it shows up as a RNDIS Ethernet device. In 2.9.7, it comes up managed by NetworkManager everything works, but in the latest version of BalenaOS, we see the device under nmcli but it says it’s unmanaged, trying to enable the interface to be managed by NetworkManager results in an error saying it’s strictly unmanaged.

Regards,

David

Hi David, does a newer release work also? Can you check on your side the 2.46.1+rev1 from staging? On my side this newer release makes the modem be managed by MM but for some reason it complains the SIM is missing so I want to rule out a possible hw issues on my board

Hi Florin,

I think your modem is in a different mode, are you testing on the Ublox MPCI-L2xx? There is 2 modes for that device, 1 is appearing as a traditional cellular modem to the OS which will be managed by ModemManager. The 2nd mode, which is what we’re using, will make the modem appear as a RNDIS ethernet device, so the OS does not know it’s an LTE modem and only that it’s an ethernet network interface. I am open to using the UBlox LTE module in a different mode but I was under the impression that Modem Manager did not support the Ublox modules atm.

Regards,

David

Hi David, yes I am using the Toby-L210 modem. I have released today a newer OS, 2.47.1+rev1. It is available in staging. Please give it a try and let me know if that works for you.
I had another look at the board I have here and I saw it was missing the connection from the mpcie daughter board to the nvidia baseboard. However, even after connecting it, it says SIM missing. As I cannot unscrew the whole thing to further check the connections, I would like for you to try and test this latest release please

I meant to say that the SIM connection from the modem mpcie board to the nvidia baseboard was not done. The cable ribbon was not connected to the nvidia baseboard SIM labeled connector side. I connected it but ModemManager still says the SIM is missing so I wonder if there’s any additional connection missing.

Hi Florin,

Thanks for the update. I will test the latest version.

As for SIM missing, there is a known issue w/ the flex PCB cable that goes from the module carrier to the main carrier that can easily be disturbed.

Regards,

David

Hi @floion

This is with 2.9.7

DEVICE       TYPE      STATE        CONNECTION
usb0         ethernet  connected    Wired connection 2
docker0      bridge    connected    docker0
resin-dns    bridge    connected    resin-dns
wlan0        wifi      connected    sparkling-voice-WAP
eth0         ethernet  unavailable  --
balena0      bridge    unmanaged    --
dummy0       dummy     unmanaged    --
veth64e4f97  ethernet  unmanaged    --
tunl0        iptunnel  unmanaged    --
lo           loopback  unmanaged    --
resin-vpn    tun       unmanaged    --

This is with 2.47.1

DEVICE       TYPE      STATE        CONNECTION
wlan0            wifi      connected  misty-snow-WAP
eth0             ethernet  connected  Wired connection 1
docker0          bridge    connected  docker0
supervisor0      bridge    connected  supervisor0
balena0          bridge    unmanaged  --
br-07e92c2346a1  bridge    unmanaged  --
resin-dns        bridge    unmanaged  --
veth6e10aad      ethernet  unmanaged  --
tunl0            iptunnel  unmanaged  --
lo               loopback  unmanaged  --
resin-vpn        tun       unmanaged  --

usb0 is missing

mmcli -L returned No modems were found

Best,
Tin-tin

Hi. Thanks for the info
Here is what I get:

root@c123eed:~# mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [u-blox] TOBY-L210

root@c123eed:~# mmcli -m 0

General | dbus path: /org/freedesktop/ModemManager1/Modem/0
| device id: 7998c6b7877b5d056f70de8d86d2adc1971bce22

Hardware | manufacturer: u-blox
| model: TOBY-L210
| firmware revision: 09.94
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: 359639060141639

System | device: /sys/devices/3530000.xhci/usb1/1-3/1-3.1
| drivers: cdc_acm, rndis_host
| plugin: u-blox
| primary port: ttyACM0
| ports: ttyACM0 (at), usb0 (net)

Status | state: failed
| failed reason: sim-missing
| power state: on
| signal quality: 0% (cached)

Modes | supported: allowed: 2g; preferred: none
| allowed: 2g, 3g; preferred: none
| allowed: 2g, 3g; preferred: 2g
| allowed: 2g, 3g; preferred: 3g
| allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 2g, 3g, 4g; preferred: none
| allowed: 2g, 3g, 4g; preferred: 2g
| allowed: 2g, 3g, 4g; preferred: 3g
| allowed: 2g, 3g, 4g; preferred: 4g
| allowed: 2g, 4g; preferred: none
| allowed: 2g, 4g; preferred: 2g
| allowed: 2g, 4g; preferred: 4g
| allowed: 3g, 4g; preferred: none
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| current: allowed: any; preferred: none

Bands | supported: egsm, dcs, pcs, g850, utran-1, utran-5, utran-8, utran-2,
| eutran-1, eutran-3, eutran-5, eutran-7, eutran-8, eutran-20

IP | supported: ipv4, ipv6, ipv4v6

Can you enable support access on your board please?

sure, I DM you @floion

Thanks, I received it. What sort of base image are you using in your Dockerfile? Are you using the newer “balenalib” base images? I suspect you are not using the newer base images and because of that when you start the container the udev in your container messes with MM from the host OS. The newer base images should not do that, see the note here https://www.balena.io/docs/reference/base-images/base-images/#working-with-dynamically-plugged-devices
And I got the modem on your board to be recognized by MM but it looks like you are missing the NM connection profile for it. See https://www.balena.io/docs/reference/OS/network/2.x/#cellular-modem-setup for what you need to do.