I have been spending my time documenting how modems in general and sierra gobi 3000 (MC8355) specifically are used in linux/openwrt. I took the modem from a ThinkPad that met its end unfortunately. It was working there in Windows at 3.5G speeds. I moved it to the third port Mini PCIe port of the Turris Omnia, for now with only a single antenna connected to the main port. Since I am quite close to a base station, I was hoping to try it without diversity first.
So I followed the LTE installation guide and get a repeating connection failure on dialing.
Jun 14 12:14:20 turris netifd: Interface ‘orange’ is setting up now
Jun 14 12:14:20 turris netifd: Interface ‘orange’ is now down
Jun 14 12:14:20 turris netifd: Interface ‘orange’ is setting up now
Jun 14 12:14:31 turris pppd[20280]: pppd 2.4.7 started by root, uid 0
Jun 14 12:14:32 turris chat[20284]: abort on (BUSY)
Jun 14 12:14:32 turris chat[20284]: abort on (NO CARRIER)
Jun 14 12:14:32 turris chat[20284]: abort on (ERROR)
Jun 14 12:14:32 turris chat[20284]: report (CONNECT)
Jun 14 12:14:32 turris chat[20284]: timeout set to 10 seconds
Jun 14 12:14:32 turris chat[20284]: send (AT&F^M)
Jun 14 12:14:32 turris chat[20284]: expect (OK)
Jun 14 12:14:42 turris chat[20284]: alarm
Jun 14 12:14:42 turris chat[20284]: Failed
Jun 14 12:14:42 turris pppd[20280]: Connect script failed
Jun 14 12:14:43 turris pppd[20280]: Exit.
Jun 14 12:14:43 turris netifd: Interface ‘orange’ is now down
The device is recognized, qcserial driver is loaded and there are three ttyUSBx ports exposed:
Bus 001 Device 002: ID 1199:9013 Sierra Wireless, Inc. Sierra Wireless Gobi 3000 Modem device (MC8355)
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=orion-ehci/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 480M
|__ Port 1: Dev 2, If 1, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 1: Dev 2, If 2, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 1: Dev 2, If 3, Class=Vendor Specific Class, Driver=qcserial, 480M
/etc/config/network:
config interface ‘orange’
option device /dev/ttyUSB2
option apn ‘net’
option service umts
option proto 3g
option dialnumber ‘*99#’
I found this excellent wiki on what protocols are used for WWAN and I understand the Omnia guide and LTE userlist expect the legacy ppp interface. This does not seem to work for me. I tried debugging with AT commands by trying all three ttyUSBx with picocom, 9600/115200 bauds and none respond to AT. The serial driver seems to load fine:
[ 21.342410] usbcore: registered new interface driver option
[ 21.348046] usbserial: USB Serial support registered for GSM modem (1-port)
[ 21.357113] usbcore: registered new interface driver qcserial
[ 21.362945] usbserial: USB Serial support registered for Qualcomm USB modem
[ 21.371630] qcserial 1-1:1.1: Qualcomm USB modem converter detected
[ 21.379420] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB0
[ 21.391138] qcserial 1-1:1.2: Qualcomm USB modem converter detected
[ 21.397683] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB1
[ 21.406630] qcserial 1-1:1.3: Qualcomm USB modem converter detected
[ 21.413148] usb 1-1: Qualcomm USB modem converter now attached to ttyUSB2
After this dead end, I looked at Sierra’s documentation and it describes the QMI proprietary protocol and their GobiNet kernel driver and corresponding API. This was a good read on how QMI can be used with the Gobi or the in-kernel qmi_wwan drivers. What is see in dmesg is that the qmi_wwan interface is registered for a short period getting unregistered in the end:
[ 14.202407] usbcore: registered new interface driver cdc_ether
[ 14.239861] PPP generic driver version 2.4.2
[ 14.244837] PPP MPPE Compression module registered
[ 14.250311] NET: Registered protocol family 24
[ 14.261271] qmi_wwan 1-1:1.0: cdc-wdm0: USB WDM device
[ 14.266784] qmi_wwan 1-1:1.0 wwan0: register ‘qmi_wwan’ at usb-f1058000.usb-1, WWAN/QMI device, 26:47:d9:cc:38:28
[ 14.277206] usbcore: registered new interface driver qmi_wwan
[ 14.283979] usbcore: registered new interface driver rndis_host
[ 17.009288] qmi_wwan 1-1:1.0 wwan0: unregister ‘qmi_wwan’ usb-f1058000.usb-1, WWAN/QMI device
So there is no /dev/cdc-wdm0 device to use. My questions at the moment:
- Is the qcserial driver incompatible with qmi_wwan, and the reason why the latter is unloaded?
- Should I keep trying ppp and AT commands on the serial interfaces? I feel like this should be working at the very least.
- It seems that LTE modem have been moved to more efficient protocols, like QMI and this is a good guide on how to get it working. Should I leave ppp/AT/serial alone and focus on QMI instead?
- I have seen no mention on firmware for this modem. It is not downloadable from Sierra and the modem should have a working firmware on it already (unless it is volatile). How to tell if one is needed?