[SOLVED] ttyUSB not created w Ubuntu or QMI Drivers EM7355

Hello, my EM7355 is refusing to create the /dev/ttyUSB* serial device(s).
I have found countless posts similar to this problem and have tried to skim
as much as possible from them. The PDFs on source.sierrawireless.com for the EM7355,
including SLQS docs, do not provide the in-depth coverage of getting Linux to create /dev/ttyUSB*
The firmware previously loaded was for Lenovo,
but it needs to have a generic firmware to use SLQS from what I understand?

Any help to get this EM7355 to work is greatly appreciated.
I am a noob working with 4G modems so id10t error(s) may/do apply :smiley:

After blacklisting (qcserial, qmi_wwan, cdc_mbim, cdc_wdm, cdc_ncm, even usb_wwan was tried) and
disabling ModemManager, there is not any /dev/ttyUSB* for the Gobi S2.30N2.48 drivers either.

Please note that at this time the GobiNet drivers will not compile (several error/warn and it will not ignore/force)
and therefore are not loaded. These commands were ran with the GobiSerial driver loaded:

$ usb_modeswitch -W -b 003 -g 003 -V 1199 -P 901f -v 1199 -p 901f -S -c /usr/share/usb_modeswitch/1199\:901f

Read config file: /usr/share/usb_modeswitch/1199:901f

 * usb_modeswitch: handle USB devices with multiple modes
 * Version 2.5.1 (C) Josua Dietze 2017
 * Based on libusb1/libusbx

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x1199
DefaultProduct= 0x901f
TargetVendor=   0x1199
TargetProduct=  0x901f
SierraMode=1
Configuration=0x01

Use given bus/device number: 003/003 ...
Look for default devices ...
 bus/device number matched
  found USB ID 1199:901f
   vendor ID matched
   product ID matched
 Found devices in default mode (1)
Get the current device configuration ...
Current configuration number is 2
Use interface number 12
 with class 2

USB description data (for identification)
-------------------------
Manufacturer: Sierra Wireless, Incorporated
     Product: Sierra Wireless EM7355 Qualcomm Gobi(TM) 4G LTE/HSPA+/EVDO
  Serial No.: 
-------------------------
Send Sierra control message
 communication with device stopped. May have switched modes anyway
Change configuration to 1 ...
Looking for active drivers ...
 OK, configuration set
Get the current device configuration ...
The configuration was set successfully
-> Run lsusb to note any changes. Bye!

Here is the output of Firmware Downloader when using GobiSerial:

./fwdldhostx86_64 -s /mnt/xtrastorage/bin/sierra_sdk/build/bin/hostx86_64/slqssdk -d 9x15C -p /mnt/xtrastorage/bin/firmware
Detecting USB of the target
No device connected

==========
When NOT Blacklisting and NOT using Gobi[Net|Serial] here are some outputs of various commands:
OS is Ubuntu 17.10

$ ls -l /etc/udev/rules.d/40-usb_modeswitch.rules
lrwxrwxrwx 1 root root 41 Nov 25 12:48 /etc/udev/rules.d/40-usb_modeswitch.rules -> /lib/udev/rules.d/40-usb_modeswitch.rules
$ cat /etc/udev/rules.d/40-usb_modeswitch.rules
KERNEL=="ttyUSB*", ATTRS{bNumConfigurations}=="*", PROGRAM="usb_modeswitch --symlink-name %p %s{idVendor} %s{idProduct} %E{PRODUCT}", SYMLINK+="%c"
ATTR{idVendor}=="1199", ATTR{idProduct}=="901f", RUN+="usb_modeswitch '/%k'"
$ usb_modeswitch -W -b 003 -g 002 -V 1199 -P 901f -v 1199 -p 901f -S -c /usr/share/usb_modeswitch/1199\:901f

Read config file: /usr/share/usb_modeswitch/1199:901f

 * usb_modeswitch: handle USB devices with multiple modes
 * Version 2.5.1 (C) Josua Dietze 2017
 * Based on libusb1/libusbx

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x1199
DefaultProduct= 0x901f
TargetVendor=   0x1199
TargetProduct=  0x901f
SierraMode=1
Configuration=0x01

Use given bus/device number: 003/002 ...
Look for default devices ...
 bus/device number matched
  found USB ID 1199:901f
   vendor ID matched
   product ID matched
 Found devices in default mode (1)
Get the current device configuration ...
Current configuration number is 2
Use interface number 12
 with class 2

USB description data (for identification)
-------------------------
Manufacturer: Sierra Wireless, Incorporated
     Product: Sierra Wireless EM7355 Qualcomm Gobi(TM) 4G LTE/HSPA+/EVDO
  Serial No.: 
-------------------------
Send Sierra control message
 communication with device stopped. May have switched modes anyway
Change configuration to 1 ...
Looking for active drivers ...
 Resetting the configuration failed (error -6). Try to continue
 Changing the configuration failed (error -6). Try to continue
-> Run lsusb to note any changes. Bye!
$ cat /var/log/usb_modeswitch_3-2
Use global config file: /etc/usb_modeswitch.conf
Raw parameters: {--switch-mode} {3-2} 
Use top device dir /sys/bus/usb/devices/3-2
Check class of first interface ...
 No access to interface 0. Exit
$ uname -a
Linux computer 4.13.0-17-lowlatency #20-Ubuntu SMP PREEMPT Mon Nov 6 11:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ ip a
8: wwp0s20u3c2i12: <BROADCAST,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 56:09:55:fd:ff:65 brd ff:ff:ff:ff:ff:ff
$ lsmod | grep serial
qcserial               20480  0
usb_wwan               20480  1 qcserial
usbserial              45056  2 qcserial,usb_wwan

$ lsmod | grep cdc
cdc_mbim               16384  0
cdc_wdm                20480  1 cdc_mbim
cdc_ncm                36864  1 cdc_mbim
usbnet                 45056  2 cdc_mbim,cdc_ncm

$ lsmod | grep usb
usb_wwan               20480  1 qcserial
usbserial              45056  2 qcserial,usb_wwan
usbnet                 45056  2 cdc_mbim,cdc_ncm
btusb                  45056  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
btintel                16384  1 btusb
bluetooth             544768  52 btrtl,hidp,btintel,bnep,btbcm,rfcomm,btusb
mii                    16384  2 r8169,usbnet
$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 8087:07da Intel Corp. 
Bus 001 Device 003: ID 147e:1002 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
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 007: ID 1199:901f Sierra Wireless, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ ls -l /sys/bus/usb/devices/3-2/
total 0
drwxr-xr-x 6 root root     0 Nov 25 21:42 3-2:2.12
drwxr-xr-x 5 root root     0 Nov 25 21:42 3-2:2.13
-rw-r--r-- 1 root root  4096 Nov 25 21:42 authorized
-rw-r--r-- 1 root root  4096 Nov 25 21:42 avoid_reset_quirk
-r--r--r-- 1 root root  4096 Nov 25 21:42 bcdDevice
-rw-r--r-- 1 root root  4096 Nov 25 21:42 bConfigurationValue
-r--r--r-- 1 root root  4096 Nov 25 21:42 bDeviceClass
-r--r--r-- 1 root root  4096 Nov 25 21:42 bDeviceProtocol
-r--r--r-- 1 root root  4096 Nov 25 21:42 bDeviceSubClass
-r--r--r-- 1 root root  4096 Nov 25 21:42 bmAttributes
-r--r--r-- 1 root root  4096 Nov 25 21:42 bMaxPacketSize0
-r--r--r-- 1 root root  4096 Nov 25 21:42 bMaxPower
-r--r--r-- 1 root root  4096 Nov 25 21:42 bNumConfigurations
-r--r--r-- 1 root root  4096 Nov 25 21:42 bNumInterfaces
-r--r--r-- 1 root root  4096 Nov 25 21:42 busnum
-r--r--r-- 1 root root  4096 Nov 25 21:42 configuration
-r--r--r-- 1 root root 65553 Nov 25 21:42 descriptors
-r--r--r-- 1 root root  4096 Nov 25 21:42 dev
-r--r--r-- 1 root root  4096 Nov 25 21:42 devnum
-r--r--r-- 1 root root  4096 Nov 25 21:42 devpath
lrwxrwxrwx 1 root root     0 Nov 25 21:42 driver -> ../../../../../bus/usb/drivers/usb
drwxr-xr-x 3 root root     0 Nov 25 21:42 ep_00
-r--r--r-- 1 root root  4096 Nov 25 21:42 idProduct
-r--r--r-- 1 root root  4096 Nov 25 21:42 idVendor
-r--r--r-- 1 root root  4096 Nov 25 21:42 ltm_capable
-r--r--r-- 1 root root  4096 Nov 25 21:42 manufacturer
-r--r--r-- 1 root root  4096 Nov 25 21:42 maxchild
lrwxrwxrwx 1 root root     0 Nov 25 21:42 port -> ../3-0:1.0/usb3-port2
drwxr-xr-x 2 root root     0 Nov 25 21:42 power
-r--r--r-- 1 root root  4096 Nov 25 21:42 product
-r--r--r-- 1 root root  4096 Nov 25 21:42 quirks
-r--r--r-- 1 root root  4096 Nov 25 21:42 removable
--w------- 1 root root  4096 Nov 25 21:42 remove
-r--r--r-- 1 root root  4096 Nov 25 21:42 speed
lrwxrwxrwx 1 root root     0 Nov 25 21:42 subsystem -> ../../../../../bus/usb
-rw-r--r-- 1 root root  4096 Nov 25 21:42 uevent
-r--r--r-- 1 root root  4096 Nov 25 21:42 urbnum
-r--r--r-- 1 root root  4096 Nov 25 21:42 version
$ udevadm info -p /sys/bus/usb/devices/3-2/
P: /devices/pci0000:00/0000:00:14.0/usb3/3-2
N: bus/usb/003/007
E: BUSNUM=003
E: DEVNAME=/dev/bus/usb/003/007
E: DEVNUM=007
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MODEL=Sierra_Wireless_EM7355_Qualcomm_Gobi_TM__4G_LTE_HSPA+_EVDO
E: ID_MODEL_ENC=Sierra\x20Wireless\x20EM7355\x20Qualcomm\x20Gobi\x28TM\x29\x204G\x20LTE\x2fHSPA+\x2fEVDO
E: ID_MODEL_ID=901f
E: ID_REVISION=0006
E: ID_SERIAL=Sierra_Wireless__Incorporated_Sierra_Wireless_EM7355_Qualcomm_Gobi_TM__4G_LTE_HSPA+_EVDO
E: ID_USB_INTERFACES=:ffffff:ff0000:020e00:0a0002:
E: ID_VENDOR=Sierra_Wireless__Incorporated
E: ID_VENDOR_ENC=Sierra\x20Wireless\x2c\x20Incorporated
E: ID_VENDOR_FROM_DATABASE=Sierra Wireless, Inc.
E: ID_VENDOR_ID=1199
E: MAJOR=189
E: MINOR=262
E: PRODUCT=1199/901f/6
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=25954632045
$ udevadm monitor
KERNEL[25933.499571] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12/queues/rx-0 (queues)
KERNEL[25933.499625] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12/queues/tx-0 (queues)
KERNEL[25933.499661] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12 (net)
UDEV  [25933.501664] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12/queues/rx-0 (queues)
UDEV  [25933.502232] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12/queues/tx-0 (queues)
KERNEL[25933.503503] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/usbmisc/cdc-wdm0 (usbmisc)
KERNEL[25933.503545] remove   /usbmisc (class)
KERNEL[25933.503592] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12 (usb)
KERNEL[25933.503633] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.13 (usb)
KERNEL[25933.503976] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV  [25933.506131] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12 (net)
UDEV  [25933.506958] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/usbmisc/cdc-wdm0 (usbmisc)
UDEV  [25933.508983] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.13 (usb)
UDEV  [25933.513663] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12 (usb)
UDEV  [25933.514733] remove   /usbmisc (class)
UDEV  [25933.516264] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[25942.557094] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[25942.557525] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[25942.557752] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[25942.560328] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV  [25942.673017] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV  [25942.680684] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV  [25942.682681] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV  [25942.684548] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[25954.592047] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[25954.594732] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12 (usb)
KERNEL[25954.616363] add      /class/usbmisc (class)
KERNEL[25954.617584] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/usbmisc/cdc-wdm0 (usbmisc)
KERNEL[25954.617643] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwan0 (net)
KERNEL[25954.617666] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwan0/queues/rx-0 (queues)
KERNEL[25954.617686] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwan0/queues/tx-0 (queues)
KERNEL[25954.617726] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.13 (usb)
UDEV  [25954.618460] add      /class/usbmisc (class)
UDEV  [25954.647205] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV  [25954.660853] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.13 (usb)
UDEV  [25954.661517] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12 (usb)
UDEV  [25954.664926] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/usbmisc/cdc-wdm0 (usbmisc)
KERNEL[25954.671158] move     /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12 (net)
UDEV  [25954.685164] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12 (net)
UDEV  [25954.696132] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwan0/queues/tx-0 (queues)
UDEV  [25954.696168] add      /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwan0/queues/rx-0 (queues)
UDEV  [25954.696220] move     /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:2.12/net/wwp0s20u2c2i12 (net)
$ systemctl status ModemManager
● ModemManager.service - Modem Manager
   Loaded: loaded (/lib/systemd/system/ModemManager.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-11-25 23:05:21 PST; 4min 16s ago
 Main PID: 1484 (ModemManager)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/ModemManager.service
           └─1484 /usr/sbin/ModemManager

Nov 25 23:05:23 computer ModemManager[1484]: cannot connect to proxy: Could not connect: Connection refused
Nov 25 23:05:23 computer ModemManager[1484]: spawning new mbim-proxy (try 1)...
Nov 25 23:05:23 computer ModemManager[1484]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 4096
Nov 25 23:05:23 computer ModemManager[1484]: [/dev/cdc-wdm0] unexpected port hangup!
Nov 25 23:05:24 computer ModemManager[1484]: <info>  Couldn't check support for device at '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0': not supported by any plugi
Nov 25 23:05:24 computer ModemManager[1484]: <info>  Couldn't check support for device at '/sys/devices/pci0000:00/0000:00:1c.3/0000:09:00.0': not supported by any plugi
Nov 25 23:05:53 computer ModemManager[1484]: proxy configuration failed: closed
Nov 25 23:05:53 computer ModemManager[1484]: <info>  Creating modem with plugin 'Sierra' and '2' ports
Nov 25 23:05:53 computer ModemManager[1484]: <warn>  Could not grab port (usbmisc/cdc-wdm0): 'Cannot add port 'usbmisc/cdc-wdm0', unsupported'
Nov 25 23:05:53 computer ModemManager[1484]: <warn>  Couldn't create modem for device at '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2': Failed to find primary AT port

var-log-syslog-kern.txt.log (5.61 KB)
ls-dev-tty.txt.log (5.37 KB)
lsusb-output.txt.log (9.95 KB)

Hello,

Based on info from “lsusb” that module (EM7355) is recognized by the system and only drivers was not installed correctly. What that means with below information ?
The firmware previously loaded was for Lenovo,
but it needs to have a generic firmware to use SLQS from what I understand?

You didn’t mention on which hardware have you installed this module ? Lenovo hardware ? Please give more input and believe an experts could guide you to resolve you issues.

Only USB interfaces 12 and 13 shown => modem is configured for MBIM only.

There are currently no serial functions exported by the firmware, which is why no driver will create any /dev/ttyUSBx device. It’s not a driver issue. It is modem firmware configuration.

The default Windows driver install will select this configuration, and that is probably what happened to your modem. But you can reinstall the Windows driver and override the default using the USBCOMP=x comand line switch, e.g. with x=8 There are also numerous other ways to change this setting, documented in this forum, but these are all unsupported by Sierra AFAIK

Thank you zainol69 and dl5162 for your help and reply.

Current Computer:
Lenovo Zhaoyang E49 (20161)

Sierra Wireless module:
EM7355 Gobi5000 LTE/EVDO/HSPA+ 42Mbps NGFF M.2 Card 4G Module

with the following adapter:
powerday NGFF(M.2) to USB Adapter With SIM card Slot for WWAN/LTE/4G Module

I apologize for the long delay due to the holidays.

The process of doing USBCOMP=8 was successful AND IT RESTORED /dev/ttyUSB* under Linux.
Thank you!

FYI: For other people to know the process involved downloading the driver’s from Lenovo’s website for this EM7355 module. The trick was to launch the installer (the EM7355 needs to be attached to re-configure it via the USBCOMP=8). You can install them or click cancle because the point is to have it uncompress the installer EXE to a directory. Not sure but you may be able to specify something to the effect as, “don’t install just uncompress installer”. Then you edit and set USBCOMP=8 in a specific “inf” file or pass it to one of the EXE’s files (setup.exe?), extracted from the installer, via the commandline. The details are foggy because it was done a month ago and stuff came up. This should give everyone enough info though to hunt for additional information.

Here are the results:

AT!GVER?
!GVER: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
OK

AT!UDUSBCOMP?
!UDUSBCOMP: 8
OK

AT!PRIID?
PRI Part Number: 9903172
Revision: 01.00

Carrier PRI: 9999999_9902574_SWI9X15C_05.05.58.00_00_GENNA-UMTS_005.025_002
OK

AT!PACKAGE?
1102086_9903172_SWI9X15C_01.05.11.07_00_LENOVO_001.000_000
OK

AT&V
&C: 2; &D: 2; &E: 0; &F: 0; &S: 0; &W: 0; E: 1; L: 0; M: 0; Q: 0; V: 1;
X: 1; Z: 0; \Q: 3; \S: 0; \V: 0; O: 0; S0: 0; S2: 43; S3: 13; S4: 10;
S5: 8; S6: 2; S7: 0; S8: 2; S9: 6; S10: 14; S11: 95; S30: 0; S103: 1;
S104: 1; ^PREFMODE: 0; ^DSCI: 0; ^CPIN: ,; ^HSMSSS: 0,0,0,0
OK

AT!UDPID?
!UDPID:
APP : 901F
BOOT: 901E
OK