Get EM7455 work under Ubuntu 18.04 LTS (Jetson Nano)

If you’re using the OS menu, you’re using ModemManager. If you manually had changed the modem to rmnet it could be you’re using the modem in QMI mode with the upstream qmi_wwan driver instead of GobiNet. If you truly are using the modem in QMI mode and you have GobiNet installed and not using qmi_wwan, it could still be that ModemManager is just using plain old AT commands and a PPP session over a serial port. ModemManager will use whatever ports it finds as best as it can. Just not GobiNet, as ModemManager doesn’t support any out-of-tree kernel driver (drivers that are not maintained by the upstream Linux kernel community).

If you change the modem to MBIM mode, ModemManager should be able to manage your modem with cdc_mbim. If you change the modem to QMI (rmnet) mode and you uninstall GobiNet, ModemManager should be able to manage the modem in QMI mode with qmi_wwan. Even if you disable or remove all cdc_mbim and qmi_wwan and GobiNet, ModemManager may be able to attempt a connection using AT+PPP.

My gut feeling is that maybe you’re using an old ModemManager version, but really don’t know; what I can say is that I do keep a EM7455 in QMI mode and a EM7455 in MBIM mode for all my normal tests during the ModemManager release testing process, and they both work well. For Ubuntu 18.04 (and all recent LTS releases) I also maintain a ModemManager PPA where I try to keep the latest stable releases: ModemManager (ubuntu == 18.04 bionic) : Aleksander Morgado

My suggestion to @jyijyi was just to avoid always defaulting to say “install GobiNet” because that is no true obvious solution for normal users expecting the modem to work with the OS menu. And not everyone is a developer knowing how to tinker with kernel drivers. I’m not trying to sabotage the usage of GobiNet, I’m just trying to help the users get the connections up easily.

@aleksander0m Running “mmcli -L” returns:
/org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] EM7455
“mmcli -m 0” returns:
--------------------------------
General | dbus path: /org/freedesktop/ModemManager1/Modem/0
| device id: f1708c45966fc3f6cf466631b98196e688d59254
--------------------------------
Hardware | manufacturer: Sierra Wireless, Incorporated
| model: EM7455
| revision: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: 359073060772732
--------------------------------
System | device: /sys/devices/3610000.xhci/usb2/2-3/2-3.4
| drivers: GobiSerial driver, GobiNet
| plugin: Generic
| primary port: ttyUSB2
| ports: eth1 (net), ttyUSB0 (qcdm), ttyUSB2 (at)
--------------------------------
Status | unlock retries: sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)
| state: registered
| power state: on
| access tech: lte
| signal quality: 40% (recent)
--------------------------------
Modes | supported: allowed: 2g, 3g, 4g; preferred: none
| current: allowed: 2g, 3g, 4g; preferred: none
--------------------------------
IP | supported: ipv4, ipv6, ipv4v6
--------------------------------
3GPP | imei:
| operator id: 22802
| operator name: 0053003
| registration: roaming
--------------------------------
3GPP EPS | ue mode of operation: ps-2
--------------------------------
SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0

That confirms one of the theories I said before then, you’re using the modem using plain AT+PPP over ttyUSB2. You’re not using QMI or GobiNet for anything. The ttyUSB2 is possible exposed by the GobiSerial driver, and for this kind of setup you wouldn’t need that either, the upstream option and qcserial drivers are more than enough.

Using AT+PPP won’t give you proper LTE speeds, and in general it’s suboptimal if you already have a network port you could use. If you’re up to playing with the setup a bit more, I’d suggest you switch the module to the MBIM composition and let MM handle the modem in MBIM mode, without any GobiNet or Gobiserial involved.

Ok, I have uninstalled the Gobi drivers. How can I change the modem to MBIM mode now?

you can check AT!USBCOMP=?

No, because ttyUSB2 is no longer exposed.

you install the gobiserial driver and enable MBIM interface.

Is there an other way than installing the Gobi drivers again? Any suggestions? @aleksander0m

you might try the qcserial

After removing GobiSerial/GobiNet, have you unplugged/replugged the modem (or rebooted the system)?

The kernel in Ubuntu 18.04 should be capable of exposing the TTY ports for the EM7455 using qcserial/option drivers. Are you not seeing any ttyUSB port exposed?

If you run “usb-devices”, can you find an entry with “Vendor=1199”? if so, what’s the contents of that section?

Yes, I rebooted the system after removing the Gobi drivers.

“usb-devices” shows:

T: Bus=02 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=1199 ProdID=9071 Rev=00.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=Sierra Wireless EM7455 Qualcomm® Snapdragon™ X7 LTE-A
S: SerialNumber=LF81557773021022
C: #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=504mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
I: If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

Support for the EM7455 in the qcserial driver was added in commit 04fdbc825ffc0, kernel v4.5. Your Ubuntu 18.04 has a much newer kernel, so that should not be an issue.

Try to “sudo modprobe qcserial” to see if you can manually load it.

It may be that the GobiNet/GobiSerial driver blacklists qcserial/qmi_wwan during the install process, e.g. with a custom conf file in /etc/modprobe.d/. Please review the files in that directory and make sure none of them has blacklist qcserial or blacklist qmi_wwan

“sudo modprobe qcserial” returns:

modprobe: FATAL: Module qcserial not found in directory /lib/modules/4.9.140-tegra

I went through every single conf file in /etc/modprobe.d/, but none of them blacklists qcserial or qmi_wwan.

Is the kernel really missing the qcserial driver? What’s the output of this?

$ find /lib/modules | grep qcserial

There is no output.

On my Jetson I run the software package from Nvidia. On their website they state: “NVIDIA L4T is the board support package for Jetson. It includes Linux Kernel 4.9, bootloader, NVIDIA drivers, flashing utilities, sample filesystem based on Ubuntu 18.04, and more for the Jetson platform.”

Ok, that is not Ubuntu 18.04 then. That looks like a system somewhat based on Ubuntu 18.04, but the kernel is different and it doesn’t seem to include all the kernel modules that you’d expect to see in a default Ubuntu 18.04… :confused:

That explains why you couldn’t make it work until you installed additional custom compiled drivers.