Hello,
Thanks a lot for this complete answer @linuxdev .
This is the “lsusb” :
Bus 002 Device 005: ID 2c7c:0512 Quectel Wireless Solutions Co., Ltd.
Bus 002 Device 004: ID 2c7c:0512 Quectel Wireless Solutions Co., Ltd.
Bus 002 Device 007: ID 2c7c:0512 Quectel Wireless Solutions Co., Ltd.
Bus 002 Device 006: ID 2c7c:0512 Quectel Wireless Solutions Co., Ltd. 4-Port USB 3.1 Hub
Bus 002 Device 003: ID 0424:5804 Microchip Technology, Inc. (formerly SMSC)
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 4-Port USB 3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 004: ID 1e0e:9001 Qualcomm / Option
Bus 001 Device 006: ID 0424:2840 Microchip Technology, Inc. (formerly SMSC)
Bus 001 Device 005: ID 0424:2804 Microchip Technology, Inc. (formerly SMSC) 4-Port USB 2.1 Hub
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.1 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
And with the “-t” parameter :
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/6p, 5000M
|__ Port 3: Dev 4, If 3, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 4, If 1, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 3: Dev 4, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 5000M
|__ Port 3: Dev 4, If 2, Class=Vendor Specific Class, Driver=option, 5000M
|__ Port 3: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 5, If 1, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 5, If 2, Class=Vendor Specific Class, Driver=option, 5000M
|__ Port 4: Dev 5, If 3, Class=Vendor Specific Class, Driver=, 5000M
|__ Port 4: Dev 5, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/5p, 480M
|__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 5, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 5: Dev 6, If 0, Class=Vendor Specific Class, Driver=, 480M
|__ Port 3: Dev 4, If 3, Class=Vendor Specific Class, Driver=, 480M
|__ Port 3: Dev 4, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 3: Dev 4, If 4, Class=Vendor Specific Class, Driver=, 480M
|__ Port 3: Dev 4, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 3: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 480M
|__ Port 3: Dev 4, If 5, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
|__ Port 3: Dev 3, If 0, Class=Wireless, Driver=, 12M
|__ Port 3: Dev 3, If 1, Class=Wireless, Driver=, 12M
I’ve also attached the log file. But as the 4 modems have the same vendor_id and device_id, the 4 modems are in the log.
And this is the dmesg :
[ 195.721540] usb 2-1.2.3: new SuperSpeed USB device number 4 using tegra-xusb
[ 195.750586] usb 2-1.2.3: New USB device found, idVendor=2c7c, idProduct=0512
[ 195.757691] usb 2-1.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 195.765199] usb 2-1.2.3: Product: EM12-G
[ 195.769146] usb 2-1.2.3: Manufacturer: Quectel
[ 195.773633] usb 2-1.2.3: SerialNumber: 0123456789ABCDEF
[ 195.862728] option 2-1.2.3:1.2: GSM modem (1-port) converter detected
[ 195.869459] usb 2-1.2.3: GSM modem (1-port) converter now attached to ttyUSB2
[ 195.895931] qmi_wwan 2-1.2.3:1.4: cdc-wdm1: USB WDM device
[ 195.902232] qmi_wwan 2-1.2.3:1.4 wwan0: register 'qmi_wwan' at usb-70090000.xusb-1.2.3, WWAN/QMI device, 02:a9:07:ba:d9:34
[ 195.920336] qmi_wwan 2-1.2.3:1.4 wwan-aux4: renamed from wwan0
[ 196.141485] usb 2-1.2.4: new SuperSpeed USB device number 5 using tegra-xusb
[ 196.166623] usb 2-1.2.4: New USB device found, idVendor=2c7c, idProduct=0512
[ 196.173729] usb 2-1.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 196.181241] usb 2-1.2.4: Product: EM12-G
[ 196.185183] usb 2-1.2.4: Manufacturer: Quectel
[ 196.189672] usb 2-1.2.4: SerialNumber: 0123456789ABCDEF
[ 196.278634] option 2-1.2.4:1.2: GSM modem (1-port) converter detected
[ 196.285362] usb 2-1.2.4: GSM modem (1-port) converter now attached to ttyUSB3
[ 196.311807] qmi_wwan 2-1.2.4:1.4: cdc-wdm2: USB WDM device
[ 196.317943] qmi_wwan 2-1.2.4:1.4 wwan0: register 'qmi_wwan' at usb-70090000.xusb-1.2.4, WWAN/QMI device, 02:a9:07:ba:d9:34
[ 196.335962] qmi_wwan 2-1.2.4:1.4 wwan-aux5: renamed from wwan0
[ 196.557461] usb 2-1.2.1: new SuperSpeed USB device number 6 using tegra-xusb
[ 196.582699] usb 2-1.2.1: New USB device found, idVendor=2c7c, idProduct=0512
[ 196.590327] usb 2-1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 196.597831] usb 2-1.2.1: Product: EM12-G
[ 196.601771] usb 2-1.2.1: Manufacturer: Quectel
[ 196.606258] usb 2-1.2.1: SerialNumber: 0123456789ABCDEF
[ 196.693362] usb 2-1.2.1: Not enough host controller resources for new device state.
[ 196.701123] usb 2-1.2.1: can't set config #1, error -12
[ 196.929519] usb 2-1.2.2: new SuperSpeed USB device number 7 using tegra-xusb
[ 196.958545] usb 2-1.2.2: New USB device found, idVendor=2c7c, idProduct=0512
[ 196.965625] usb 2-1.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 196.973136] usb 2-1.2.2: Product: EM12-G
[ 196.977079] usb 2-1.2.2: Manufacturer: Quectel
[ 196.981539] usb 2-1.2.2: SerialNumber: 0123456789ABCDEF
[ 197.068216] usb 2-1.2.2: Not enough host controller resources for new device state.
[ 197.075939] usb 2-1.2.2: can't set config #1, error -12
As you can see, the device 2-1.2.3 and 2-1.2.4 connect successfully, but 2-1.2.1 and 2-1.2.2 have not enough resources.
These modems have 5 (or 6 interfaces) but have 22 endpoints. I’m only using 2 interfaces (so 6 endpoints), so what I’m trying to do now is add a filter in the xhci kernel driver to discard endpoints I don’t use (based on vendor id, device id and endpoint address).
But if there is another solution, more clean solution, it would be better than edit a kernel driver ^^.
Thanks a lot.
log_verbose.txt (38.6 KB)