ason0821
I’d suggest you to try the legacy linux generic usbserial driver.
Before this, you have to unbind qcserial from your AT port, of course.
I’ve tried to do this myself, just for verification. See how it works in my example:
[root@yrgw ~]# lsusb
Bus 001 Device 002: ID 1199:9071 Sierra Wireless, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation
[root@yrgw ~]# lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 2, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 3, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 12, Class=Communications, Driver=cdc_mbim, 480M
|__ Port 2: Dev 2, If 13, Class=CDC Data, Driver=cdc_mbim, 480M
[root@yrgw ~]# ls /sys/bus/usb/drivers/qcserial
1-2:1.0 1-2:1.2 1-2:1.3 bind uevent unbind
[root@yrgw ~]# echo -n "1-2:1.3" > /sys/bus/usb/drivers/qcserial/unbind
[root@yrgw ~]# lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 2, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 3, Class=Vendor Specific Class, Driver=, 480M
|__ Port 2: Dev 2, If 12, Class=Communications, Driver=cdc_mbim, 480M
|__ Port 2: Dev 2, If 13, Class=CDC Data, Driver=cdc_mbim, 480M
[root@yrgw ~]# echo 1199 9071 > /sys/bus/usb-serial/drivers/generic/new_id
[root@yrgw ~]# lsusb -t
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 2: Dev 2, If 0, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 2, Class=Vendor Specific Class, Driver=qcserial, 480M
|__ Port 2: Dev 2, If 3, Class=Vendor Specific Class, Driver=usbserial_generic, 480M
|__ Port 2: Dev 2, If 12, Class=Communications, Driver=cdc_mbim, 480M
|__ Port 2: Dev 2, If 13, Class=CDC Data, Driver=cdc_mbim, 480M
[root@yrgw ~]# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
[root@yrgw ~]# cat /dev/ttyUSB2 &
[1] 15226
[root@yrgw ~]# echo 'ate0' > /dev/ttyUSB2
[root@yrgw ~]#
OK
[root@yrgw ~]# echo 'at!image?' > /dev/ttyUSB2
[root@yrgw ~]#
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
FW 1 GOOD 1 0 0 ?_? 02.08.02.00_?
FW 2 GOOD 127 0 0 ?_? 02.14.03.00_?
FW 3 EMPTY 0 0 0
FW 4 EMPTY 0 0 0
Max FW images: 4
Active FW image is at slot 1
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID BUILD_ID
PRI FF GOOD 0 0 0 002.007_000 02.08.02.00_GENERIC
Max PRI images: 50
OK
[root@yrgw ~]# echo 'at+gmr' > /dev/ttyUSB2
[root@yrgw ~]#
SWI9X30C_02.08.02.00 r5428 CARMD-EV-FRMWR2 2016/01/06 20:38:53
OK
[root@yrgw ~]#