Help needed! SW-MC7304 with Gobi on centOS / Fedora


#1

Hi,
I am new with the topic of linux drivers and need a little help in understanding. For some reasons I need to get the Gobi-drivers working, we need to do some comparisons to the kernel-driver.
I complied the GobiNet and the GobiSerial drivers for kernel version 4.9.75-204.

A general question: the GobiSerial driver should be good for using with wvdial, while GobiNet is working only with external tools (?)

Could someone explain me a little bit how the GobiSerial driver should work? I opened a screen-terminal for ttyUSB1 and saw GPS-data. On the other interfaces I did not receive any data.

As far I saw, it is enough to initialize the GobiSerial-driver, the GobiNet driver gives me only ethernet-interfaces, where I don’t know how to use.

This is what I did:

GobiSerial:

  • I copied the GobiSerial.ko & GobiNet.ko to /lib/modules/4.9.75-204…/kernel/drivers
  • I disabled (rmmod) & blacklisted qmi_wwan & qcserial (/etc/modprobe.d/qmi_wwan.conf)
  • depmod

After a reboot I checked by dmesg that my ttyUSB devices were available
On ttyUSB1 is obviously the GPS modem, as I see GPG/GNG data on the interface with “screen”

so now the questions are:

  • am I doing something wrong?
  • do I need the GobiNet driver?
  • how do I know, what device for what purpose is?

#2

Hi infoscreenAustria,

Normally,
ttyUSB0 - Diag
ttyUSB1 - NMEA
ttyUSB2 - AT

Per product spec, dial-up is not supported:
https://source.sierrawireless.com/resources/airprime/minicard/airprime_mc7304_product_technical_specification_and_customer_design_guidelines/

But if you want, you may try on ttyUSB2 and see does it work.

GobiNet create a virtual ethernet adapter for data connection and SDK support (i.e. if you need FW upgrade on Linux), and it has better data throughput.
https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-software-04,-d-,00,-d-,15/

Hope it helps.
Thx


#3

ok, thanks.
maybe you have a hint, how I can connect?


#4

Hi infoscreenAustria,
For Dialup, I guess you know how to use PPPD or wvdial?

For GobiNet, if setup properly, you can send AT command over /dev/ttyUSB2 using any terminal app, i.e.

AT+CREG?
AT+CGREG?
AT+CPIN?
AT+CGDCONT?
AT!GSTATUS?
AT+CGACT?
AT!SCACT=1,1

Refer to AT command guide if you need details:
https://source.sierrawireless.com/resources/airprime/software/airprime-em73xx_mc73xx-at-command-reference/

Hope it helps.
Thx


#5

thx - my problem is, that I don’t get any response from the device, so I cannot send any AT-command. I tried now different driver-versions between 2.26 and 2.33 for Serial and 2.39 - 2.52 for gobinet, without any success
it seems modules are loaded correct by the kernel, but I cannot access ttyUSB2. the only working part is always ttyUSB1 / GPS

any ideas, what I could do wrong, or do you need more information?


#6

Hi,
I mainly tested using Ubuntu before, which works quite well.
If possible you can try on Ubuntu, i.e. 12.04/15.04?

Or please share the CentOS/Fedora version you used so I can try the same.

Thx


#7

it is CentOS 7.5 with kernel 4.9.75-204. On Ubuntu I did not try yet.
@lotam: what exactly did you in Ubuntu?

I compiled the 2 drivers, installed them and tried to access with terminal-application on ttyUSB2. Modem device was not responding.
Did you do anything else? - for example blacklisting modules?

thanks


#8

Please refer to developer guide section 3.3 “Device Drivers” for instruction.
https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-application-developer-guide-1,-d-,26/

I just tried stock CentOS 7 1804 (kernel 3.10.0-862) clean install, even I don’t install Sierra driver the built in qcserial is able to enumerate ttyUSB0-2 and AT command is working on /dev/ttyUSB2.

Do you have other system to test?
Are you using virtual machine?

For info, Sierra S2.23N2.52 should support up to kernel 4.15, but maybe worth to try older kernel version first.

Thx


#9

It is a hardware device, not virtual.
About the CentOS-Installation you menationed: we want to use explicit the gobi-driver, because we have some problems with a specific firmware-version using the driver from the kernel. We hope now, that maybe using the GOBI could help us.
This is why we want to try GOBI
It would help me a lot, to see, how you build, install and use the driver
It is still not clear to me, if you need the serial AND the network drivers together
I will try the latest driver now with a GUI in CentOS, with the network manager to check if the driver itself is working


#10

maybe you could post your result of

lsmod | grep Gobi

on your system, where you installed GobiNet and the dialin is working?
I am not sure, if the driver is loaded and how you initiate the dialin connection. Are you using GUI-tools or cli?


#11

ok, I solved the issue.
The prolem was the running modemmanger
it seems, it blocked the device


#12

Good to know.
Yes, modemmanager should be removed as mentioned in developer guide section 3.3 "Device Drivers as first step in 3.3.1 “Host Setup”.

https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-application-developer-guide-1,-d-,26/ 1

As issue solved please help mark this thread as resolved.
Thx


#13

yes, issue is resolved, thank you very much. I just don’t know how to set to “solved”


#14

can you explain how you managed to get a connection on the modem? i am in the exact same point and can’t seem to get a connection. modem is up and running on ttyUSB2 and i can send at commands.


#15

I use wvdial - old school, but perfectly working. :slight_smile:
I am using a broadband configuration of DREI austria

here my config

[Dialer pin]
Modem = /dev/ttyUSB2
Baud = 460800
Dial Attempts = 2
Init1 = AT+CPIN=0000
#Init1 = AT+CPIN=2700

[Dialer DMS]
Modem = /dev/ttyUSB2
Init2=ATZ
Init3=ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init5=AT+CGDCONT=1,“IP”,“INSERT_APN_HERE”
New PPPD = yes
ISDN = 0
Dial Attempts = 10
Dial Command = ATDT
Phone = “*99#”
Stupid Mode = 1
Username=dummy
Password=dummy

then I use

wvdial DMS &


#16

You guys should use GobiNet for data instead of ppp (serial).
Much faster.

Here is an example to bringup data on Ubuntu (4-4-0-98) with MC7455
Same is applicable to MC73xx.

Disable modem-manager

Insert GobiNet and GobiSerial

##Plug in the modem and verify with “lsusb” that the modem is connected to the USB BUS
##This can be done even before the driver is loaded

sudo su
lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 025: ID 1199:9071 Sierra Wireless, Inc. < ------- Sierra modem
Bus 003 Device 002: ID 5986:0295 Acer, Inc
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

##check modem enumeration with dmesg

[619215.016262] usb 3-6: new high-speed USB device number 25 using xhci_hcd
[619215.145436] usb 3-6: config 1 has an invalid interface number: 8 but max is 3
[619215.145445] usb 3-6: config 1 has no interface number 1
[619215.146071] usb 3-6: New USB device found, idVendor=1199, idProduct=9071
[619215.146080] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[619215.146085] usb 3-6: Product: Sierra Wireless MC7455 Qualcomm® Snapdragon™ X7 LTE-A
[619215.146089] usb 3-6: Manufacturer: Sierra Wireless, Incorporated
[619215.146093] usb 3-6: SerialNumber: LQ61430015021006
[619215.147481] GobiSerial 3-6:1.0: GobiSerial converter detected
[619215.147663] usb 3-6: GobiSerial converter now attached to ttyUSB0
[619215.148234] GobiSerial 3-6:1.2: GobiSerial converter detected
[619215.148446] usb 3-6: GobiSerial converter now attached to ttyUSB1
[619215.149145] GobiSerial 3-6:1.3: GobiSerial converter detected
[619215.149352] usb 3-6: GobiSerial converter now attached to ttyUSB2
[619215.150261] GobiNet 3-6:1.8 eth0: register ‘GobiNet’ at usb-0000:00:14.0-6, GobiNet Ethernet Device, e6:9a:54:59:09:2d
[619215.150628] USB Speed : USB 2.0
[619215.178947] GobiNet 3-6:1.8 enp0s20u6i8: renamed from eth0
[619231.652175] TE Flow Control Enabled
[619232.588177] creating qcqmi0
[619232.588426] RawIP mode

##Note: make sure to compile the driver with RawIP – set the makefile to rawip under GobiNet directory
##the Kernel renames the interface from eth0 to enp0s20u6i8, we have to use this interface

Login to the AT port:
microcom -p /dev/ttyUSB2 -s 115200
connected to /dev/ttyUSB2
Escape character: Ctrl-
Type the escape character followed by c to get to the menu or q to quit
ati
Manufacturer: Sierra Wireless, Incorporated
Model: MC7455
Revision: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09
MEID: A000006FE803DB
ESN: 12802823658, 802B15EA
IMEI: 359072060113087
IMEI SV: 12
FSN: LQ614300150210
+GCAP: +CGSM

OK
at!gstatus?
!GSTATUS:
Current Time: 1050 Temperature: 25
Reset Counter: 2 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B4 LTE bw: 15 MHz
LTE Rx chan: 2325 LTE Tx chan: 20325
LTE CA state: NOT ASSIGNED
EMM state: Registered Normal Service
RRC state: RRC Idle
IMS reg state: Full Srv IMS mode: Normal

PCC RxM RSSI: -55 RSRP (dBm): -84
PCC RxD RSSI: -58 RSRP (dBm): -89
Tx Power: 0 TAC: 3604 (13828)
RSRQ (dB): -10.5 Cell ID: 00D6290C (14035212)
SINR (dB): 19.4

OK
##Note: modem is attached to the NTWK
##if not attached don’t try to bringup the data session between the host & modem

at+cgdcont?
+CGDCONT: 1,“IPV4V6”,“vzwims”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 2,“IPV4V6”,“vzwadmin”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 3,“IPV4V6”,“VZWINTERNET”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 4,“IPV4V6”,“vzwapp”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 5,“IPV4V6”,“vzw800”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 6,“IPV4V6”,“vzwclass6”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0

OK
at+cgcontrdp
+CGCONTRDP: 1,5,vzwims,38.0.16.18.17.92.67.44.93.225.77.204.158.49.92.66, 254.128.0.0.0.0.0.0.0.0.0.0.0.0.0.1, 32.1.72.136.0.101.255.0.6.46.0.13.0.0.0.0, 32.1.72.136.0.100.255.0.6.32.0.13.0.0.0.0,32.1.72.136.0.5.113.58.0.224.1.4.0.0.1.29,32.1.72.136.0.5.113.58.0.224.1.4.0.0.0.117

##Note: this is a Verizon modem , (PDN1) VZWIMS is the default attach profile, but data is on PDN3

OK
at+cgpiaf=1
OK
at+cgcontrdp
+CGCONTRDP: 1,5,vzwims,2600:1012:115C:432C:5DE1:4DCC:9E31:5C42, FE80:0:0:0:0:0:0:1, 2001:4888:65:FF00:62E:D:0:0, 2001:4888:64:FF00:620:D:0:0,2001:4888:5:713A:E0:104:0:11D,2001:4888:5:713A:E0:104:0:75

OK

at!scact=1
OK
at+cgcontrdp
+CGCONTRDP: 1,5,vzwims,2600:1012:115C:432C:5DE1:4DCC:9E31:5C42, FE80:0:0:0:0:0:0:1, 2001:4888:65:FF00:62E:D:0:0, 2001:4888:64:FF00:620:D:0:0,2001:4888:5:713A:E0:104:0:11D,2001:4888:5:713A:E0:104:0:75
+CGCONTRDP: 3,6,VZWINTERNET,100.114.158.6,2600:1012:B143:2AF0:0:36:4E86:A01,0.255.101.0 FE80:0:0:0:0:36:4E86:A40,198.224.171.135 2001:4888:65:FF00:62E:D:0:0,198.224.169.135 2001:4888:64:FF00:620:D:0:0

OK

##close the AT port

On Linux shell:
#dhclient enp0s20u6i8
#ifconfig enp0s20u6i8
enp0s20u6i8 Link encap:Ethernet HWaddr 3e:bd:20:44:e5:cc
inet addr:100.114.158.6 Bcast:100.114.158.7 Mask:255.255.255.252
inet6 addr: fe80::3cbd:20ff:fe44:e5cc/64 Scope:Link
inet6 addr: 2600:1012:b143:2af0:3cbd:20ff:fe44:e5cc/64 Scope:Global
inet6 addr: 2600:1012:b143:2af0:908:dc70:a4f0:7af9/64 Scope:Global
UP BROADCAST RUNNING NOARP MULTICAST MTU:1428 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:776 (776.0 B) TX bytes:712 (712.0 B)

route add 8.8.8.8 enp0s20u6i8
ping -c2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=221 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=36.1 ms

— 8.8.8.8 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 36.135/128.695/221.255/92.560 ms

#of course I’m only adding 8.8.8.8 to the route.
#you may need to add your own routes
#for name resolution /etc/resolv.conf must be populated with a nameserver