Get EM7455 work under Ubuntu 18.04 LTS (Jetson Nano)

I have a EM7455 modem and try to get it work under Ubuntu 18.04 on a Jetson Nano. I am new to modems and have searched a lot on the web to find a solution, but with no luck so far. I would appreciate if someone could provide step by step instructions (which driver to use, how to install, how to set modem to right mode etc.)

usb-devices shows the following output:
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
C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=504mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
/usr/bin/usb-devices: Zeile 79: printf: c: Ungültige Zahl.
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=(none)
/usr/bin/usb-devices: Zeile 79: printf: d: Ungültige Zahl.
I: If#= 0 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 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)

You can install this driver

https://source.sierrawireless.com/resources/airprime/software/usb-drivers-linux-qmi-software-s2,-d-,42n2,-d-,64/

Thank you for your reply. I installed the driver by following the instructions in the readme file:

  • Add the modules to the DKMS tree: sudo dkms add --verbose -m SierraLinuxQMIdrivers -v S2.42N2.64
  • Build the modules using DKMS: sudo dkms build --verbose -m SierraLinuxQMIdrivers -v S2.42N2.64
  • Install the modules using DKMS: sudo dkms install --verbose -m SierraLinuxQMIdrivers -v S2.42N2.64
  • Check status: sudo dkms status --verbose -m SierraLinuxQMIdrivers -v S2.42N2.64

The last command outputs: SierraLinuxQMIdrivers, S2.42N2.64, 4.9.140-tegra, aarch64: installed

The command usb-devices shows now:
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=GobiSerial
/usr/bin/usb-devices: Zeile 79: printf: c: Ungültige Zahl.
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=(none)
/usr/bin/usb-devices: Zeile 79: printf: d: Ungültige Zahl.
I: If#= 0 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=GobiSerial
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=GobiSerial

For me it seems that there are more steps necessary.

Did you see gobiserial and gobinet drivers are loaded in dmesg?

This should be the relevant output from dmesg:

[ 6.551369] usb 2-3.4: new SuperSpeed USB device number 3 using tegra-xusb
[ 6.576347] usb 2-3.4: config 1 has an invalid interface number: 12 but max is 4
[ 6.576616] usb 2-3.4: config 1 has an invalid interface number: 13 but max is 4
[ 6.576793] usb 2-3.4: config 1 has an invalid interface number: 13 but max is 4
[ 6.576962] usb 2-3.4: config 1 has no interface number 1
[ 6.577086] usb 2-3.4: config 1 has no interface number 4
[ 6.578386] usb 2-3.4: New USB device found, idVendor=1199, idProduct=9071
[ 6.578394] usb 2-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6.578398] usb 2-3.4: Product: Sierra Wireless EM7455 Qualcomm® Snapdragon™ X7 LTE-A
[ 6.578403] usb 2-3.4: Manufacturer: Sierra Wireless, Incorporated
[ 6.581518] usb 2-3.4: Enable of device-initiated U1 failed.
[ 6.582640] usb 2-3.4: Enable of device-initiated U2 failed.

[ 8.026897] GobiNet: loading out-of-tree module taints kernel.
[ 8.026960] GobiNet: loading out-of-tree module taints kernel.
[ 8.035726] GobiNet: 2020-08-17/SWI_2.64
[ 8.035989] usbcore: registered new interface driver GobiNet
[ 8.039273] usbcore: registered new interface driver GobiSerial
[ 8.039320] usbserial: USB Serial support registered for GobiSerial
[ 8.039961] usb 2-3.4: Disable of device-initiated U1 failed.
[ 8.042275] usb 2-3.4: Disable of device-initiated U2 failed.
[ 8.044840] usb 2-3.4: Enable of device-initiated U1 failed.
[ 8.046010] usb 2-3.4: Enable of device-initiated U2 failed.
[ 8.046197] GobiSerial 2-3.4:1.0: GobiSerial converter detected
[ 8.047117] usb 2-3.4: GobiSerial converter now attached to ttyUSB0
[ 8.048148] usb 2-3.4: Disable of device-initiated U1 failed.
[ 8.048734] usb 2-3.4: Disable of device-initiated U2 failed.
[ 8.051363] usb 2-3.4: Enable of device-initiated U1 failed.
[ 8.052705] usb 2-3.4: Enable of device-initiated U2 failed.
[ 8.052885] GobiSerial 2-3.4:1.2: GobiSerial converter detected
[ 8.053280] usb 2-3.4: GobiSerial converter now attached to ttyUSB1
[ 8.053626] usb 2-3.4: Disable of device-initiated U1 failed.
[ 8.055796] usb 2-3.4: Disable of device-initiated U2 failed.
[ 8.059242] usb 2-3.4: Enable of device-initiated U1 failed.
[ 8.060800] usb 2-3.4: Enable of device-initiated U2 failed.
[ 8.061150] ras_fhi_disable: FHI 470 disabled
[ 8.061154] GobiSerial 2-3.4:1.3: GobiSerial converter detected
[ 8.061839] usb 2-3.4: GobiSerial converter now attached to ttyUSB2
[ 8.062054] GobiSerial: 2020-08-17/SWI_2.42:GobiSerial

Then the serial port /dev/ttyUSBx are ok now.
Yiu can check AT command in /dev/ttyUSB2

Could you please give me more specific instructions how to check AT command?

Ok, I think I managed to check AT command. I used minicom on port /dev/ttyUSB2, Baudrate = 9600. I typed in AT + Enter, answer on Terminal was OK.

How do I need to proceed further?

This is MBIM. You need the cdc_mbim driver for that. Which should be part of a default Ubuntu installation AFAIK.

AT!entercnd=“A710”
AT!USBCOMP=?

→ this can check whether RMNET is enabled.

If it is enabled, you can enter the following to establish data connection
AT+CGDCONT=1,“IP”,“APN”
AT!SCACT=1

AT!USBCOMP=? shows:

!USBCOMP:
AT!USBCOMP=,,
- configuration index to which the composition applies, should be 1

- 1:Generic, 2:USBIF-MBIM, 3:RNDIS
config type 2/3 should only be used for specific Sierra PIDs: 68B1, 9068
customized VID/PID should use config type 1

- DIAG - 0x00000001,
NMEA - 0x00000004,
MODEM - 0x00000008,
RMNET0 - 0x00000100,
RMNET1 - 0x00000400,
MBIM - 0x00001000,
e.g.
10D - diag, nmea, modem, rmnet interfaces enabled
1009 - diag, modem, mbim interfaces enabled

The default configuration is:
at!usbcomp=1,1,10F

Is this the configuration you expect?

how about AT!USBCOMP?

Config Index: 1
Config Type: 1 (Generic)
Interface bitmask: 0000100D (diag,nmea,modem,mbim)

Looks like MBIM is enabled.

you can enable the RMNET port and install the GobiNet driver in your Ubuntu.
After that you can use AT!SCACT=1,1 to establish data connection.

I already have installed the GobiNet driver. How can I enable the RMNET port?

Ok, used the command AT!USBCOMP=1,1,10D to enable rmnet0.

Did AT+CGDCONT=1,“IP”,“iot.1nce.net

Afterwards I used AT!SCACT=1,1 which responses with +CME ERROR: no network service

What is the return of at!gstatus?

!GSTATUS:
Current Time: 7278 Temperature: 43
Reset Counter: 1 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B3 LTE bw: 20 MHz
LTE Rx chan: 1601 LTE Tx chan: 19601
LTE CA state: NOT ASSIGNED
EMM state: Registered Normal Service
RRC state: RRC Idle
IMS reg state: No Srv

PCC RxM RSSI: -54 RSRP (dBm): -86
PCC RxD RSSI: -60 RSRP (dBm): -91
Tx Power: 0 TAC: B7A8 (47016)
RSRQ (dB): -10.2 Cell ID: 004B9F02 (4955906)
SINR (dB): 17.8