EM7500 Unable to find device

I have been able to make a connection to run AT command to my Linux Ubuntu machine. I was able to run SampleApps/Connection_Manager/bin/connectionmgrhostx86_64 before. However, all of sudden, I cannot run the application again. I have “Unable to find device…” error.
I have tried to reinstall GobiNet and GobiSerial. It does not help. I read the Forum, someone said that I should have /dev/qcqmi0 and /dev/qcqmi1 files. I have only /dev/qcqmi0 in my system.
How to resolve the “Unable to find device…” problem?
Thanks.

Hi @wes.wang

You only need /dev/qcqmi0 to run SDK. I can run SDK successfully with /dev/qcqmi0 on my side.
#Documents/SLQS04.00.25.bin# ./pkgs/qa/qatesthostx86_64 -p ./build/bin/hostx86_64/slqssdk -r

Using ./build/bin/hostx86_64/slqssdk

#devices: 1
deviceNode: /dev/qcqmi0
deviceKey: 35907306004520

Using SLQS SDK version: SLQS04.00.25

Completed …

Enter the testid/testsequence to be executed

Which firmware, SDK and driver versions are you using? If you are not in the latest version, please download the latest version and retry.
https://source.sierrawireless.com/resources/airprime/minicard/75xx/airprime-em_mc75xx-approved-fw-packages/#sthash.v07urPi1.dpbs
https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-software-latest/#sthash.ln6QitWe.dpbs
https://source.sierrawireless.com/resources/airprime/software/usb-drivers-linux-qmi-software-s2,-d-,42n2,-d-,62/

Could you please share to me the “dmesg” log?
I have attached the screenshot and log files for your reference.
Please help to tick “Solution” if your question is answered.

log.txt (21.8 KB)

Hi Donald,

Thank you very much for your help. I hit the same “Unable to find device” problem when I run “./pkgs/qa/qatesthostx86_64” command.

Where can I find the “dmesg” log?

Regards,

Wes

Hi wes.wang,

Which USB interface (AT!USBCOMP?) is on your module?

AT!UNLOCK="A710"
AT!USBCOMP?
—> if the response is not "Interface bitmask: 0000010D (diag,nmea,modem,rmnet0)
Please set AT!USBCOMP=1,1,10D
AT!RESET

You only need to type “dmesg” on terminal.

Go to “dev” directory by “cd /dev” then use “ls” to verify ttyUSBx and qcqmix where x is port numbers.

Please share to me the output of “dmesg” and “ls” commands.

Which firmware module, SDK and driver versions are you using?
I don’t have the EM7500 device.
I can run "./pkgs/qa/qatesthostx86_64” command with EM7455 on my side.

Donald,

I have followed your instruction for the USB setup. The commands and the responses are as follows:

AT!ENTERCND=“A710”

OK

AT!USBCOMP?

Config Index: 1

Config Type: 3 (Generic)

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

OK

AT!USBCOMP=1,1,10D

OK

AT!USBCOMP?

Config Index: 1

Config Type: 1 (USBIF)

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

OK

AT!RESET

OK

After that, I still have “Unable to find device” issue. The dmesg log is as attached.

Thanks,

Wes

(Attachment smesg.log is missing)

Attached files were rejected. Changed extension and send them again.

Wes

dmesg.txt (252 KB)

lsOutput.txt (2.17 KB)

Hi @wes.wang

Please kill the SDK Process: sudo killall slqssdk
then you can run SDK command: /Documents/SLQS04.00.25.bin# ./pkgs/qa/qatesthostx86_64

Please help to tick “Solution” if your question is answered.

I have run the command “sudo killall slqssdk”. The problem is still there.

I have power cycled my computer. The problem is still there.

I have power cycled EM7511. The problem is still there.

Thank you for your help.

Wes

Hi wes.wang

I can run SDK successfully with EM7511 Generic firmware SWI9X50C_01.11.00.00, SLQS04.00.25 on my side.
The below Qualcomm drivers, if present, need to be black listed.
 qcserial
 qmi_wwan
Please black list them as below (example is for Ubuntu). Add the 2 entries to the
“/etc/modprobe.d/blacklist-modem.conf” file and restart the host
blacklist qcserial
blacklist qmi_wwan

“Modem Manager” is another application that can interfere with the SDK’s operation. Please remove it
and restart the host. Below example is for an Ubuntu PC:
#sudo apt-get remove modemmanager
#sudo killall -9 modemmanager
#sudo reboot
During firmware upgrade, the SDK process need to read/write modem’s serial ports. Please make
sure there is no background process reading/writing modem’s serial ports at the same time. For
example, qmi_daemon.

Please refer to page 11 in Linux QMI SDK Application Developers Guide Rev1.26 for details.
https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-application-developer-guide-1,-d-,26/#sthash.gFvt1sfa.dpbs

Donald,

I have had

blacklist qcserial

blacklist qmi_wwan

in file “/etc/modprobe.d/blacklist-modem.conf”, as it is in the he procedure. I don’t have modemmanager in my system. I have double checked and I have reboot my computer. The issue is still there.

I have tried to run “lite-connectionhostx86_64” which is provided in SLQS04.00.26-lite. I have the following error message:

Fail Open:/dev/qcqmi0

get_model_id: dms fd<0

Fail Open:/dev/qcqmi0

get_home_network: nas fd<0

Fail Open:/dev/qcqmi0

main: WDS svc could not open for IPv4!

Is it possible that my qcqmi0 is incorrect? I have the following information for qcqmi0:

$ ls -l /dev/q*

crw------- 1 root root 238, 0 Aug 10 09:51 /dev/qcqmi0

I have run the command line

cd GobiSerial; make; sudo make install

cd GobiNet; make; sudo make install

sudo modprobe GobiSerial [debug=Y]

sudo modprobe GobiNet [debug=Y]

again. I have the same result. The drivers are unzipped from SierraLinuxQMIdriversS2.42N2.62.tar.bz2. I have downloaded and installed the driver from SierraLinuxQMIdriversS2.42N2.63.tar.bz2. the results are the same.

When I run “sudo make” and “sudo make install”, I have had a warning message:

sidekiq@Sidekiq-7BBP:~/NeXt/SierraWireless/driver/GobiSerial/sudo make install

rm -rf *.o ~ core .depend ..cmd *.ko .mod.c .tmp_versions Module. modules.order .cache.mk *.o.ur-safe

make -C /lib/modules/4.15.0-29-generic/build M=/home/sidekiq/NeXt/SierraWireless/driver/GobiSerial modules

make[1]: Entering directory ‘/usr/src/linux-headers-4.15.0-29-generic’

CC [M] /home/sidekiq/NeXt/SierraWireless/driver/GobiSerial/GobiSerial.o

/home/sidekiq/NeXt/SierraWireless/driver/GobiSerial/GobiSerial.c:242:2: warning: #warning “Assuming disc_mutex is locked external to the module” [-Wcpp]

#warning “Assuming disc_mutex is locked external to the module”

^~~~~~~

Building modules, stage 2.

MODPOST 1 modules

CC /home/sidekiq/NeXt/SierraWireless/driver/GobiSerial/GobiSerial.mod.o

LD [M] /home/sidekiq/NeXt/SierraWireless/driver/GobiSerial/GobiSerial.ko

make[1]: Leaving directory ‘/usr/src/linux-headers-4.15.0-29-generic’

mkdir -p /lib/modules/uname -r/kernel/drivers/usb/serial/

cp -f GobiSerial.ko /lib/modules/uname -r/kernel/drivers/usb/serial/

depmod

I am not sure if the warning means something.

Thanks,

Wes

Hi wes.wang

You can’t open the /dev/qcqmi0. Please check your host Linux and module. You can try changing with another USB cable, Linux host and module.

It is message from GobiSerial.c file.
#if ((KERNEL_SERIES( 3,4 ) && LINUX_VERSION_CODE >= KERNEL_VERSION( 3,4,34 )) ||
(KERNEL_SERIES( 3,2 ) && LINUX_VERSION_CODE >= KERNEL_VERSION( 3,2,0 )) ||
(KERNEL_SERIES( 3,5 ) && LINUX_VERSION_CODE >= KERNEL_VERSION( 3,5,0 )) ||
(KERNEL_SERIES( 3,7 ) && LINUX_VERSION_CODE >= KERNEL_VERSION( 3,7,10 )) ||
(KERNEL_SERIES( 3,8 ) && LINUX_VERSION_CODE >= KERNEL_VERSION( 3,8,1) ) ||
(LINUX_VERSION_CODE >= KERNEL_VERSION( 3,8,1) ))
/* workaround for upstream commit b2ca699076573c94fee9a73cb0d8645383b602a0 */
#warning “Assuming disc_mutex is locked external to the module”
static inline void Gobi_lock_disc_mutex(struct usb_serial *serial) {
if (LINUX_VERSION_CODE < KERNEL_VERSION( 3,12,0) )
{
WARN_ON(!mutex_is_locked(&serial->disc_mutex));
}
}

Donald,

Currently, I am using version SLQS04.00.26.bin.tar. I have tried fallback to version SLQS04.00.25.bin.tar. The problem remained the same. So, I switched back to SLQS04.00.26.bin.tar.

Please see the attached file “LinuxVersionModule.txt” for the host Linux version and modules. Is there a module missing or conflict?

Thanks,

Wes

LinuxVersionModule.txt (5.56 KB)

Hi wes.wang

The SDK process need to read/write modem’s serial ports. Please make sure there is no background process reading/writing modem’s serial ports at the same time. For example, qmi_daemon.
Are you using the latest firmware(SWI9X50C_01.11.00.00)? Please share to me the log of ATI3, AT!GSTATUS? commands.
https://source.sierrawireless.com/resources/airprime/minicard/75xx/airprime-em_mc75xx-approved-fw-packages/#sthash.v07urPi1.dpbs

Did you try it with another Ubuntu host?

Donald,

That’s a good idea. I try to install SLQ into a machine with the following OS. I have encountered new problems.

[swr@localhost GobiNet]$ uname -a

Linux localhost.localdomain 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

When I try to run make under BobiNet, I have encountered the following issue:

[swr@localhost GobiNet]$ sudo make

[sudo] password for swr:

make -C /lib/modules/3.10.0-1062.18.1.el7.x86_64/build M=/home/swr/NeXt/Sierra/driver/GobiNet modules

make[1]: Entering directory `/usr/src/kernels/3.10.0-1062.18.1.el7.x86_64’

CC [M] /home/swr/NeXt/Sierra/driver/GobiNet/GobiUSBNet.o

In file included from include/net/sock.h:62:0,

from include/net/inet_sock.h:27,

from include/net/ip.h:30,

from /home/swr/NeXt/Sierra/driver/GobiNet/GobiUSBNet.c:94:

include/linux/memcontrol.h: In function ‘task_in_memcg_oom’:

include/linux/memcontrol.h:141:2: warning: return makes integer from pointer without a cast [enabled by default]

return p->memcg_oom.memcg;

^

/home/swr/NeXt/Sierra/driver/GobiNet/GobiUSBNet.c: In function ‘GobiUSBNetProbe’:

/home/swr/NeXt/Sierra/driver/GobiNet/GobiUSBNet.c:3048:14: error: ‘struct net_device_ops’ has no member named ‘ndo_change_mtu’

pNetDevOps->ndo_change_mtu = GobiUSBNetChangeMTU;

^

make[2]: *** [/home/swr/NeXt/Sierra/driver/GobiNet/GobiUSBNet.o] Error 1

make[1]: *** [module/home/swr/NeXt/Sierra/driver/GobiNet] Error 2

make[1]: Leaving directory `/usr/src/kernels/3.10.0-1062.18.1.el7.x86_64’

make: *** [all] Error 2

When I try to make under SLQ/SampleApps/Connection_Manager/

[swr@localhost Connection_Manager]$ make

(standard_in) 1: syntax error

Compiling src/displaymgmt.c

obj/hostx86_64/ exists - good.

Compiling src/connectionmgr.c

bin/ exists - good.

/usr/bin/ld: cannot find -lrt

/usr/bin/ld: cannot find -lpthread

/usr/bin/ld: cannot find -lrt

/usr/bin/ld: cannot find -lpthread

/usr/bin/ld: cannot find -lc

collect2: error: ld returned 1 exit status

make: *** [bin/connectionmgrhostx86_64] Error 1

I fact, I do have the needed library in /usr/lib64:

[swr@localhost lib64]$ ls -ltr librt*

-rwxr-xr-x. 1 root root 43776 Aug 6 2019 librt-2.17.so

lrwxrwxrwx. 1 root root 13 Jan 22 2020 librt.so.1 -> librt-2.17.so

lrwxrwxrwx. 1 root root 22 Jan 22 2020 librt.so -> …/…/lib64/librt.so.1

[swr@localhost lib64]$ ls -ltr libpth*

-rwxr-xr-x. 1 root root 83720 Nov 20 2015 libpth.so.20.0.27

-rw-r–r--. 1 root root 222 Aug 6 2019 libpthread.so

-rwxr-xr-x. 1 root root 142232 Aug 6 2019 libpthread-2.17.so

-rw-r–r--. 1 root root 1764 Aug 6 2019 libpthread_nonshared.a

lrwxrwxrwx. 1 root root 17 Jan 21 2020 libpth.so.20 -> libpth.so.20.0.27

lrwxrwxrwx. 1 root root 18 Jan 22 2020 libpthread.so.0 -> libpthread-2.17.so

Obvious, I am not familiar with the new system.

Thank you for your help.

Wes

Hi wes.wang

Please contact your reseller or distributor directly for technical support in this case.

This issue has been resolved with the help from my reseller. Thanks to Tony from https://www.pws.bz/.
The problem was caused by Ctrl-C quit while SampleApps was sending a taking long time SMS.
The problem was solved by

  1. From AT command, make sure the setting AT!USBCOMP=1,3,10d
  2. From AT command, AT!RESET
  3. At Linux, kill all process with slqssdk
  4. Run pkgs/qa/qatestYOUR-PLATFORM

I appreciate all the help from Donald.