EM7565 driver/firmware issue

Yes, I did see it, too. Still, none of the devices is working after compiling and installing the Linux driver from source. But again: this is not our main problem, we need to get the devices running on Windows 10. There the modem serial port is not detected by the driver. It is shown in the Windows device manager as “other device” and yellow exclamation mark, meaning that the driver is not available or failing.

so the linux should be able to enumerate the port if it supports 90b1 ,right?
My idea is to change the PID in the linux.

Ok, sounds reasonable. How am I supposed to do that?

i don’t know, no idea why your qcserial cannot work with that 90b1 even it has that information in modinfo

you can try to add it manually:

I gave it a new try with a completely fresh installation of Linux Mint. After compiling the drivers and loading them, attaching the modem gives the following messages (dmesg):
[ 976.803028] usb 2-6: new SuperSpeed USB device number 4 using xhci_hcd
[ 976.824451] usb 2-6: config 1 has an invalid interface number: 8 but max is 3
[ 976.824470] usb 2-6: config 1 has no interface number 1
[ 976.825120] usb 2-6: New USB device found, idVendor=1199, idProduct=90b1, bcdDevice= 0.06
[ 976.825132] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 976.825139] usb 2-6: Product: Sierra Wireless EM7565 Qualcomm® Snapdragon™ X16 LTE-A
[ 976.825145] usb 2-6: Manufacturer: Sierra Wireless, Incorporated
[ 976.825151] usb 2-6: SerialNumber: UF02920385031047
[ 976.830048] usb 2-6: Enable of device-initiated U1 failed.
[ 976.830515] usb 2-6: Enable of device-initiated U2 failed.

The device is found but there is an error “Enable of device-initiated U1 failed.” The same with a device U2. Still no serial ports /dev/ttyUSB* are availiable. How can I get around that error?

The older device with Pid/Vid 1199/9091 now runs flawlessly with the new drivers.

no idea
Does this help?

You can also try the old GobiSerial driver:
https://source.sierrawireless.com/resources/airprime/software/usb-drivers-linux-qmi-software-s2,-d-,42n2,-d-,64/

BTW, did you contact distributor?

Success: After a second reboot I am now able to communicate by serial port with the new modem. AT commands do work, I can retrieve modem information by ATI, etc. How do I now change the Pid/Vid by AT commands?

did you check AT command user guide for usbpid?

Hello there,
I bought couple EM7565 modules for Windows 10 based PCs.
First - I download the generic driver from source.sierrawireless.com and it pickup the module and everything looks great! It gets connected to Verizon 4G LTE network perfectly fine. But the problem was that it kept on say ‘No Internet Access’ although it got connected to Verizon I got the IP address assigned but No Internet Access.
Second- an Expert think that the module is not configured to MBIM and that is why it is connected bot not getting internet access. so as per the suggestion I updated the interface from 000010D to 0000100D using AT!USBCOMP=1,1,100D command from Putty.
since I executed the command Windows started complaining about the driver and since there is no driver I can’t connect back to revers the command.
This above thread seems pretty similar to my issue so adding here and hopping one of you could help me resolve the issue.
Attached is the Screenshot Before and After updating MBIM:


is your PID equal to 90b1?
Have you tried the following?
AT!ENTERCND=“A710”
AT!USBCOMP=1,3,100D
at!reset

Thanks for the response,
I ran following command as per the instructions: please see the Putty Log for ref.
ATI

AT+CIMI

AT+CCID

AT!IMPREF?

AT!IMAGE?

AT!ENTERCND=“A710”

AT!SKU?

AT!ERR

AT!GCDUMP

AT!NVBACKUP?

AT!GSTATUS?

AT!BAND?

AT!PCINFO?

AT!PRIID?

AT!CALID?

AT!CALINFO?

AT!USBCOMP?

AT!FLOG?

Then after the above commands I ran following as per the instructions (I am not an expert in these commands/ devices)
Per your putty log, your modem is NOT configured for MBIM-

AT!USBCOMP?

Config Index: 1

Config Type: 3 (Generic)

Interface bitmask: 0000010D (diag,nmea,modem,rmnet0)

Per Page 48 of the AT command set for the EM75xx( Attached in this e-mail) , your bitmask needs to include the MBIM bit.

Try setting the interface to 0000100D instead of 0000010D

E.G.: AT!ENTERCND=“A710”
AT!USBCOMP=1,1,100D
AT!RESET

Use AT!USBCOMP=? to view the configurations available for the device.
Available configurations are identified as “SUPPORTED”.

  • configuration index to which the composition applies, should be 1

  • 1:MBIM USBIF, 2:PCIE USBIF, 3:Legacy-Generic, 4:RNDIS

Capture a putty log and see what that does.

You can see the details in the Putty Log after running above commands, windows has stopped recognizing the module.
putty_v2.log.zip (3.8 KB)

Unfortunately now that Windows is not installing the driver I can run any AT command…

is your PID equal to 90b1 in AT!USBPID?
I saw you are stilling entering “AT!USBCOMP=1,1,100D”

no problem is found on my side:

I now finally was able to modifiy the USB PID of my devices from 90B1 to 9091. After that the devices apperar as normal in the Windows device manager and work and behave as our former ones. Here is what I did:

  • Install a fresh version of Linux Mint (Ubuntu clone)
  • Compile and install device drivers from source.
  • Install picocom to send AT commands via USB serial port (minicom did not work for me by unknown reason).
  • Connect to the modem by sudo picocom /dev/ttyUSB1
    With that I was able to send the AT commands to the modem to switch from VID 90B1 to 9091. The following commands were used:
  • ATE1 (set echo to true)
  • AT!ENTERCND=“A710” (enable admin mode)
  • AT!USBPID? (Query current USB PID. Should respond with APP: 90B1, BOOT: 90B0)
  • ATUSBPID=9091 (Set PID to 9091)
  • AT!RESET (restart modem)

After that modem behaves as expected.

2 Likes

Yes! It solved the issue for me! (BTW I am on older Ubuntu 20.04). Then I have to swith to QMI, anyways.

Hello All,
I am having similar problem as shown in this thread with EM7565 modem using a raspberry. In my case I have a similar situation as described in this thread: EM7565 stuck in a USB composition without QMI or AT ports

My modem has same VID:PID: 1199:90c3 as described there, so I am trying to update the PID to standard one as described in this thread. However it seems that the modem is not detected over USB interface.
I download the drivers and updated qmi_wwan.c and qcserial.c files to add VID:PID 1199:90c3. Then I installed mbpl driver (EM7565 driver/firmware issue - #10 by jyijyi) and rebooted, but ttyUSBx are not present (if I use a different modem ttyUSBx appear right away)

Checking /sys/kernel/debug/usb/devices I can see there is no Driver associated to the modem

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  7 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1199 ProdID=90c3 Rev= 0.06
S:  Manufacturer=Sierra Wireless, Incorporated
S:  Product=Sierra Wireless EM7565 with Qualcomm Snapdragon X16 LTE
S:  SerialNumber=d9f6e25c
C:* #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Any idea?
Thank you!!

How about" sudo modprobe qcserial"?

Do you sure the platform is using new compiled qcserial?

Hi @jyijyi ,

thank you for your reply. I do sudo modprobe qcserial but unfortunately there is no change.

how can ensure that the compiled version is in use?

You can disconnect the usb, use "sudo rmmod qcserial "

And then check modinfo of qcserial, check the path and see if it is newly compiled

If you just want to change the PID, then it’s much easier to abuse the option driver than patching qcserial:

modprobe option
echo 1199 90c3 >/sys/bus/usb-serial/drivers/option1/new_id

This will temporarily provide a ttyUSBx port where you can use AT commands to change the USB product ID

Thank you very much @dl5162 , @jyijyi for your suggestions

Finally I could run the following suggested commands and enabled AT commands over ttyUSB0:

modprobe option
echo 1199 90c3 >/sys/bus/usb-serial/drivers/option1/new_id

But it seems ATUSBPID=9091 is not working:

ATE1
OK
AT!ENTERCND="A710"
OK
AT!USBPID?
!USBPID:
APP : 90C3
BOOT: 90C2

OK
ATUSBPID=9091
ERROR

Is there anyway to troubleshoot and understand where the error comes from? other way to change the PID to a 'standard’one?