To get rid of the legacy cruft, newer ways to present USB-connected LTE modems like QMI and MBIM have been developed. Quectel modules offer QMI(Qualcomm MSM Interface) which is established as a real network interface, such as ethernet(typically shows as wwan0). There is an open source Linux in-kernel driver supporting this interface called qmi_wwan.
The QMI is also counted among the non-AT protocols which are communicated over /dev/cdc-wdm0 port. In order to establish a connection, proper qmi/gobinet proxy should be installed, which again depending on the chipset of the module/modem and the kernel of Linux, can get a bit complicated.
This tutorial is maintained in our documentation section.
Warning: In this tutorial, the QMI interface was established using the connect manager program(quectel-CM tool) provided by Quectel. This tutorial will not work for modules from other OEM, it is only for Quectel.
Software Setup
1. Open a new terminal and run the update and upgrade command.
sudo apt update && sudo apt upgrade -y
Next, install the Raspberry Pi kernel headers needed for the QMI Interface.
sudo apt-get install raspberrypi-kernel-headers
Download the QMI installer file, and change the permission of the installation file. Then install it.
Set apn/user/password/auth get -p pincode from your network provider, verify sim card pin if sim card is locked -f log filename, save log message of this program to the file.
quectel-CM will send QMI message to the module via QMI channel to setup data connection. Please refer to the following message to use quectel-CM:
Example 1: ./quectel-CM Example 2: ./quectel-CM -s 3gnet Example 3: ./quectel-CM -s 3gnet carl 1234 0 -p 1234 -f gobinet_log.txt
⚙️ Module Configuration
Before running the PPP/QMI make sure the module is configured to the right settings. AT+QCFG=”usbnet” should return 0, otherwise,send AT+QCFG=”usbnet”,0 then reboot the module after 10 seconds AT+CFUN=1,1
2. It will then ask for APN. Type in your APN and then press ENTER.
[email protected]:~ $ sudo ./install_auto_connect.sh
What is the APN?
<YOUR_APN>
–2020-12-03 12:07:39– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/reconnect_service
Resolving raw.githubusercontent.com
…
Saving to: ‘qmi_reconnect.service’qmi_reconnect.service 100%[=========================================================>]
264 –.-KB/s in 0s2020-12-03 12:07:39 (2.63 MB/s) – ‘qmi_reconnect.service’ saved [264/264]
…
Saving to: ‘qmi_reconnect.sh’qmi_reconnect.sh 100%[=========================================================>]
224 –.-KB/s in 0s2020-12-03 12:07:40 (1.32 MB/s) – ‘qmi_reconnect.sh’ saved [224/224]Created symlink /etc/systemd/system/multi-user.target.wants/qmi_reconnect.service → /etc/systemd/system/qmi_reconnect.service.
DONE
3. The name of the service is qmi_reconnect. To check if the service is active you can type the following. If it is working fine then you will be able to see active(running) in green.
Uninstall
[email protected]:~ $ sudo systemctl status qmi_reconnect.service
● qmi_reconnect.service – QMI Auto Connection
Loaded: loaded (/etc/systemd/system/qmi_reconnect.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-29 12:15:25 GMT; 2min 4s ago
Main PID: 2730 (sh)
Tasks: 4 (limit: 3861)
CGroup: /system.slice/qmi_reconnect.service
├─ 2730 /bin/sh /usr/src/qmi_reconnect.sh
├─13529 sudo ./quectel-CM -s super
└─13530 ./quectel-CM -s super
If you are using auto-connect/reconnect service, stop the service and disable it.
We recommend going through the section on troubleshooting as it covers the more common issues with establishing and maintaining a network connection. Please check the troubleshooting of your shield/HAT.
Hi Saeed. Any idea as to why when using the qmi interface everything appears to be fine (device has an IP, route, etc…) but in fact ping fails, dns lookup will fail,…networking will fail. If I install the ppp installer everything will work perfectly.
Thanks
Is QMI primarily used over USB to supply Internet to a computer? If yes, could this supply Internet to a Wireless AP, which may be a stronger hotspot that an RPi?
Or is PPP still preferred as the hotspot method? I have my RPi 3B set up as a hotspot with the 3G/4G LTE shield, but I believe the speed should be faster. Wondering if QMI would help. Thanks.
Thanks for this work. it makes the job much easier. QQ on the output. I have followed the guide and got it working but in my output is says “too few arguments”
[email protected]:~# quectel-CM -s pp.vodafone.co.uk wap wap pap -f /var/log/VF-output.log
[03-16_21:38:38:166] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[03-16_21:38:38:167] quectel-CM profile[1] = pp.vodafone.co.uk/wap/wap/64, pincode = (null)
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3 idVendor=2c7c idProduct=0125
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3:1.4/net/wwan0
[03-16_21:38:38:169] Find usbnet_adapter = wwan0
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3:1.4/usbmisc/cdc-wdm0
[03-16_21:38:38:169] Find qmichannel = /dev/cdc-wdm0
[03-16_21:38:38:192] cdc_wdm_fd = 8
[03-16_21:38:38:269] Get clientWDS = 20
[03-16_21:38:38:301] Get clientDMS = 1
[03-16_21:38:38:333] Get clientNAS = 4
[03-16_21:38:38:365] Get clientUIM = 1
[03-16_21:38:38:397] Get clientWDA = 1
[03-16_21:38:38:429] requestBaseBandVersion EC25EFAR06A03M4G
[03-16_21:38:38:557] requestGetSIMStatus SIMStatus: SIM_READY
[03-16_21:38:38:557] requestSetProfile[1] pp.vodafone.co.uk/wap/wap/64
[03-16_21:38:38:621] requestGetProfile[1] pp.vodafone.co.uk/wap/wap/64
[03-16_21:38:38:653] requestRegistrationState2 MCC: 234, MNC: 15, PS: Attached, DataCap: LTE
[03-16_21:38:38:685] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[03-16_21:38:38:749] requestRegistrationState2 MCC: 234, MNC: 15, PS: Attached, DataCap: LTE
[03-16_21:38:38:781] requestSetupDataCall WdsConnectionIPv4Handle: 0x87309130
[03-16_21:38:38:845] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[03-16_21:38:38:877] ifconfig wwan0 up
[03-16_21:38:38:887] busybox udhcpc -f -n -q -t 5 -i wwan0
[03-16_21:38:38:914] udhcpc (v1.22.1) started
No resolv.conf for interface wwan0.udhcpc
[03-16_21:38:39:020] Sending discover…
[03-16_21:38:39:110] Sending select for 10.33.44.170…
[03-16_21:38:39:210] Lease of 10.33.44.170 obtained, lease time 7200
Too few arguments.
Too few arguments.
What is going on there? I have included the command to start it.
I had to rebuild my Pi for a project and I have noted now that i have put it back again I am not getting a lease from Vodafone (My carrier) on a known working SIM.
Do I need to put anything specific into /etc/network/interfaces to cater for DHCP requests or is there anything the busybox instance would need to get a lease?
I have tried two working SIM cards and the unit times out on getting a lease now.
Just got a successful connection using the QMI interface via sudo ./quectel-CM -s ‘APN’
I would like this to run at startup automatically after each reboot, as I assume this is the only way to have the device online after reboot without manually executing sudo ./quectel-CM -s ‘APN’ is that correct?
Any recommendations for setting this to run at startup? I’m novice but was able to write a shell script that runs sudo ./quectel-CM -s ‘APN’ (and it works) but am having trouble getting this to run automatically at startup via rc.local. For current version of Debian, it sounds like a systemd configuration would be preferable. Is systemd the best option, and if so does Sixfab have a systemd init file example that works?
Hi,
I’m trying to get my RPI (Raspbian strecht) to work with my 3G-4G/LTE Base Shield V2 with EC25 module.
So I installed a fresh Raspbian to my RP3 and I followed every steps described in your tutorials :
But I dont get any connection… All I have is an endless loop saying :
“requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW”
When I launch the instruction “sudo ./quectel-CM -s internet” (as internet is my APN)
I type “sudo apt-get update” before installation and connect two LTE antenna to Main port
I found the log “SIMStatus: SIM_ABSENT” seems not normal.I insert sim card to the slot and change other sim card still have
the “SIMStatus: SIM_ABSENT” log
hi Saeed
I yesterday can success to internet and install auto connect.
But… today still have “SIM_ABSENT” log, I am so confuse.My environment is the same to yesterday.
List some log:
at
OK
at
OK
at
OK
AT+CPIN
ERROR
AT+COPS
OK
AT+CSQ
+CSQ: 31,99
Now I install auto connect.Can I staill type “sudo ./quectel-CM -s internet” in comsole for test?
If your reconnect service is active, before running sudo ./quectel-CM -s internet
stop the reconnect service by sudo systemctl stop reconnect.service
hi Saeed
I can not reply in your response so I reply here.
“Did you try with different sim too?” —> yes I try another sim also have”AT+CPIN ERROR” result
Hi,
Just sec…..
The command need to be AT+CPIN?
Don’t igonre the “?” mark at the end. 🙂
hi Saeed
hahaha sory for my little eyes
List some log:
sim card 1
AT+CPIN?
+CME ERROR: 10
at
OK
sim card 2
AT
OK
AT
OK
AT+CPIN?
+CME ERROR: 10
I try two sim cards but the log all “CME ERROR: 10”
Hi Could you please email us the image of your hardware setup at hello[at]sixfab [dot] com.
Everything in this tutorial goes great until step 14
I get stuck in an endless loop. Other similar posting show, make sure you do step 1. I did.
I read this could be an antenna issue. LTE Primary, GPS and LTE Diversity are plugged in solid. I’m not sure where to go.
My APN might be wrong. How do I know?
ATT = pta
ATT = broadband
and several others…
Any her would be greatly appreciated.
Could you please look at the output I get after finishing step 14 of the instructions? The first line is the commad that starts it all and the output follows
towards the end, there is a “sending discover ….” and a “no lease, failing” that seems odd. and then there is an everlasting loop. Any help is appreciated.
and have not received any help. Reinstallation of the driver does nothing, and I pulled the most recent copy of the installer from github as of the date of my posting.
I did a recent apt-get upgrade && dist-upgrade and after that I too am facing the problems above. For some reason, discovery on the wwan0 interface is failing. I’m trying to re-image an old backup and see if I can get my RPI4 back up and running again as 4G hotspot.
Hello,
Thank you for reaching out.
Is the problem still present?
Was rpi-update < tag> successful?
what is the output your ls /usr/src/ ?
Best regards.
I’ve got an RPI4, so rpi-update should not be used according to this guide. I’ll let you know how my reinstall went.
Output of ls /usr/src/ is: [email protected]:~/files/quectel-CM $ ls /usr/src/
linux-headers-4.19.75+ linux-headers-4.19.75-v7+ linux-headers-4.19.75-v7l+
Here’s the output of the install script by the way:
Notice the error in the make output:
make -C /lib/modules/4.19.57-v7l+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.57-v7l+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
[email protected]:/lib/modules $ ls
4.19.57+ 4.19.57-v7+ 4.19.57-v7l+ 4.19.75+ 4.19.75-v7+ 4.19.75-v7l+
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
busybox
The following NEW packages will be installed:
busybox udhcpc
0 upgraded, 2 newly installed, 0 to remove and 92 not upgraded.
Need to get 430 kB of archives.
After this operation, 862 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirror.transip.net/raspbian/raspbian buster/main armhf busybox armhf 1:1.30.1-4 [405 kB]
Get:2 http://mirror.transip.net/raspbian/raspbian buster/main armhf udhcpc armhf 1:1.30.1-4 [24.3 kB]
Fetched 430 kB in 1s (827 kB/s)
Selecting previously unselected package busybox.
(Reading database … 89155 files and directories currently installed.)
Preparing to unpack …/busybox_1%3a1.30.1-4_armhf.deb …
Unpacking busybox (1:1.30.1-4) …
Selecting previously unselected package udhcpc.
Preparing to unpack …/udhcpc_1%3a1.30.1-4_armhf.deb …
Unpacking udhcpc (1:1.30.1-4) …
Setting up busybox (1:1.30.1-4) …
Setting up udhcpc (1:1.30.1-4) …
Processing triggers for man-db (2.8.5-2) …
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.57-v7l+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.57-v7l+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Hello,
I have problems compiling the driver. Pls see the output: [email protected]:/home/pi/files/drivers# make clean && make && make install
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
make -C /lib/modules/4.19.42-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.42-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c: In function ‘qmimux_register_device’:
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:286:8: error: too few arguments to function ‘netdev_upper_dev_link’
err = netdev_upper_dev_link(real_dev, new_dev);
^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:15:0:
./include/linux/netdevice.h:4208:5: note: declared here
int netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev,
^~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:309: recipe for target ‘/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o’ failed
make[2]: *** [/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o] Error 1
Makefile:1524: recipe for target ‘_module_/home/pi/files/drivers’ failed
make[1]: *** [_module_/home/pi/files/drivers] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.42-v7+’
Makefile:10: recipe for target ‘modules’ failed
make: *** [modules] Error 2
You need to change the call to “netdev_upper_dev_link(real_dev, new_dev, &dev_ack)” now it takes 3 params, I have fixed in my code, but Sixfab need to fix files otherwise the qmi_install script always overwrite mods.
As anyone managed to use the EC-25 with the qmi interface?
That “No resolv.conf for interface wwan0.udhcpc” seems to be persistent despite multiple attempt
[05-23_12:59:17:355] Sending discover…
[05-23_12:59:20:233] requestRegistrationState2 MCC: 272, MNC: 3, PS: Attached, DataCap: UMTS
[05-23_12:59:20:488] Sending discover…
[05-23_12:59:23:588] Sending discover…
[05-23_12:59:26:688] Sending discover…
[05-23_12:59:29:798] Sending discover…
[05-23_12:59:32:947] No lease, failing
I have noticed some error while installing qmi.sh but I don’t know if it is related. [email protected]:/opt $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-05-23 12:02:27– https://sixfab.com/wp-content/uploads/2018/11/files.zip
Resolving sixfab.com (sixfab.com)… 104.28.23.189, 104.28.22.189, 2606:4700:30::681c:17bd, …
Connecting to sixfab.com (sixfab.com)|104.28.23.189|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 122805 (120K) [application/zip]
Saving to: ‘files.zip’
files.zip 100%[===============================>] 119.93K –.-KB/s in 0.1s
I was able to get everything to compile successfully, but when I try to connect using my T-Mobile SIM I never get an IP address from DHCP. Any ideas why?
I’m using a new six fab mPCI-E Base Shield (for 3G, 4G/LTE mPCI-E modules V2) and Quectel EC25-A modem with the full-band LTE antenna attached.
I have a working connection and all is fine for many hours. Then for some reason the connection drops and the sixfab device is no longer seen via usb. lsusb does not show the device and ls/dev dos not find the ttyUSB devices. a reboot of the pi does not solve the issue. The only way to recover is to power cycle the pI which in turn power cycles the six fab shield. So it looks to me that the modem is locking up and can only be recovered by a power cycle. Is there any way to reset or power cycle the modem without having to power cycle the pi. It is a remote application and I have no way to power cycle the pi when it locks up.
Thanks that is what I was looking for. The modem can stay up for days before the issue happens. I have verified that GPIO26 resets the modem but need to let it run to see if it is enough to recover from the lock up.
I was able to get connected with this process using the USB connection on my Raspberry Pi Cellular IoT HAT with Verizon SIM, however, is there a way to get the QMI connection to function as a WWAN using the RPi’s header instead of the USB cable? Similar to the PPP installer tutorial.
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.50-v7+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to rebootsu
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:39:40 2019 [email protected]:~ $ cd files/quectel-CM/ [email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules [email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
[07-08_19:41:21:671] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:41:21:672] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:41:21:675] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules [email protected]:~/files/quectel-CM $ [07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[1] 707
[2] 708
-bash: [07-08_19:40:58:812]: command not found
-bash: LTE_QConnectManager_Linux: command not found
-bash: Android_V1.1.45: command not found
[1]- Exit 127 [07-08_19:40:58:812] WCDMA
[2]+ Exit 127 LTE_QConnectManager_Linux [email protected]:~/files/quectel-CM $ [07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
-bash: syntax error near unexpected token `(‘ [email protected]:~/files/quectel-CM $ [07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
-bash: syntax error near unexpected token `(‘ [email protected]:~/files/quectel-CM $ ^C^C [email protected]:~/files/quectel-CM $ ^C [email protected]:~/files/quectel-CM $ exit^C [email protected]:~/files/quectel-CM $ ^C [email protected]:~/files/quectel-CM $ cd ~ [email protected]:~ $ pwd
/home/pi [email protected]:~ $ ls
Audio Desktop Downloads files qmi_install.sh Videos [email protected]:~ $ wget https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh
–2019-07-08 19:43:31– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.192.133, 151.101.0.133, 151.101.64.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2120 (2.1K) [text/plain]
Saving to: ‘qmi_install.sh.1’
qmi_install.sh.1 100%[===================>] 2.07K –.-KB/s in 0s
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.50-v7+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to reboot^C [email protected]:~ $ ^C [email protected]:~ $ make
make: *** No targets specified and no makefile found. Stop. [email protected]:~ $ [email protected]:~ $ [email protected]:~ $ sudo apt-get install raspberrypi-kernel-headers
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
raspberrypi-kernel-headers
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 24.9 MB of archives.
After this operation, 163 MB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian buster/main armhf raspberrypi-kernel-headers armhf 1.20190620+1-1 [24.9 MB]
Fetched 24.9 MB in 3s (7,619 kB/s)
Selecting previously unselected package raspberrypi-kernel-headers.
(Reading database … 91783 files and directories currently installed.)
Preparing to unpack …/raspberrypi-kernel-headers_1.20190620+1-1_armhf.deb …
Unpacking raspberrypi-kernel-headers (1.20190620+1-1) …
Setting up raspberrypi-kernel-headers (1.20190620+1-1) … [email protected]:~ $ ls /usr/src
linux-headers-4.19.50+ linux-headers-4.19.50-v7l+
linux-headers-4.19.50-v7+ sense-hat [email protected]:~ $ sudo reboot [email protected]:~ $
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:50:37 2019
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.50-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.50-v7+’
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.50-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.50-v7+’
cp /home/pi/files/drivers/drivers/usb/serial/option.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/usb_wwan.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/qcserial.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/net/usb/qmi_wwan.ko /lib/modules/4.19.50-v7+/kernel/drivers/net/usb/
modprobe -r option qcserial qmi_wwan
depmod
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to reboot
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:52:29 2019 [email protected]:~ $ cd files/quectel-CM/ [email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:54:52:750] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:54:52:751] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:54:52:753] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules [email protected]:~/files/quectel-CM $
NOTE: new kernel come out on PI 3 and 4. The qmi tools need to be recompiled against new kernel to work again. Re-execute the procedure described in this Sixfab tutorial.
Hi I have same issue, I have 5v 2.5A power supply . using IOT HAT and I have USB connected. What can I be missing ? Had issues in your other ppp tutorial so switch to qmi. As off now I haven’t had luck and been trying for a while. Any help appreciated. Thanks
IT was my USB cable, I switched and its trying to connect now. Thanks
Hello there, how do I connect using PAP with a username and password?
How do I change the existing config that you have outlined in your tutorial to use a different apn with username and password including auto connect?
Thanks
In step 11 guide says “Make sure the module is disconnected before running the installer script”… What does it mean disconnected?
a. Remove the shield altogether?
b. Remove Quectel from its slot on the shield but leave the shield on the rpi
c. Keep shield and Quectel module on the rpi but remove (unplug) usb cable that goes from rpi to the shield.
Another question
Is there a way to use the shield without using the usb cable at all? Usb cable connection totally contradicts the use of a shield.
Hello guys i would like to add something about using this tutorial on RPi 4. Do not attach the shield until step 14. It was the only way i could make this setup work
I’ve got this device working but I’m struggling to work out how to get information regarding signal strength from the device. I’ve searched far and wide on Google but can’t find anything that works for me. Ideally I’d like to log this to a file.
Thank you in advance for your help.
But if I am understanding correctly, this is the command that I need to execute to get connected to LTE. If its execution fails, it means I am not connected, right?
In other words, how can I make “sudo ./quectel-CM -s internet” work? shouldn’t this or something like this be executed before I can ping something?
I setup all your scripts as per your instructions. On boot up immediately the connectivity is established. To check if the connectivity is maintained I start ping to google.com, after some time the ping response fails and on restarting ping all ping packets are lost. On reboot, without restarting the Modem, the connectivity starts working again.
In the above case the reconnect service should have got the connectivity back working.
Hi,
I have installed the software to make the auto_connect.
But how can I uninstall this ? Or how to turn it off if I don’t want to connect automatically via QMI anymore ?
Thanks for your time.
Hello,
can you make a Tutorial about how to check Signal Information.
Only thing i can make runnin is minicom and at+csq. This is very few information and i also get a CSQ: 26,99. Which is very sad.
By the way, my UC20-G module already had been working with RP3 with older tutorial. However, it is not working with the new QMI tutorial. I use raspbian-stretch. ifconfig log is;
wwan0: flags=4163 mtu 1500
inet 31.140.150.9 netmask 255.255.255.252 broadcast 31.140.150.11
inet6 fe80::efc9:c6cc:c4e4:abce prefixlen 64 scopeid 0x20
ether be:a1:e6:34:e9:eb txqueuelen 1000 (Ethernet)
RX packets 86 bytes 4926 (4.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37 bytes 7832 (7.6 KiB)
TX errors 0 dropped 253 overruns 0 carrier 0 collisions 0
I already tried plugging and unplugging the device and it seems to be powered on. The blue LED is blinking rather slow (1 sec on, very shortly off).
Also, I made a fresh install of Raspbian Lite.
Hi,
thanks for your answer. It seems that either the micro usb-Port of the base shield or the 90° cable might have a loose connection. When I held it in my hand and then run the sudo ./quectel-CM -s internet command it worked, and I noticed that I pushed on the tip of the cable.
Is there a place to buy a new 90° cable?
Thanks in advance and best regards.
I succesfully installed qmi_install and I can navigate through internet. It is ok !
But I would like to access my RPI3B from internet, I found his public ip adress, but it is impossible to access via ssh. In my local network, it works fine.
Do I have to open port somewhere in QMI connection ?
The public IP you found probably isn’t the real public IP and you are behind carrier grade NAT (CG-NAT). Unless your mobile provider supports port forwarding or gives you a private IP-address (which is unlikely), you can’t just SSH in. Perhaps a reverse SSH-tunnel using auto-ssh or add-on software can help you.
I have a Raspberry Pi 3G/4G<E Base HAT running on a raspberry pi 3. I got the GPS working and made some edits to suit my needs however there are three things I cant seem to get working after following the instructions:
1. SMS — I am using the the guide and I just keep getting “ATE1″ whenever I run the python code. What am I doing wrong?
2. Sixfab Connect — I just cant seem to get this to work either. The device have never showed up on the dashboard.
2. QMI — I followed the instructions over and over and I cant get this to work. I did get PPP to work however I need more speed. I am using a Digicel Dominica 3G SIM card and get the rolling on
Hello,
QMI seems to have worked successfully but then failed.
Have you tried another SIM?
Could you also enclose the PPP log, I’d like to check some status for comparison.
How can i install and use two base shields at the same time?
I would like wwan0 (base shield 1) and wwan1 (base shield 2) both have ip address and internet connection. At the moment one base shield is ok and connected to internet and second base shield connected on top of it. It shows as wwa0, but doesn’t have ip address or connection.
Any tips & tricks for easy or not that easy setup?
Works like a charm on the pi 4, thanks for these great instructions. Regarding step 14 there is a site https://www.4gapn.com/us/en/t-mobile that you can find the correct apn for your carrier in case anyone needs this.
Hi, I am cracking my mind installing this on Hypriot OS. It is a debian/raspbian based OS with full docker capabilities. We are evaluating this shields for a major client in Chile, but it is mandatory for us to run on Hypriot (only OS with docker for RPi)
I am using RPI 3B+ and Cellular IoT HAT.
$ ls /usr/src
linux-headers-4.19.66+ linux-headers-4.19.66-v7+ reconnect.sh
>> firmware updated for 4.19.66 following instructions
On Raspbian: Configuration for the QMI using the beta plataform works great. Apparently no need to setup PAP credentials (not asked anywhere in the config)
On Hypriot: I followed this tutorial and read every comment. I am stuck in this step (bam.entelpcs.cl is the local internet provider in chile)
$ sudo ./quectel-CM -s bam.entelpcs.cl
[02-12_20:12:39:349] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[02-12_20:12:39:351] ./quectel-CM profile[1] = bam.entelpcs.cl///0, pincode = (null)
[02-12_20:12:39:354] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
No more verbose after that.
Cable is ok, and the shield is powered (the same hardware and sim worked in raspbian).
I use Raspberry pi 4 and like in the Software Setup explained i skipped the steps for the RPI4.
Yeahh i checked the connection.
I tried to install the finish image what you provide with QMI and it works fine with these.
It depends on your configuration. You can use AT+QCFG=”nwscanmode”(Network Search Mode Configuration) and AT+QNWINFO(Query Network Information) commands.
Hi,
I’m able to make/receive a call using AT COMMAND but Mic/Speaker didn’t work(mic/speaker work with others).
Can you please share how to enable mic/speaker for call?
Hi Saeed,
The tutorial worked perfectly for DHCP.
Now I have a static public IP and can’t figure out how to stop the ARP requests. I am using an EC25A on Base Hat on Rpi4 with a iot.tmowhosale.static APN.
Secondary issue: unable to keep wan0 & wwan0 connections operating parallel – they knock each other off like rockem’ sockem’ robots…
Any help is appreciated.
Thanks, Mark
Hello,
For me it works well with PPP and QMI interface.
I don’t know how to get information about 4G signal strength?
Is there a command to get the info?
Dear Sir or Madame,
I got a new try. I means I formatted my SD card and I did again the full install including reinstalling the last version of Raspbian. I also connected my Raspberry with an Ethernet cable to my home router. In that way, I have not configured the RPi3 WiFi.
First, I have short question, do I need to enable that option: B2 Wait for Network at Boot ?
I then run: sudo ./quectel-CM -s gprs.swisscom.ch -p 1234 -f /var/log/sixfab_log.txt
Then I f I go to my first terminal and I press ctrl+c, the ifconfig does not show an IP. I supposed that normal?
Another question. You say we can follow some additional step to auto-connect at boot. But in your example you only show how add the APN, but nothing about PIN code and log. Should be worry about that, at those steps?
Last last question, how can I set the SSID to be able to connect with my laptop throught WiFi or with another devise?
Many thank fro your support and help and I wish you a nice week
Cheers
Hi,
It depends on your configuration. You can use AT+QCFG=”nwscanmode”(Network Search Mode Configuration) and AT+QNWINFO(Query Network Information) commands.
Hi,
Thanks for the instructions, this just worked straight from the box.
I have a special SIM that has two APNs (private and public), is there anyway I can get both APNs active at the same time. Every time I start the second APN connection, the first connection terminates?
Reading the EC25 datasheet, the module can support this feature.
I am not much familiar with linux infrastructure, but I think it is a better idea to call quectel-cm whenever a qmi_wwan is loaded. It must be something related to udev?
To configure Sprint APN Settings you should have to make sure that your mobile data is in on mode so that you can set to APN and MMS Settings for Sprint LTE 4G. https://www.apnsettingss.com/sprint-apn-settings/
HW: RPi4+shield V2 + sierra wireless MC7304 (+lte-antenna).
Communicating with the pi through wifi using putty, Pi is running raspbian.
I’m able to retrieve LTE-data but cannot get GNSS data when running commands. This is the error i get when running –loc start & –loc-get-position-report:
“error: couldn’t create client for the ‘loc’ service: QMI protocol error (31): ‘InvalidServiceType'”
Any ideas on why this happens? Using ppp but dont think that should interfere with the GNSS part?
Also posted this in the community but no response there… Hopefully I can get a response here because its getting pretty frustrating. Problem is that my SIM card is not detected anymore. All worked well until yesterday. SIM slot looks OK to me. No wear or damages there. SIM works fine in my phone. Tried other SIM’s (my wife’s….!) and same problem. It keeps telling me no SIM is inserted.
I noticed that this OS is kernel version 4.19.118, and then after running through the “sudo apt upgrade” at step 1 in the instructions here the kernel version was 5.4.51. I tried instead restarting the process from scratch with the 4.19.118 OS and skipping the upgrade – then the quectel-CM script worked fine, and was able to get a lease. I’m not sure if the problem is specifically related to the kernel version, or to something else in the OS upgrade.
I discovered this forum post from a couple of weeks ago:
I am having a problem when attempting step 14. I have no issues until that point, running Raspbian.
When I cd to /files/quectel-CM
and then type ./quectel-CM -s followed by the apn,
I receive a “command not found” error.
Hi Saeed. Any idea as to why when using the qmi interface everything appears to be fine (device has an IP, route, etc…) but in fact ping fails, dns lookup will fail,…networking will fail. If I install the ppp installer everything will work perfectly.
Thanks
Hi Andy, Could you please send me the image of your setup?
Did you update before starting the installation process with
I do have the same problem… Any answer so far ???
Hello,
Did you run sudo apt-get update before installation?
what different between PPP and QMI ?
what is better to use?
PPP uses a dialing number to establish a data connection
QMI does not use dialling or the PPP protocol to establish a data connection and it is usually faster than PPP mode.
Thank you Saeed
Is QMI primarily used over USB to supply Internet to a computer? If yes, could this supply Internet to a Wireless AP, which may be a stronger hotspot that an RPi?
Or is PPP still preferred as the hotspot method? I have my RPi 3B set up as a hotspot with the 3G/4G LTE shield, but I believe the speed should be faster. Wondering if QMI would help. Thanks.
Yes, the module needs to be connected via USB.
QMI is faster than PPP. You are right, QMI will be the best choice.
Hey Eddie,
Did you get this working with the QMI approach? I am trying to do the same thing… My sixfab hardware gets here in a couple days.
Will something like this work for the Sixfab Cellular IoT App Shield as well?
Yes, Sixfab Cellular IoT App Shield also supports QMI interface.
I get:
sudo qmicli -d /dev/cdc-wdm0 –wds-start-network=apn=’xxxx.com’ client-no-release-cid
error: couldn’t start network: QMI protocol error (14): ‘CallFailed’
call end reason (3): generic-no-service
The SIM is connected I can at+cnum and I see the cell number
I assume it means the cell network is not connected or the SIM is not in the slot. The SIM tested good in another modem. I am using a Telit LE910Cx.
Any thoughts?
Please try quectel-CM instead of qmicl.
OK, I did get it to work with the Telit. I updated to qmi-network 1.22.0 and attached the antenna.
Jeff, how did you get the Telit LE910 working?
I had to add a default route out of wwan0 to make it work right because I was configuring it via Wifi to make it work. It might be that.
Hey Saeed,
Thanks for this work. it makes the job much easier. QQ on the output. I have followed the guide and got it working but in my output is says “too few arguments”
[email protected]:~# quectel-CM -s pp.vodafone.co.uk wap wap pap -f /var/log/VF-output.log
[03-16_21:38:38:166] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[03-16_21:38:38:167] quectel-CM profile[1] = pp.vodafone.co.uk/wap/wap/64, pincode = (null)
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3 idVendor=2c7c idProduct=0125
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3:1.4/net/wwan0
[03-16_21:38:38:169] Find usbnet_adapter = wwan0
[03-16_21:38:38:169] Find /sys/bus/usb/devices/1-1.1.3:1.4/usbmisc/cdc-wdm0
[03-16_21:38:38:169] Find qmichannel = /dev/cdc-wdm0
[03-16_21:38:38:192] cdc_wdm_fd = 8
[03-16_21:38:38:269] Get clientWDS = 20
[03-16_21:38:38:301] Get clientDMS = 1
[03-16_21:38:38:333] Get clientNAS = 4
[03-16_21:38:38:365] Get clientUIM = 1
[03-16_21:38:38:397] Get clientWDA = 1
[03-16_21:38:38:429] requestBaseBandVersion EC25EFAR06A03M4G
[03-16_21:38:38:557] requestGetSIMStatus SIMStatus: SIM_READY
[03-16_21:38:38:557] requestSetProfile[1] pp.vodafone.co.uk/wap/wap/64
[03-16_21:38:38:621] requestGetProfile[1] pp.vodafone.co.uk/wap/wap/64
[03-16_21:38:38:653] requestRegistrationState2 MCC: 234, MNC: 15, PS: Attached, DataCap: LTE
[03-16_21:38:38:685] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[03-16_21:38:38:749] requestRegistrationState2 MCC: 234, MNC: 15, PS: Attached, DataCap: LTE
[03-16_21:38:38:781] requestSetupDataCall WdsConnectionIPv4Handle: 0x87309130
[03-16_21:38:38:845] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[03-16_21:38:38:877] ifconfig wwan0 up
[03-16_21:38:38:887] busybox udhcpc -f -n -q -t 5 -i wwan0
[03-16_21:38:38:914] udhcpc (v1.22.1) started
No resolv.conf for interface wwan0.udhcpc
[03-16_21:38:39:020] Sending discover…
[03-16_21:38:39:110] Sending select for 10.33.44.170…
[03-16_21:38:39:210] Lease of 10.33.44.170 obtained, lease time 7200
Too few arguments.
Too few arguments.
What is going on there? I have included the command to start it.
Hello,
That’s great.
Too few arguments is a message shown by busybox.
Hey Saaed,
I had to rebuild my Pi for a project and I have noted now that i have put it back again I am not getting a lease from Vodafone (My carrier) on a known working SIM.
Do I need to put anything specific into /etc/network/interfaces to cater for DHCP requests or is there anything the busybox instance would need to get a lease?
I have tried two working SIM cards and the unit times out on getting a lease now.
Hi,
Could you please share the output once you type sudo ./quectel-CM -s internet?
Its ok. I recompiled it and it worked. I think I had a header mismatch in my rush to get it working. Thanks for the quick reply
Hi Saeed,
I’m facing the same error (no lease, failing)
here is the output of “sudo ./quectel-CM -s internet”
[01-07_02:50:06:116] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[01-07_02:50:06:117] ./quectel-CM profile[1] = internet///0, pincode = (null)
[01-07_02:50:06:119] Find /sys/bus/usb/devices/1-1.4 idVendor=2c7c idProduct=0125
[01-07_02:50:06:119] Find /sys/bus/usb/devices/1-1.4:1.4/net/wwan0
[01-07_02:50:06:119] Find usbnet_adapter = wwan0
[01-07_02:50:06:119] Find /sys/bus/usb/devices/1-1.4:1.4/usbmisc/cdc-wdm0
[01-07_02:50:06:119] Find qmichannel = /dev/cdc-wdm0
[01-07_02:50:06:143] /proc/914/fd/7 -> /dev/cdc-wdm0
[01-07_02:50:06:143] /proc/914/exe -> /home/pi/files/quectel-CM/quectel-CM
[01-07_02:50:21:144] force kill /proc/914/exe -> /home/pi/files/quectel-CM/quectel-CM
[01-07_02:50:23:146] cdc_wdm_fd = 7
[01-07_02:50:23:243] Get clientWDS = 20
[01-07_02:50:23:276] Get clientDMS = 1
[01-07_02:50:23:307] Get clientNAS = 4
[01-07_02:50:23:339] Get clientUIM = 1
[01-07_02:50:23:371] Get clientWDA = 1
[01-07_02:50:23:406] requestBaseBandVersion EC25EFAR06A04M4G
[01-07_02:50:23:532] requestGetSIMStatus SIMStatus: SIM_READY
[01-07_02:50:23:532] requestSetProfile[1] internet///0
[01-07_02:50:23:596] requestGetProfile[1] internet///0
[01-07_02:50:23:629] requestRegistrationState2 MCC: 424, MNC: 3, PS: Attached, DataCap: LTE
[01-07_02:50:23:661] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[01-07_02:50:23:726] requestRegistrationState2 MCC: 424, MNC: 3, PS: Attached, DataCap: LTE
[01-07_02:50:24:012] requestSetupDataCall WdsConnectionIPv4Handle: 0x87168560
[01-07_02:50:24:076] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[01-07_02:50:24:108] ifconfig wwan0 up
[01-07_02:50:24:119] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, failing
could you help me to solve it
Facing the same issue. Did anyone managed to solve it?
Just got a successful connection using the QMI interface via sudo ./quectel-CM -s ‘APN’
I would like this to run at startup automatically after each reboot, as I assume this is the only way to have the device online after reboot without manually executing sudo ./quectel-CM -s ‘APN’ is that correct?
Any recommendations for setting this to run at startup? I’m novice but was able to write a shell script that runs sudo ./quectel-CM -s ‘APN’ (and it works) but am having trouble getting this to run automatically at startup via rc.local. For current version of Debian, it sounds like a systemd configuration would be preferable. Is systemd the best option, and if so does Sixfab have a systemd init file example that works?
You can use systemd for this.
Please refer to https://www.raspberrypi.org/documentation/linux/usage/systemd.md for details.
We will be adding reconnect for QMI soon.
QMI auto connect has been added.
The reconnect service works great, thank you!
Thank you for your feedback.
Hi,
I’m trying to get my RPI (Raspbian strecht) to work with my 3G-4G/LTE Base Shield V2 with EC25 module.
So I installed a fresh Raspbian to my RP3 and I followed every steps described in your tutorials :
But I dont get any connection… All I have is an endless loop saying :
“requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW”
When I launch the instruction “sudo ./quectel-CM -s internet” (as internet is my APN)
I type “sudo apt-get update” before installation and connect two LTE antenna to Main port
I found the log “SIMStatus: SIM_ABSENT” seems not normal.I insert sim card to the slot and change other sim card still have
the “SIMStatus: SIM_ABSENT” log
Usefull informations :
full “sudo ./quectel-CM -s internet” output :
[05-01_13:16:16:246] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-01_13:16:16:247] ./quectel-CM profile[1] = internet///0, pincode = (null)
[05-01_13:16:16:247] Find /sys/bus/usb/devices/1-1.1.2 idVendor=2c7c idProduct=0125
[05-01_13:16:16:248] Find /sys/bus/usb/devices/1-1.1.2:1.4/net/wwan0
[05-01_13:16:16:248] Find usbnet_adapter = wwan0
[05-01_13:16:16:248] Find /sys/bus/usb/devices/1-1.1.2:1.4/usbmisc/cdc-wdm0
[05-01_13:16:16:248] Find qmichannel = /dev/cdc-wdm0
[05-01_13:16:16:362] cdc_wdm_fd = 7
[05-01_13:16:16:442] Get clientWDS = 20
[05-01_13:16:16:474] Get clientDMS = 1
[05-01_13:16:16:506] Get clientNAS = 4
[05-01_13:16:16:538] Get clientUIM = 1
[05-01_13:16:16:570] Get clientWDA = 1
[05-01_13:16:16:602] requestBaseBandVersion EC25AUFAR06A01M4G
[05-01_13:16:16:730] requestGetSIMStatus SIMStatus: SIM_ABSENT
[05-01_13:16:16:730] requestSetProfile[1] internet///0
[05-01_13:16:16:794] requestGetProfile[1] internet///0
[05-01_13:16:16:826] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:16:858] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-01_13:16:16:922] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:22:138] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:27:290] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:32:449] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:38:145] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
[05-01_13:16:43:297] requestRegistrationState2 MCC: 466, MNC: 1, PS: Detached, DataCap: UNKNOW
^C[05-01_13:16:45:953] QmiWwanThread exit
[05-01_13:16:45:954] main exit
Thanks !
Hi Saeed
do you have any recommend?
bbywes227 I have the same problem. I have tried replacing the pin several times but yields the same result. My setup is with EC-25A and AT&T Sim card.
Here are my logs.
[05-19_03:51:09:484] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-19_03:51:09:484] ./quectel-CM profile[1] = Broadand///0, pincode = (null)
[05-19_03:51:09:488] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125
[05-19_03:51:09:488] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[05-19_03:51:09:488] Find usbnet_adapter = wwan0
[05-19_03:51:09:488] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[05-19_03:51:09:488] Find qmichannel = /dev/cdc-wdm0
[05-19_03:51:09:501] cdc_wdm_fd = 7
[05-19_03:51:09:878] Get clientWDS = 19
[05-19_03:51:09:910] Get clientDMS = 1
[05-19_03:51:09:942] Get clientNAS = 3
[05-19_03:51:09:974] Get clientUIM = 1
[05-19_03:51:10:006] Get clientWDA = 1
[05-19_03:51:10:038] requestBaseBandVersion EC25AFAR05A04M4G
[05-19_03:51:10:166] requestGetSIMStatus SIMStatus: SIM_ABSENT
[05-19_03:51:10:166] requestSetProfile[1] Broadand///0
[05-19_03:51:10:230] requestGetProfile[1] Broadand///0
[05-19_03:51:10:262] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:10:294] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-19_03:51:10:358] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:15:414] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:20:469] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:25:525] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:30:581] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:35:637] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:40:693] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:45:749] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:50:805] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:55:861] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-19_03:51:55:861] requestSetOperatingMode(1)
[05-19_03:51:55:892] requestSetOperatingMode(0)
Could you please try to connect via ttyUSB2 and check the status of SIM?
AT+CPIN?
AT+COPS=?
AT+CSQ
hi Saeed
I yesterday can success to internet and install auto connect.
But… today still have “SIM_ABSENT” log, I am so confuse.My environment is the same to yesterday.
List some log:
at
OK
at
OK
at
OK
AT+CPIN
ERROR
AT+COPS
OK
AT+CSQ
+CSQ: 31,99
Now I install auto connect.Can I staill type “sudo ./quectel-CM -s internet” in comsole for test?
Hi,
Did you try with different sim too?
If your reconnect service is active, before running sudo ./quectel-CM -s internet
stop the reconnect service by sudo systemctl stop reconnect.service
hi Saeed
I can not reply in your response so I reply here.
“Did you try with different sim too?” —> yes I try another sim also have”AT+CPIN ERROR” result
Hi,
Just sec…..
The command need to be
AT+CPIN?
Don’t igonre the “?” mark at the end. 🙂
hi Saeed
hahaha sory for my little eyes
List some log:
sim card 1
AT+CPIN?
+CME ERROR: 10
at
OK
sim card 2
AT
OK
AT
OK
AT+CPIN?
+CME ERROR: 10
I try two sim cards but the log all “CME ERROR: 10”
Hi Could you please email us the image of your hardware setup at hello[at]sixfab [dot] com.
Everything in this tutorial goes great until step 14
I get stuck in an endless loop. Other similar posting show, make sure you do step 1. I did.
I read this could be an antenna issue. LTE Primary, GPS and LTE Diversity are plugged in solid. I’m not sure where to go.
My APN might be wrong. How do I know?
ATT = pta
ATT = broadband
and several others…
Any her would be greatly appreciated.
EC25-A
AT&T
North America
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s pta
[05-11_15:22:21:019] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-11_15:22:21:019] ./quectel-CM profile[1] = pta///0, pincode = (null)
[05-11_15:22:21:021] Find /sys/bus/usb/devices/1-1.3 idVendor=2c7c idProduct=0125
[05-11_15:22:21:021] Find /sys/bus/usb/devices/1-1.3:1.4/net/wwan0
[05-11_15:22:21:021] Find usbnet_adapter = wwan0
[05-11_15:22:21:021] Find /sys/bus/usb/devices/1-1.3:1.4/usbmisc/cdc-wdm0
[05-11_15:22:21:021] Find qmichannel = /dev/cdc-wdm0
[05-11_15:22:21:118] cdc_wdm_fd = 7
[05-11_15:22:21:200] Get clientWDS = 19
[05-11_15:22:21:233] Get clientDMS = 1
[05-11_15:22:21:265] Get clientNAS = 3
[05-11_15:22:21:297] Get clientUIM = 2
[05-11_15:22:21:329] Get clientWDA = 1
[05-11_15:22:21:361] requestBaseBandVersion EC25AFAR05A04M4G
[05-11_15:22:21:488] requestGetSIMStatus SIMStatus: SIM_READY
[05-11_15:22:21:488] requestSetProfile[1] pta///0
[05-11_15:22:21:553] requestGetProfile[1] pta///0
[05-11_15:22:21:585] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:21:617] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-11_15:22:21:681] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:26:836] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:31:988] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:37:146] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:42:905] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:48:057] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:53:944] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:22:59:097] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:23:04:921] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:23:10:072] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:23:10:072] requestSetOperatingMode(1)
[05-11_15:23:10:105] requestSetOperatingMode(0)
[05-11_15:23:10:424] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-11_15:23:11:129] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
[05-11_15:23:11:161] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UNKNOW
^C[05-11_15:23:13:625] QmiWwanThread exit
[05-11_15:23:13:626] main exit
Could you please contact your network provider to check the APN?
Could you please look at the output I get after finishing step 14 of the instructions? The first line is the commad that starts it all and the output follows
towards the end, there is a “sending discover ….” and a “no lease, failing” that seems odd. and then there is an everlasting loop. Any help is appreciated.
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s NXTGENPHONE
[10-01_12:23:17:252] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[10-01_12:23:17:253] ./quectel-CM profile[1] = NXTGENPHONE///0, pincode = (null)
[10-01_12:23:17:255] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125
[10-01_12:23:17:255] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[10-01_12:23:17:255] Find usbnet_adapter = wwan0
[10-01_12:23:17:256] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[10-01_12:23:17:256] Find qmichannel = /dev/cdc-wdm0
[10-01_12:23:17:283] cdc_wdm_fd = 7
[10-01_12:23:17:973] Get clientWDS = 19
[10-01_12:23:18:005] Get clientDMS = 1
[10-01_12:23:18:037] Get clientNAS = 3
[10-01_12:23:18:069] Get clientUIM = 1
[10-01_12:23:18:101] Get clientWDA = 1
[10-01_12:23:18:133] requestBaseBandVersion EC25AFAR05A04M4G
[10-01_12:23:18:261] requestGetSIMStatus SIMStatus: SIM_READY
[10-01_12:23:18:261] requestSetProfile[1] NXTGENPHONE///0
[10-01_12:23:18:325] requestGetProfile[1] NXTGENPHONE///0
[10-01_12:23:18:357] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:23:18:389] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[10-01_12:23:18:453] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:23:18:487] requestSetupDataCall WdsConnectionIPv4Handle: 0x871f1da0
[10-01_12:23:18:549] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[10-01_12:23:18:581] ifconfig wwan0 up
[10-01_12:23:18:589] busybox udhcpc -f -n -q -t 5 -i wwan0
[10-01_12:23:18:593] udhcpc (v1.22.1) started
No resolv.conf for interface wwan0.udhcpc
[10-01_12:23:18:705] Sending discover…
[10-01_12:23:21:798] Sending discover…
[10-01_12:23:24:908] Sending discover…
[10-01_12:23:27:998] Sending discover…
[10-01_12:23:31:087] Sending discover…
[10-01_12:23:34:203] No lease, failing
[10-01_12:24:47:445] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:25:28:277] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:25:37:237] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:25:44:917] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:13:077] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:20:885] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:28:500] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:36:180] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:43:892] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:51:572] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[10-01_12:26:59:220] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
sudo ./quectel-CM -s is a non-ending command as long as the connection is up.
requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
Shows your device is connected to an LTE connection.
You can check your connectivity on a new terminal with
ping -I wwan0 google.com
Saeed, thank you for this great guide. I too, am facing this issue of not discovering a lease, but only using the QMI based driver.
I have been using the PPP based driver successfully, but ssh is too bandwidth intensive for that driver, so I must use the QMI.
I have made a detailed post to the sixfab forums here several days ago: https://sixfab.com/forums/topic/udhcp-fails-with-no-lease-failing/
and have not received any help. Reinstallation of the driver does nothing, and I pulled the most recent copy of the installer from github as of the date of my posting.
Do you think you can help me?
Same issue here, any help would be awesome
I did a recent apt-get upgrade && dist-upgrade and after that I too am facing the problems above. For some reason, discovery on the wwan0 interface is failing. I’m trying to re-image an old backup and see if I can get my RPI4 back up and running again as 4G hotspot.
Hello,
Thank you for reaching out.
Is the problem still present?
Was rpi-update < tag> successful?
what is the output your
ls /usr/src/
?Best regards.
I’ve got an RPI4, so rpi-update should not be used according to this guide. I’ll let you know how my reinstall went.
Output of ls /usr/src/ is:
[email protected]:~/files/quectel-CM $ ls /usr/src/
linux-headers-4.19.75+ linux-headers-4.19.75-v7+ linux-headers-4.19.75-v7l+
Output of command to connect (100% sure APN is correct):
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s internet
[12-30_21:01:17:886] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[12-30_21:01:17:887] ./quectel-CM profile[1] = internet///0, pincode = (null)
[12-30_21:01:17:889] Find /sys/bus/usb/devices/1-1.4 idVendor=2c7c idProduct=0125
[12-30_21:01:17:889] Find /sys/bus/usb/devices/1-1.4:1.4/net/wwan0
[12-30_21:01:17:889] Find usbnet_adapter = wwan0
[12-30_21:01:17:889] Find /sys/bus/usb/devices/1-1.4:1.4/usbmisc/cdc-wdm0
[12-30_21:01:17:889] Find qmichannel = /dev/cdc-wdm0
[12-30_21:01:17:903] cdc_wdm_fd = 7
[12-30_21:01:18:001] Get clientWDS = 20
[12-30_21:01:18:033] Get clientDMS = 1
[12-30_21:01:18:065] Get clientNAS = 4
[12-30_21:01:18:097] Get clientUIM = 1
[12-30_21:01:18:129] Get clientWDA = 1
[12-30_21:01:18:161] requestBaseBandVersion EC25EFAR06A03M4G
[12-30_21:01:18:289] requestGetSIMStatus SIMStatus: SIM_READY
[12-30_21:01:18:290] requestSetProfile[1] internet///0
[12-30_21:01:18:354] requestGetProfile[1] internet///0
[12-30_21:01:18:386] requestRegistrationState2 MCC: 204, MNC: 16, PS: Attached, DataCap: LTE
[12-30_21:01:18:418] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[12-30_21:01:18:481] requestRegistrationState2 MCC: 204, MNC: 16, PS: Attached, DataCap: LTE
[12-30_21:01:18:514] requestSetupDataCall WdsConnectionIPv4Handle: 0x87295860
[12-30_21:01:18:577] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[12-30_21:01:18:609] ifconfig wwan0 up
[12-30_21:01:18:625] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
[12-30_21:01:19:634] requestRegistrationState2 MCC: 204, MNC: 16, PS: Attached, DataCap: LTE
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, failing
Here’s the output of the install script by the way:
Notice the error in the make output:
make -C /lib/modules/4.19.57-v7l+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.57-v7l+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
[email protected]:/lib/modules $ ls
4.19.57+ 4.19.57-v7+ 4.19.57-v7l+ 4.19.75+ 4.19.75-v7+ 4.19.75-v7l+
[email protected]:/lib/modules/4.19.57-v7l+ $ ls
kernel modules.alias.bin modules.builtin.bin modules.dep.bin modules.order modules.symbols
modules.alias modules.builtin modules.dep modules.devname modules.softdep modules.symbols.bin
[email protected]:/lib/modules/4.19.75-v7l+ $ ls
build
Full output:
[email protected]:~ $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-12-30 22:08:47– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 140.82.118.3
Connecting to github.com (github.com)|140.82.118.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2019-12-30 22:08:47– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.36.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[====================================================================================================>] 65.31K –.-KB/s in 0.02s
2019-12-30 22:08:47 (2.72 MB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
4.19.57-v7l+ based kernel found
Downloading source files
–2019-12-30 22:08:47– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving github.com (github.com)… 140.82.118.3
Connecting to github.com (github.com)|140.82.118.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip [following]
–2019-12-30 22:08:48– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.36.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 101553 (99K) [application/zip]
Saving to: ‘drivers.zip’
drivers.zip 100%[====================================================================================================>] 99.17K –.-KB/s in 0.04s
2019-12-30 22:08:48 (2.47 MB/s) – ‘drivers.zip’ saved [101553/101553]
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
busybox
The following NEW packages will be installed:
busybox udhcpc
0 upgraded, 2 newly installed, 0 to remove and 92 not upgraded.
Need to get 430 kB of archives.
After this operation, 862 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirror.transip.net/raspbian/raspbian buster/main armhf busybox armhf 1:1.30.1-4 [405 kB]
Get:2 http://mirror.transip.net/raspbian/raspbian buster/main armhf udhcpc armhf 1:1.30.1-4 [24.3 kB]
Fetched 430 kB in 1s (827 kB/s)
Selecting previously unselected package busybox.
(Reading database … 89155 files and directories currently installed.)
Preparing to unpack …/busybox_1%3a1.30.1-4_armhf.deb …
Unpacking busybox (1:1.30.1-4) …
Selecting previously unselected package udhcpc.
Preparing to unpack …/udhcpc_1%3a1.30.1-4_armhf.deb …
Unpacking udhcpc (1:1.30.1-4) …
Setting up busybox (1:1.30.1-4) …
Setting up udhcpc (1:1.30.1-4) …
Processing triggers for man-db (2.8.5-2) …
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.57-v7l+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.57-v7l+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Hello,
I have problems compiling the driver. Pls see the output:
[email protected]:/home/pi/files/drivers# make clean && make && make install
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
make -C /lib/modules/4.19.42-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.42-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c: In function ‘qmimux_register_device’:
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:286:8: error: too few arguments to function ‘netdev_upper_dev_link’
err = netdev_upper_dev_link(real_dev, new_dev);
^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:15:0:
./include/linux/netdevice.h:4208:5: note: declared here
int netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev,
^~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:309: recipe for target ‘/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o’ failed
make[2]: *** [/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o] Error 1
Makefile:1524: recipe for target ‘_module_/home/pi/files/drivers’ failed
make[1]: *** [_module_/home/pi/files/drivers] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.42-v7+’
Makefile:10: recipe for target ‘modules’ failed
make: *** [modules] Error 2
Please send the output of
ls /usr/src
uname -r
You need to change the call to “netdev_upper_dev_link(real_dev, new_dev, &dev_ack)” now it takes 3 params, I have fixed in my code, but Sixfab need to fix files otherwise the qmi_install script always overwrite mods.
Saeed, please advise as I too get the SIM_ABSENT message. Despite having an AT&T Sim card with your latest v2 shields.
Could you please try to connect via ttyUSB2 and check the status of SIM?
AT+CPIN?
AT+COPS=?
AT+CSQ
Thanks for this tutorial. I followed and was able to connect. But its disconnecting after 1min always. When i repeat “sudo ./quectel-CM -s internet” its connecting. see output below
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s JIONET
[05-21_11:58:37:018] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-21_11:58:37:019] ./quectel-CM profile[1] = JIONET///0, pincode = (null)
[05-21_11:58:37:020] Find /sys/bus/usb/devices/1-1.5 idVendor=2c7c idProduct=0125
[05-21_11:58:37:020] Find /sys/bus/usb/devices/1-1.5:1.4/net/wwan0
[05-21_11:58:37:021] Find usbnet_adapter = wwan0
[05-21_11:58:37:021] Find /sys/bus/usb/devices/1-1.5:1.4/usbmisc/cdc-wdm0
[05-21_11:58:37:021] Find qmichannel = /dev/cdc-wdm0
[05-21_11:58:37:052] /proc/2929/fd/7 -> /dev/cdc-wdm0
[05-21_11:58:37:052] /proc/2929/exe -> /home/pi/files/quectel-CM/quectel-CM
[05-21_11:58:39:067] cdc_wdm_fd = 7
[05-21_11:58:39:422] Get clientWDS = 10
[05-21_11:58:39:454] Get clientDMS = 1
[05-21_11:58:39:486] Get clientNAS = 3
[05-21_11:58:39:518] Get clientUIM = 1
[05-21_11:58:39:550] Get clientWDA = 1
[05-21_11:58:39:582] requestBaseBandVersion EC25EFAR02A09M4G
[05-21_11:58:39:710] requestGetSIMStatus SIMStatus: SIM_READY
[05-21_11:58:39:710] requestSetProfile[1] JIONET///0
[05-21_11:58:39:774] requestGetProfile[1] jionet///0
[05-21_11:58:39:806] requestRegistrationState2 MCC: 405, MNC: 861, PS: Attached, DataCap: LTE
[05-21_11:58:39:838] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-21_11:58:39:902] requestRegistrationState2 MCC: 405, MNC: 861, PS: Attached, DataCap: LTE
[05-21_11:58:39:998] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe
[05-21_11:58:45:054] requestRegistrationState2 MCC: 405, MNC: 861, PS: Attached, DataCap: LTE
[05-21_11:58:45:150] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe
[05-21_11:58:48:540] QmiWwanThread exit
[05-21_11:58:48:542] main exit
But again same issue. I have to reconnect after every 1 min.
What might be the issue here, any solutions suggestions.
Thanks in advance
What is the status of the LEDs?
What are you using as the power source? (5V 2.5A adapter is recommended)
Hi all,
As anyone managed to use the EC-25 with the qmi interface?
That “No resolv.conf for interface wwan0.udhcpc” seems to be persistent despite multiple attempt
[05-23_12:59:17:355] Sending discover…
[05-23_12:59:20:233] requestRegistrationState2 MCC: 272, MNC: 3, PS: Attached, DataCap: UMTS
[05-23_12:59:20:488] Sending discover…
[05-23_12:59:23:588] Sending discover…
[05-23_12:59:26:688] Sending discover…
[05-23_12:59:29:798] Sending discover…
[05-23_12:59:32:947] No lease, failing
I have noticed some error while installing qmi.sh but I don’t know if it is related.
[email protected]:/opt $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-05-23 12:02:27– https://sixfab.com/wp-content/uploads/2018/11/files.zip
Resolving sixfab.com (sixfab.com)… 104.28.23.189, 104.28.22.189, 2606:4700:30::681c:17bd, …
Connecting to sixfab.com (sixfab.com)|104.28.23.189|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 122805 (120K) [application/zip]
Saving to: ‘files.zip’
files.zip 100%[===============================>] 119.93K –.-KB/s in 0.1s
2019-05-23 12:02:27 (1.18 MB/s) – ‘files.zip’ saved [122805/122805]
Archive: files.zip
creating: files/
creating: files/drivers/
inflating: files/drivers/.cache.mk
creating: files/drivers/drivers/
creating: files/drivers/drivers/net/
creating: files/drivers/drivers/net/usb/
inflating: files/drivers/drivers/net/usb/qmi_wwan.c
inflating: files/drivers/drivers/net/usb/usbnet.c
creating: files/drivers/drivers/usb/
creating: files/drivers/drivers/usb/serial/
inflating: files/drivers/drivers/usb/serial/option.c
inflating: files/drivers/drivers/usb/serial/qcserial.c
inflating: files/drivers/drivers/usb/serial/usb-wwan.h
inflating: files/drivers/drivers/usb/serial/usb_wwan.c
inflating: files/drivers/drivers/usb/serial/usb_wwan.o.ur-safe
inflating: files/drivers/Makefile
creating: files/quectel-CM/
inflating: files/quectel-CM/default.script
inflating: files/quectel-CM/dhcpclient.c
inflating: files/quectel-CM/GobiNetCM.c
inflating: files/quectel-CM/main.c
inflating: files/quectel-CM/Makefile
inflating: files/quectel-CM/MPQCTL.h
inflating: files/quectel-CM/MPQMI.h
inflating: files/quectel-CM/MPQMUX.c
inflating: files/quectel-CM/MPQMUX.h
inflating: files/quectel-CM/QMIThread.c
inflating: files/quectel-CM/QMIThread.h
inflating: files/quectel-CM/QmiWwanCM.c
inflating: files/quectel-CM/quectel-qmi-proxy.c
inflating: files/quectel-CM/udhcpc.c
inflating: files/quectel-CM/util.c
inflating: files/quectel-CM/util.h
Updating rpi
Hit:1 http://archive.raspberrypi.org/debian stretch InRelease
Get:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages [11.7 MB]
Fetched 11.7 MB in 1min 15s (155 kB/s)
Reading package lists… Done
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following package was automatically installed and is no longer required:
realpath
Use ‘sudo apt autoremove’ to remove it.
The following additional packages will be installed:
busybox
The following NEW packages will be installed:
busybox udhcpc
0 upgraded, 2 newly installed, 0 to remove and 11 not upgraded.
Need to get 396 kB of archives.
After this operation, 798 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.heanet.ie/mirrors/raspbian/raspbian stretch/main armhf busybox armhf 1:1.22.0-19 [374 kB]
Get:2 http://ftp.heanet.ie/mirrors/raspbian/raspbian stretch/main armhf udhcpc armhf 1:1.22.0-19 [22.4 kB]
Fetched 396 kB in 0s (567 kB/s)
Selecting previously unselected package busybox.
(Reading database … 141575 files and directories currently installed.)
Preparing to unpack …/busybox_1%3a1.22.0-19_armhf.deb …
Unpacking busybox (1:1.22.0-19) …
Selecting previously unselected package udhcpc.
Preparing to unpack …/udhcpc_1%3a1.22.0-19_armhf.deb …
Unpacking udhcpc (1:1.22.0-19) …
Setting up busybox (1:1.22.0-19) …
Setting up udhcpc (1:1.22.0-19) …
Processing triggers for man-db (2.7.6.1-2) …
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c | xargs rm -rf
make -C /lib/modules/4.19.42-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.42-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c: In function ‘qmimux_register_device’:
/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:286:8: error: too few arguments to function ‘netdev_upper_dev_link’
err = netdev_upper_dev_link(real_dev, new_dev);
^~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.c:15:0:
./include/linux/netdevice.h:4208:5: note: declared here
int netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev,
^~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:309: recipe for target ‘/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o’ failed
make[2]: *** [/home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o] Error 1
Makefile:1524: recipe for target ‘_module_/home/pi/files/drivers’ failed
make[1]: *** [_module_/home/pi/files/drivers] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.42-v7+’
Makefile:10: recipe for target ‘modules’ failed
make: *** [modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
return 0;
^~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
After reboot please start following command
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press any key to reboot!
Any help or experience on this?
Thanks
We are working on the new kernel for QMI interface.
Be aware that new Rpi kernel 4.19.42 needs a patch to qmi_wwan.c file to be compiled.
Yes,
We are working on it now. Thank you
Hi Saeed!
Any ETA on the qmi patch for 4.19.42?
Thanks,
Balazs
Hi,
The installer file is ready. You may install it.
Please post the patch
The installation script is ready for the latest kernel.
I was able to get everything to compile successfully, but when I try to connect using my T-Mobile SIM I never get an IP address from DHCP. Any ideas why?
I’m using a new six fab mPCI-E Base Shield (for 3G, 4G/LTE mPCI-E modules V2) and Quectel EC25-A modem with the full-band LTE antenna attached.
$ sudo ./quectel-CM -s fast.t-mobile.com
[05-31_13:47:55:990] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-31_13:47:55:991] ./quectel-CM profile[1] = fast.t-mobile.com///0, pincode = (null)
[05-31_13:47:55:992] Find /sys/bus/usb/devices/1-1.3 idVendor=2c7c idProduct=0125
[05-31_13:47:55:992] Find /sys/bus/usb/devices/1-1.3:1.4/net/wwan0
[05-31_13:47:55:992] Find usbnet_adapter = wwan0
[05-31_13:47:55:993] Find /sys/bus/usb/devices/1-1.3:1.4/usbmisc/cdc-wdm0
[05-31_13:47:55:993] Find qmichannel = /dev/cdc-wdm0
[05-31_13:47:56:009] cdc_wdm_fd = 7
[05-31_13:47:56:106] Get clientWDS = 19
[05-31_13:47:56:139] Get clientDMS = 1
[05-31_13:47:56:170] Get clientNAS = 3
[05-31_13:47:56:202] Get clientUIM = 1
[05-31_13:47:56:235] Get clientWDA = 1
[05-31_13:47:56:267] requestBaseBandVersion EC25AFAR05A04M4G
[05-31_13:47:56:395] requestGetSIMStatus SIMStatus: SIM_READY
[05-31_13:47:56:395] requestSetProfile[1] fast.t-mobile.com///0
[05-31_13:47:56:459] requestGetProfile[1] fast.t-mobile.com///0
[05-31_13:47:56:491] requestRegistrationState2 MCC: 310, MNC: 260, PS: Attached, DataCap: LTE
[05-31_13:47:56:523] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-31_13:47:56:587] requestRegistrationState2 MCC: 310, MNC: 260, PS: Attached, DataCap: LTE
[05-31_13:47:56:619] requestSetupDataCall WdsConnectionIPv4Handle: 0x871f4060
[05-31_13:47:56:682] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[05-31_13:47:56:714] ifconfig wwan0 up
[05-31_13:47:56:739] busybox udhcpc -f -n -q -t 5 -i wwan0
[05-31_13:47:56:768] udhcpc (v1.22.1) started
No resolv.conf for interface wwan0.udhcpc
[05-31_13:47:56:883] Sending discover…
[05-31_13:47:59:966] Sending discover…
[05-31_13:48:03:046] Sending discover…
[05-31_13:48:06:126] Sending discover…
[05-31_13:48:46:360] Sending discover…
[05-31_13:48:49:474] No lease, failing
The installer has an update. could you please reinstall it?
I have a working connection and all is fine for many hours. Then for some reason the connection drops and the sixfab device is no longer seen via usb. lsusb does not show the device and ls/dev dos not find the ttyUSB devices. a reboot of the pi does not solve the issue. The only way to recover is to power cycle the pI which in turn power cycles the six fab shield. So it looks to me that the modem is locking up and can only be recovered by a power cycle. Is there any way to reset or power cycle the modem without having to power cycle the pi. It is a remote application and I have no way to power cycle the pi when it locks up.
Hello,
Did you try resetting the module? Use GPIO26 (The pin is used to hardware reset the module, by pulling it HIGH)
How long does the module work fine?
Thanks that is what I was looking for. The modem can stay up for days before the issue happens. I have verified that GPIO26 resets the modem but need to let it run to see if it is enough to recover from the lock up.
Please update us with your findings.
I was able to get connected with this process using the USB connection on my Raspberry Pi Cellular IoT HAT with Verizon SIM, however, is there a way to get the QMI connection to function as a WWAN using the RPi’s header instead of the USB cable? Similar to the PPP installer tutorial.
Connecting USB provides you with the wwan0 interface.
FYI, I’ve compiled the code on a new Rpi 4 under Raspbian Buster OS and it qmi interface works fine. There are warnings that probably must be fixed.
sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-07-08 19:39:04– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 192.30.253.113
Connecting to github.com (github.com)|192.30.253.113|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2019-07-08 19:39:04– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.192.133, 151.101.0.133, 151.101.64.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[===================>] 65.31K –.-KB/s in 0.06s
2019-07-08 19:39:05 (1.14 MB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
4.19.50-v7+ based kernel found
Downloading source files
–2019-07-08 19:39:05– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving github.com (github.com)… 192.30.253.113
Connecting to github.com (github.com)|192.30.253.113|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip [following]
–2019-07-08 19:39:05– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.128.133, 151.101.64.133, 151.101.0.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.128.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 101553 (99K) [application/zip]
Saving to: ‘drivers.zip’
drivers.zip 100%[===================>] 99.17K –.-KB/s in 0.09s
2019-07-08 19:39:06 (1.12 MB/s) – ‘drivers.zip’ saved [101553/101553]
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.50-v7+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to rebootsu
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:39:40 2019
[email protected]:~ $ cd files/quectel-CM/
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
[07-08_19:41:21:671] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:41:21:672] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:41:21:675] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
[email protected]:~/files/quectel-CM $ [07-08_19:40:58:812] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[1] 707
[2] 708
-bash: [07-08_19:40:58:812]: command not found
-bash: LTE_QConnectManager_Linux: command not found
-bash: Android_V1.1.45: command not found
[1]- Exit 127 [07-08_19:40:58:812] WCDMA
[2]+ Exit 127 LTE_QConnectManager_Linux
[email protected]:~/files/quectel-CM $ [07-08_19:40:58:813] ./quectel-CM profile[1] = ndo///0, pincode = (null)
-bash: syntax error near unexpected token `(‘
[email protected]:~/files/quectel-CM $ [07-08_19:40:58:816] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
-bash: syntax error near unexpected token `(‘
[email protected]:~/files/quectel-CM $ ^C^C
[email protected]:~/files/quectel-CM $ ^C
[email protected]:~/files/quectel-CM $ exit^C
[email protected]:~/files/quectel-CM $ ^C
[email protected]:~/files/quectel-CM $ cd ~
[email protected]:~ $ pwd
/home/pi
[email protected]:~ $ ls
Audio Desktop Downloads files qmi_install.sh Videos
[email protected]:~ $ wget https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh
–2019-07-08 19:43:31– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.192.133, 151.101.0.133, 151.101.64.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2120 (2.1K) [text/plain]
Saving to: ‘qmi_install.sh.1’
qmi_install.sh.1 100%[===================>] 2.07K –.-KB/s in 0s
2019-07-08 19:43:31 (9.32 MB/s) – ‘qmi_install.sh.1’ saved [2120/2120]
[email protected]:~ $ exit^C
[email protected]:~ $ ^C
[email protected]:~ $ sudo chmod +x qmi_install.sh
[email protected]:~ $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-07-08 19:44:15– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 140.82.114.4
Connecting to github.com (github.com)|140.82.114.4|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2019-07-08 19:44:16– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.192.133, 151.101.0.133, 151.101.64.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[===================>] 65.31K –.-KB/s in 0.05s
2019-07-08 19:44:16 (1.16 MB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
4.19.50-v7+ based kernel found
Downloading source files
–2019-07-08 19:44:16– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving github.com (github.com)… 140.82.114.4
Connecting to github.com (github.com)|140.82.114.4|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip [following]
–2019-07-08 19:44:16– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.128.133, 151.101.64.133, 151.101.0.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.128.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 101553 (99K) [application/zip]
Saving to: ‘drivers.zip’
drivers.zip 100%[===================>] 99.17K –.-KB/s in 0.09s
2019-07-08 19:44:17 (1.12 MB/s) – ‘drivers.zip’ saved [101553/101553]
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: *** /lib/modules/4.19.50-v7+/build: No such file or directory. Stop.
make: *** [Makefile:10: modules] Error 2
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to reboot^C
[email protected]:~ $ ^C
[email protected]:~ $ make
make: *** No targets specified and no makefile found. Stop.
[email protected]:~ $
[email protected]:~ $
[email protected]:~ $ sudo apt-get install raspberrypi-kernel-headers
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
raspberrypi-kernel-headers
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 24.9 MB of archives.
After this operation, 163 MB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian buster/main armhf raspberrypi-kernel-headers armhf 1.20190620+1-1 [24.9 MB]
Fetched 24.9 MB in 3s (7,619 kB/s)
Selecting previously unselected package raspberrypi-kernel-headers.
(Reading database … 91783 files and directories currently installed.)
Preparing to unpack …/raspberrypi-kernel-headers_1.20190620+1-1_armhf.deb …
Unpacking raspberrypi-kernel-headers (1.20190620+1-1) …
Setting up raspberrypi-kernel-headers (1.20190620+1-1) …
[email protected]:~ $ ls /usr/src
linux-headers-4.19.50+ linux-headers-4.19.50-v7l+
linux-headers-4.19.50-v7+ sense-hat
[email protected]:~ $ sudo reboot
[email protected]:~ $
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:50:37 2019
[email protected]:~ $
[email protected]:~ $
[email protected]:~ $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-07-08 19:50:49– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 192.30.253.113
Connecting to github.com (github.com)|192.30.253.113|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2019-07-08 19:50:50– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.128.133, 151.101.192.133, 151.101.0.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.128.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[===================>] 65.31K –.-KB/s in 0.07s
2019-07-08 19:50:50 (1004 KB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
4.19.50-v7+ based kernel found
Downloading source files
–2019-07-08 19:50:50– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving github.com (github.com)… 192.30.253.113
Connecting to github.com (github.com)|192.30.253.113|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip [following]
–2019-07-08 19:50:50– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.64.133, 151.101.0.133, 151.101.192.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.64.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 101553 (99K) [application/zip]
Saving to: ‘drivers.zip’
drivers.zip 100%[===================>] 99.17K –.-KB/s in 0.08s
2019-07-08 19:50:51 (1.18 MB/s) – ‘drivers.zip’ saved [101553/101553]
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.30.1-4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.50-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.50-v7+’
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.50-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.50-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.50-v7+’
cp /home/pi/files/drivers/drivers/usb/serial/option.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/usb_wwan.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/qcserial.ko /lib/modules/4.19.50-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/net/usb/qmi_wwan.ko /lib/modules/4.19.50-v7+/kernel/drivers/net/usb/
modprobe -r option qcserial qmi_wwan
depmod
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return 0;
^~~~~~
main.c: In function ‘qmidevice_detect’:
main.c:401:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~
main.c:401:13: note: ‘snprintf’ output between 11 and 520 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idVendor”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:408:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~
main.c:408:13: note: ‘snprintf’ output between 12 and 521 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s/idProduct”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:422:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name);
^~
main.c:422:13: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/net”, dir, ent->d_name ;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:448:50: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~
main.c:448:13: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/GobiQMI”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:450:54: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~
main.c:450:17: note: ‘snprintf’ output between 14 and 523 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usbmisc”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:452:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~
main.c:452:21: note: ‘snprintf’ output between 10 and 519 bytes into a destination of size 255
snprintf(subdir, sizeof(subdir), “%s/%s:1.4/usb”, dir, ent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:471:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 27 [-Wformat-truncation=]
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~
main.c:471:17: note: ‘snprintf’ output between 6 and 261 bytes into a destination of size 32
snprintf(qmifile, sizeof(qmifile), “/dev/%s”, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:474:55: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 254 [-Wformat-truncation=]
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~
main.c:474:17: note: ‘snprintf’ output between 9 and 518 bytes into a destination of size 255
snprintf(subdir2, sizeof(subdir), “%s/%s/uevent”,subdir, subent->d_name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:526:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:526:17: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/usb%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:532:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 46 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~
main.c:532:21: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/eth%s”, &ent->d_name[strlen(“qcqmi”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:523:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 45 [-Wformat-overflow=]
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~
main.c:523:17: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 64
sprintf(net_path, “/sys/class/net/wwan%s”, &ent->d_name[strlen(“cdc-wdm”)]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
udhcpc.c: In function ‘udhcpc_start’:
udhcpc.c:144:71: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 110 [-Wformat-truncation=]
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~ ~~~~~~~~~~~~~~~~
udhcpc.c:144:17: note: ‘snprintf’ output between 19 and 146 bytes into a destination of size 128
snprintf(shell_cmd, sizeof(shell_cmd), “echo 0x%08x > %s”, profile->ipv4.Address, BRIDGE_IPV4_FILE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Press ENTER key to reboot
Using username “pi”.
Authenticating with public key “imported-openssh-key”
Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 8 19:52:29 2019
[email protected]:~ $ cd files/quectel-CM/
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s ndo
[07-08_19:54:52:750] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-08_19:54:52:751] ./quectel-CM profile[1] = ndo///0, pincode = (null)
[07-08_19:54:52:753] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
[email protected]:~/files/quectel-CM $
Make sure your USB is connection and the module is powered on(if you are using cellular App shield or HAT).
NOTE: new kernel come out on PI 3 and 4. The qmi tools need to be recompiled against new kernel to work again. Re-execute the procedure described in this Sixfab tutorial.
I followed the tutorial and am getting the following output. Im using the IOT Shield.
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s h2g2
[07-22_12:59:32:468] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[07-22_12:59:32:469] ./quectel-CM profile[1] = h2g2///0, pincode = (null)
[07-22_12:59:32:472] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
Make sure your shield is connected and the module is powered up.
Yes it is connected and powered up. It does not seem to have the correct drivers. Here is my kernel: 4.19.57-v7+
The output of the install:
[email protected]:~ $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2019-07-22 15:22:10– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 140.82.114.3
Connecting to github.com (github.com)|140.82.114.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2019-07-22 15:22:10– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.184.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.184.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[=============================================================================================>] 65.31K –.-KB/s in 0.09s
2019-07-22 15:22:11 (754 KB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
4.19.57-v7+ based kernel found
Downloading source files
–2019-07-22 15:22:11– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving github.com (github.com)… 140.82.114.3
Connecting to github.com (github.com)|140.82.114.3|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip [following]
–2019-07-22 15:22:12– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/4.19.1.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.184.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.184.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 101553 (99K) [application/zip]
Saving to: ‘drivers.zip’
drivers.zip 100%[=============================================================================================>] 99.17K –.-KB/s in 0.1s
2019-07-22 15:22:12 (776 KB/s) – ‘drivers.zip’ saved [101553/101553]
Archive: drivers.zip
creating: /home/pi/files/drivers/
creating: /home/pi/files/drivers/.git/
extracting: /home/pi/files/drivers/.git/COMMIT_EDITMSG
extracting: /home/pi/files/drivers/.git/HEAD
inflating: /home/pi/files/drivers/.git/config
inflating: /home/pi/files/drivers/.git/description
creating: /home/pi/files/drivers/.git/hooks/
inflating: /home/pi/files/drivers/.git/hooks/applypatch-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/fsmonitor-watchman.sample
inflating: /home/pi/files/drivers/.git/hooks/post-update.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-applypatch.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-commit.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-push.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-rebase.sample
inflating: /home/pi/files/drivers/.git/hooks/pre-receive.sample
inflating: /home/pi/files/drivers/.git/hooks/prepare-commit-msg.sample
inflating: /home/pi/files/drivers/.git/hooks/update.sample
inflating: /home/pi/files/drivers/.git/index
creating: /home/pi/files/drivers/.git/info/
inflating: /home/pi/files/drivers/.git/info/exclude
creating: /home/pi/files/drivers/.git/logs/
inflating: /home/pi/files/drivers/.git/logs/HEAD
creating: /home/pi/files/drivers/.git/logs/refs/
creating: /home/pi/files/drivers/.git/logs/refs/heads/
inflating: /home/pi/files/drivers/.git/logs/refs/heads/master
creating: /home/pi/files/drivers/.git/objects/
creating: /home/pi/files/drivers/.git/objects/03/
extracting: /home/pi/files/drivers/.git/objects/03/5c2935335b6c52c0815f35c9d1575f5c29a59f
creating: /home/pi/files/drivers/.git/objects/19/
extracting: /home/pi/files/drivers/.git/objects/19/5ba83612ad35f67e55c282e64ea5b637313113
creating: /home/pi/files/drivers/.git/objects/25/
extracting: /home/pi/files/drivers/.git/objects/25/926acedbfa6265c542319e1938b3bdd90ee485
creating: /home/pi/files/drivers/.git/objects/39/
extracting: /home/pi/files/drivers/.git/objects/39/dec0a7d5ff21373eacc04b3bdb45ae21bc5d09
creating: /home/pi/files/drivers/.git/objects/61/
extracting: /home/pi/files/drivers/.git/objects/61/3f91add03da189c0fd5334cbccbbf720060079
creating: /home/pi/files/drivers/.git/objects/6e/
extracting: /home/pi/files/drivers/.git/objects/6e/bd8c4cc4d3e73319f0b11790d417da1ec690fa
creating: /home/pi/files/drivers/.git/objects/72/
extracting: /home/pi/files/drivers/.git/objects/72/a55b6b421184c4fb69411ba3d0150e6c337a88
creating: /home/pi/files/drivers/.git/objects/91/
extracting: /home/pi/files/drivers/.git/objects/91/2472f26e4f6c5a9ad30357f7a47d9a3085a1d9
creating: /home/pi/files/drivers/.git/objects/92/
extracting: /home/pi/files/drivers/.git/objects/92/cb4b634d343b2fda1752788c459aa21b5e00b2
creating: /home/pi/files/drivers/.git/objects/a7/
extracting: /home/pi/files/drivers/.git/objects/a7/52b118ac3c4bc0714022c869ce41093bce9710
creating: /home/pi/files/drivers/.git/objects/b4/
extracting: /home/pi/files/drivers/.git/objects/b4/28445756a9e7994114e7aee3a9ea1b5b2ac994
creating: /home/pi/files/drivers/.git/objects/d2/
extracting: /home/pi/files/drivers/.git/objects/d2/8dab4b9effcd5d766bb76fa2e2d92de7dcd4f1
creating: /home/pi/files/drivers/.git/objects/e7/
inflating: /home/pi/files/drivers/.git/objects/e7/2ad9f81c73973b86bd7992c0f331039a8192bf
creating: /home/pi/files/drivers/.git/objects/f0/
extracting: /home/pi/files/drivers/.git/objects/f0/9393322edaf3f9356d5ab816db40e21d78f7aa
creating: /home/pi/files/drivers/.git/refs/
creating: /home/pi/files/drivers/.git/refs/heads/
extracting: /home/pi/files/drivers/.git/refs/heads/master
inflating: /home/pi/files/drivers/99-quectel-modem.rules
inflating: /home/pi/files/drivers/Makefile
creating: /home/pi/files/drivers/drivers/
creating: /home/pi/files/drivers/drivers/net/
creating: /home/pi/files/drivers/drivers/net/usb/
inflating: /home/pi/files/drivers/drivers/net/usb/qmi_wwan.c
creating: /home/pi/files/drivers/drivers/usb/
creating: /home/pi/files/drivers/drivers/usb/serial/
inflating: /home/pi/files/drivers/drivers/usb/serial/option.c
inflating: /home/pi/files/drivers/drivers/usb/serial/qcserial.c
inflating: /home/pi/files/drivers/drivers/usb/serial/usb-wwan.h
inflating: /home/pi/files/drivers/drivers/usb/serial/usb_wwan.c
Installing udhcpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
udhcpc is already the newest version (1:1.22.0-19).
0 upgraded, 0 newly installed, 0 to remove and 31 not upgraded.
Copying udhcpc default script
Change directory to /home/pi/files/drivers
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.57-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.57-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.57-v7+’
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.57-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.57-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/option.o
CC [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.o
CC [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.o
Building modules, stage 2.
MODPOST 4 modules
CC /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/net/usb/qmi_wwan.ko
CC /home/pi/files/drivers/./drivers/usb/serial/option.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/option.ko
CC /home/pi/files/drivers/./drivers/usb/serial/qcserial.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/qcserial.ko
CC /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.mod.o
LD [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.ko
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.57-v7+’
cp /home/pi/files/drivers/drivers/usb/serial/option.ko /lib/modules/4.19.57-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/usb_wwan.ko /lib/modules/4.19.57-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/usb/serial/qcserial.ko /lib/modules/4.19.57-v7+/kernel/drivers/usb/serial/
cp /home/pi/files/drivers/drivers/net/usb/qmi_wwan.ko /lib/modules/4.19.57-v7+/kernel/drivers/net/usb/
modprobe -r option qcserial qmi_wwan
depmod
Change directory to /home/pi/files/quectel-CM
rm -rf quectel-CM *~
rm -rf quectel-qmi-proxy
gcc -Wall -s quectel-qmi-proxy.c -o quectel-qmi-proxy -lpthread -ldl
gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread -ldl
main.c: In function ‘kill_brothers’:
main.c:299:5: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
if (ls_dir(“/proc”, is_brother_process, argv))
^~
main.c:302:2: note: …this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
return 0;
^~~~~~
MPQMUX.c:36:25: warning: ‘qmi_ctl_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_ctl_CtlFlags[] = {
^~~~~~~~~~~~~~~~
MPQMUX.c:25:25: warning: ‘qmi_QMIType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_QMIType[] = {
^~~~~~~~~~~
MPQMUX.c:20:25: warning: ‘qmi_CtlFlags’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_CtlFlags[] = {
^~~~~~~~~~~~
MPQMUX.c:16:25: warning: ‘qmi_IFType’ defined but not used [-Wunused-const-variable=]
static const QMI_NAME_T qmi_IFType[] = {
^~~~~~~~~~
After reboot please follow commands mentioned below
go to /home/pi/files/quectel-CM and run sudo ./quectel-CM -s [YOUR APN]
Make sure the shield is connected via USB.
Hi I have same issue, I have 5v 2.5A power supply . using IOT HAT and I have USB connected. What can I be missing ? Had issues in your other ppp tutorial so switch to qmi. As off now I haven’t had luck and been trying for a while. Any help appreciated. Thanks
IT was my USB cable, I switched and its trying to connect now. Thanks
Hello there, how do I connect using PAP with a username and password?
How do I change the existing config that you have outlined in your tutorial to use a different apn with username and password including auto connect?
Thanks
Usage: ./quectel-CM [-s [apn [user password auth]]] [-p pincode]
Example: ./quectel-CM -s 3gnet carl 1234 0 -p 1234
For existing config you can edit /usr/src/qmi_reconnect.sh according to your configuration.
Hi Saeed,
In step 11 guide says “Make sure the module is disconnected before running the installer script”… What does it mean disconnected?
a. Remove the shield altogether?
b. Remove Quectel from its slot on the shield but leave the shield on the rpi
c. Keep shield and Quectel module on the rpi but remove (unplug) usb cable that goes from rpi to the shield.
Another question
Is there a way to use the shield without using the usb cable at all? Usb cable connection totally contradicts the use of a shield.
Thanks
Keeping the USB of the Shield disconnected. (Option C)
QMI interface works via USB only.
Hello guys i would like to add something about using this tutorial on RPi 4. Do not attach the shield until step 14. It was the only way i could make this setup work
Thank you for your feedback.
I’ve got this device working but I’m struggling to work out how to get information regarding signal strength from the device. I’ve searched far and wide on Google but can’t find anything that works for me. Ideally I’d like to log this to a file.
Thank you in advance for your help.
I followed all the steps in the tutorial and everything seemed to be working fine up until step 14.
After I type the command: sudo ./quectel-CM -s internet, I get and endless loop of messages that reads something like this:
[09-23_20:00:35:740] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe
[09-23_20:00:35:740] requestSetOperatingMode(1)
[09-23_20:00:35:773] requestSetOperatingMode(0)
[09-23_20:00:37:277] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[09-23_20:00:38:909] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UMTS
[09-23_20:00:38:941] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UMTS
[09-23_20:00:38:973] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UMTS
[09-23_20:00:40:607] requestRegistrationState2 MCC: 310, MNC: 410, PS: Detached, DataCap: UMTS
[09-23_20:00:40:669] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: UMTS
[09-23_20:00:40:734] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: UMTS
[09-23_20:00:51:742] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe
[09-23_20:00:56:797] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: UMTS
[09-23_20:00:56:862] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe
…
…
…
and on and on
Any suggestions where I might have gone wrong?
Thank you.
Hello.
This command gets into endless looop…
You can check your connection by pinging in a new ternimal.
ping -I wwan0 google.com
But if I am understanding correctly, this is the command that I need to execute to get connected to LTE. If its execution fails, it means I am not connected, right?
In other words, how can I make “sudo ./quectel-CM -s internet” work? shouldn’t this or something like this be executed before I can ping something?
Hi Saeed
Can I use “RASPBERRY PI ZERO WH” in this tutorial
Thank you for your help
Yes, you can use it. Let me know if you face any issue.
On kernel 4.19.75-v7+, RPI3+, I get error when “make” drivers:
rm -rf *~ .tmp_versions modules.order Module.symvers
find . -type f -name *~ -o -name *.o -o -name *.ko -o -name *.cmd -o -name *.mod.c -o -name *.ur-safe | xargs rm -rf
make -C /lib/modules/4.19.75-v7+/build M=/home/pi/files/drivers modules
make[1]: Entering directory ‘/usr/src/linux-headers-4.19.75-v7+’
CC [M] /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o
/bin/sh: 1: scripts/genksyms/genksyms: Exec format error
make[2]: *** [scripts/Makefile.build:310: /home/pi/files/drivers/./drivers/usb/serial/usb_wwan.o] Error 2
make[1]: *** [Makefile:1519: _module_/home/pi/files/drivers] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-4.19.75-v7+’
make: *** [Makefile:10: modules] Error 2
What’s wrong?
It was working perfectly with 4.19.66 kernel.
Dome
Dear Sir,
I setup all your scripts as per your instructions. On boot up immediately the connectivity is established. To check if the connectivity is maintained I start ping to google.com, after some time the ping response fails and on restarting ping all ping packets are lost. On reboot, without restarting the Modem, the connectivity starts working again.
In the above case the reconnect service should have got the connectivity back working.
Can we identify the issue?
I am using EC25 with RPi 3 A+
Thanks for the scripts!
Regards
Hi.
Please share the whole log of
sudo ./quectel-CM -s internet
Thank you.
Hi,
I have installed the software to make the auto_connect.
But how can I uninstall this ? Or how to turn it off if I don’t want to connect automatically via QMI anymore ?
Thanks for your time.
Hi.
sudo systemctl disable qmi_reconnect.service
Best regards.
Hello,
can you make a Tutorial about how to check Signal Information.
Only thing i can make runnin is minicom and at+csq. This is very few information and i also get a CSQ: 26,99. Which is very sad.
Kind Regards
Hi.
Thank you for feedback.
Hi,
How can i uninstall everything,
or uninstall wwan0 ?
Hello,
You must stop or remove the QMI service.
sudo systemctl stop reconnect.service
sudo systemctl disable reconnect.service
I have wasted a week on this. I followed instructions exactly and it disables my keyboard – can’t even log in!
Hello,
I’m sorry about that. What is the problem? How can I help you?
Could you please share more details like, which module/Shield/HAT are you using with which RPi? Which OS are you using?
Also, share the log if you have. Where does the keyboard get disabled?
Have a nice day!
Does it work with UC20-G? I could not get connection with RP4 and UC20-G also RP3 and UC20-G. However, it worked with RP4 and EC25.
Hi,
Thank you for your feedback. Could you please mention your location of use? Which operator are you using?
Hi,
My operator is Turkcell from Turkey.
By the way, my UC20-G module already had been working with RP3 with older tutorial. However, it is not working with the new QMI tutorial. I use raspbian-stretch. ifconfig log is;
wwan0: flags=4163 mtu 1500
inet 31.140.150.9 netmask 255.255.255.252 broadcast 31.140.150.11
inet6 fe80::efc9:c6cc:c4e4:abce prefixlen 64 scopeid 0x20
ether be:a1:e6:34:e9:eb txqueuelen 1000 (Ethernet)
RX packets 86 bytes 4926 (4.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37 bytes 7832 (7.6 KiB)
TX errors 0 dropped 253 overruns 0 carrier 0 collisions 0
Hi,
I get this error message when trying:
sudo ./quectel-CM -s internet
[12-02_21:06:50:554] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[12-02_21:06:50:555] ./quectel-CM profile[1] = internet///0, pincode = (null)
[12-02_21:06:50:557] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
I already tried plugging and unplugging the device and it seems to be powered on. The blue LED is blinking rather slow (1 sec on, very shortly off).
Also, I made a fresh install of Raspbian Lite.
Hello,
Make sure the shield is connected via USB.
If not, just try it via USB.
Best regards.
Hi,
thanks for your answer. It seems that either the micro usb-Port of the base shield or the 90° cable might have a loose connection. When I held it in my hand and then run the sudo ./quectel-CM -s internet command it worked, and I noticed that I pushed on the tip of the cable.
Is there a place to buy a new 90° cable?
Thanks in advance and best regards.
Hello,
Sorry I do not know. This cable is convenient.
Have a nice day.
Hello everybody
I succesfully installed qmi_install and I can navigate through internet. It is ok !
But I would like to access my RPI3B from internet, I found his public ip adress, but it is impossible to access via ssh. In my local network, it works fine.
Do I have to open port somewhere in QMI connection ?
Thanks for helping
Serge
The public IP you found probably isn’t the real public IP and you are behind carrier grade NAT (CG-NAT). Unless your mobile provider supports port forwarding or gives you a private IP-address (which is unlikely), you can’t just SSH in. Perhaps a reverse SSH-tunnel using auto-ssh or add-on software can help you.
Hello Mark
Thanks for your answer.
Effectively, using a reverse SSH-tunnel is succesfull.
It works perfectly.
Hi Saeed and Everyone,
I have a Raspberry Pi 3G/4G<E Base HAT running on a raspberry pi 3. I got the GPS working and made some edits to suit my needs however there are three things I cant seem to get working after following the instructions:
1. SMS — I am using the the guide and I just keep getting “ATE1″ whenever I run the python code. What am I doing wrong?
2. Sixfab Connect — I just cant seem to get this to work either. The device have never showed up on the dashboard.
2. QMI — I followed the instructions over and over and I cant get this to work. I did get PPP to work however I need more speed. I am using a Digicel Dominica 3G SIM card and get the rolling on
wwan0:
[email protected]:~ $ ifconfig wwan0
wwan0: flags=4163 mtu 1500
inet 10.133.255.161 netmask 255.255.255.252 broadcast 10.133.255.163
inet6 fe80::d973:54a5:e1b9:a24c prefixlen 64 scopeid 0x20
ether d2:71:4f:6b:00:f9 txqueuelen 1000 (Ethernet)
RX packets 9 bytes 858 (858.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 57 bytes 11500 (11.2 KiB)
TX errors 0 dropped 18 overruns 0 carrier 0 collisions 0
The service status:
[email protected]:~ $ sudo systemctl status qmi_reconnect.service
● qmi_reconnect.service – QMI Auto Connection
Loaded: loaded (/etc/systemd/system/qmi_reconnect.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-01-05 18:51:20 GMT; 3min 8s ago
Main PID: 539 (sh)
Tasks: 4 (limit: 2200)
Memory: 4.1M
CGroup: /system.slice/qmi_reconnect.service
├─539 /bin/sh /usr/src/qmi_reconnect.sh
├─620 sudo ./quectel-CM -s web.digiceloecs.com
└─625 ./quectel-CM -s web.digiceloecs.com
Jan 05 18:51:35 raspberrypi sh[539]: udhcpc: sending discover
Jan 05 18:51:38 raspberrypi sh[539]: udhcpc: sending discover
Jan 05 18:51:41 raspberrypi sh[539]: udhcpc: sending discover
Jan 05 18:51:54 raspberrypi sh[539]: udhcpc: sending discover
Jan 05 18:51:57 raspberrypi sh[539]: udhcpc: sending discover
Jan 05 18:51:57 raspberrypi sh[539]: udhcpc: sending select for 10.132.210.63
Jan 05 18:51:57 raspberrypi sh[539]: udhcpc: lease of 10.132.210.63 obtained, lease time 7200
Jan 05 18:51:57 raspberrypi sh[539]: ip: RTNETLINK answers: Network is unreachable
Jan 05 18:51:57 raspberrypi sh[539]: Too few arguments.
Jan 05 18:51:57 raspberrypi udhcpc[783]: wwan0: bound: IP=10.132.210.63/255.255.255.128 router=10.132.210.1 domain=”” dns=”8.8
lines 1-21/21 (END)
When I run quectel-CM:
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s web.digiceloecs.com
[01-05_18:45:56:066] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[01-05_18:45:56:067] ./quectel-CM profile[1] = web.digiceloecs.com///0, pincode = (null)
[01-05_18:45:56:069] Find /sys/bus/usb/devices/1-1.2 idVendor=05c6 idProduct=9003
[01-05_18:45:56:069] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[01-05_18:45:56:069] Find usbnet_adapter = wwan0
[01-05_18:45:56:070] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[01-05_18:45:56:070] Find qmichannel = /dev/cdc-wdm0
[01-05_18:45:56:084] /proc/659/fd/7 -> /dev/cdc-wdm0
[01-05_18:45:56:085] /proc/659/exe -> /home/pi/files/quectel-CM/quectel-CM
[01-05_18:45:58:087] cdc_wdm_fd = 7
[01-05_18:45:58:196] Get clientWDS = 4
[01-05_18:45:58:199] Get clientDMS = 4
[01-05_18:45:58:200] Get clientNAS = 4
[01-05_18:45:58:202] Get clientUIM = 4
[01-05_18:45:58:204] Get clientWDA = 1
[01-05_18:45:58:206] requestBaseBandVersion UC20GQCR03A16E1G 1 [2014/05/05 9:00:00]
[01-05_18:45:58:214] requestGetSIMStatus SIMStatus: SIM_READY
[01-05_18:45:58:214] requestSetProfile[1] web.digiceloecs.com///0
[01-05_18:45:58:264] requestGetProfile[1] web.digiceloecs.com///0
[01-05_18:45:58:266] requestRegistrationState MCC: 338, MNC: 5, PS: Attached, DataCap: HSDPA
[01-05_18:45:58:269] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[01-05_18:45:58:274] requestRegistrationState MCC: 338, MNC: 5, PS: Attached, DataCap: HSDPA
[01-05_18:46:04:260] requestSetupDataCall WdsConnectionIPv4Handle: 0x0141ac80
[01-05_18:46:04:264] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[01-05_18:46:04:268] ifconfig wwan0 up
[01-05_18:46:04:279] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
Too few arguments.
udhcpc: sending discover
udhcpc: sending select for 10.133.82.194
udhcpc: lease of 10.133.82.194 obtained, lease time 7200
Too few arguments.
[01-05_18:46:07:336] ifconfig wwan0 down
[01-05_18:46:07:349] ifconfig wwan0 0.0.0.0
[01-05_18:46:07:375] QmiWwanThread exit
[01-05_18:46:07:376] main exit
Thanks in advance,
PaPa
Hello,
QMI seems to have worked successfully but then failed.
Have you tried another SIM?
Could you also enclose the PPP log, I’d like to check some status for comparison.
Hello Ensar,
I can only use one provider here so I am stuck with this sim for now. How do I get the ppp log?
Regards,
Papa
The command you need :
sudo pon
If you have not installed PPP, install it here: https://docs.sixfab.com/docs/ppp-installer-for-base-hat
Please share in detail on the community.
Hi i use Telia in Norway and got this errror, works great with PPP but always get when trying to use QMI which i really need.
RPi4 with newest sixfab 4g/lte board.
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s telia
[01-23_09:16:35:737] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[01-23_09:16:35:738] ./quectel-CM profile[1] = telia///0, pincode = (null)
[01-23_09:16:35:739] Find /sys/bus/usb/devices/1-1.1 idVendor=2c7c idProduct=0125
[01-23_09:16:35:739] Find /sys/bus/usb/devices/1-1.1:1.4/net/wwan0
[01-23_09:16:35:739] Find usbnet_adapter = wwan0
[01-23_09:16:35:740] Find /sys/bus/usb/devices/1-1.1:1.4/usbmisc/cdc-wdm0
[01-23_09:16:35:740] Find qmichannel = /dev/cdc-wdm0
[01-23_09:16:35:753] /proc/873/fd/7 -> /dev/cdc-wdm0
[01-23_09:16:35:753] /proc/873/exe -> /home/pi/files/quectel-CM/quectel-CM
[01-23_09:16:37:754] cdc_wdm_fd = 7
[01-23_09:16:37:852] Get clientWDS = 20
[01-23_09:16:37:884] Get clientDMS = 1
[01-23_09:16:37:916] Get clientNAS = 4
[01-23_09:16:37:949] Get clientUIM = 1
[01-23_09:16:37:980] Get clientWDA = 1
[01-23_09:16:38:012] requestBaseBandVersion EC25EFAR06A04M4G
[01-23_09:16:38:141] requestGetSIMStatus SIMStatus: SIM_READY
[01-23_09:16:38:141] requestSetProfile[1] telia///0
[01-23_09:16:38:205] requestGetProfile[1] telia///0
[01-23_09:16:38:237] requestRegistrationState2 MCC: 242, MNC: 2, PS: Attached, DataCap: LTE
[01-23_09:16:38:269] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[01-23_09:16:38:333] requestRegistrationState2 MCC: 242, MNC: 2, PS: Attached, DataCap: LTE
[01-23_09:16:38:492] requestSetupDataCall WdsConnectionIPv4Handle: 0x871e3ba0
[01-23_09:16:38:556] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[01-23_09:16:38:589] ifconfig wwan0 up
[01-23_09:16:38:600] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
[01-23_09:16:47:582] requestDeactivateDefaultPDP err = 0
[01-23_09:16:47:582] ifconfig wwan0 down
udhcpc: read error: Network is down, reopening socket
[01-23_09:16:47:600] ifconfig wwan0 0.0.0.0
[01-23_09:16:47:774] QmiWwanThread exit
[01-23_09:16:47:775] main exit
Hi
How can i install and use two base shields at the same time?
I would like wwan0 (base shield 1) and wwan1 (base shield 2) both have ip address and internet connection. At the moment one base shield is ok and connected to internet and second base shield connected on top of it. It shows as wwa0, but doesn’t have ip address or connection.
Any tips & tricks for easy or not that easy setup?
thanks!
Sorry correcting: Second base shield shows as wwan1. wwan0 is ok, wwan1 needs ip and connection.
my bad
Works like a charm on the pi 4, thanks for these great instructions. Regarding step 14 there is a site https://www.4gapn.com/us/en/t-mobile that you can find the correct apn for your carrier in case anyone needs this.
Hello,
Thank you for your feedback.
Best.
Hi, I am cracking my mind installing this on Hypriot OS. It is a debian/raspbian based OS with full docker capabilities. We are evaluating this shields for a major client in Chile, but it is mandatory for us to run on Hypriot (only OS with docker for RPi)
I am using RPI 3B+ and Cellular IoT HAT.
$ ls /usr/src
linux-headers-4.19.66+ linux-headers-4.19.66-v7+ reconnect.sh
>> firmware updated for 4.19.66 following instructions
On Raspbian: Configuration for the QMI using the beta plataform works great. Apparently no need to setup PAP credentials (not asked anywhere in the config)
On Hypriot: I followed this tutorial and read every comment. I am stuck in this step (bam.entelpcs.cl is the local internet provider in chile)
$ sudo ./quectel-CM -s bam.entelpcs.cl
[02-12_20:12:39:349] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[02-12_20:12:39:351] ./quectel-CM profile[1] = bam.entelpcs.cl///0, pincode = (null)
[02-12_20:12:39:354] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules
No more verbose after that.
Cable is ok, and the shield is powered (the same hardware and sim worked in raspbian).
Hello,
This error message occurs when the USB is not connected or the HAT is not powered.
There seems to be a problem working with Hypriot OS.
If you want, ask in the community.
Maybe there are people using it with Hypriot OS.
Hi,
I have a problem to connect with QMI, i get a IP- Address, but ping always fails.
With PPP is no problem and it works fine.
Before the installation i typed sudo apt-get update && sudo apt-get upgrade.
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s everywhere
[02-14_16:32:27:573] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[02-14_16:32:27:573] ./quectel-CM profile[1] = everywhere///0, pincode = (null)
[02-14_16:32:27:574] Find /sys/bus/usb/devices/1-1.3 idVendor=05c6 idProduct=9003
[02-14_16:32:27:574] Find /sys/bus/usb/devices/1-1.3:1.4/net/wwan0
[02-14_16:32:27:574] Find usbnet_adapter = wwan0
[02-14_16:32:27:574] Find /sys/bus/usb/devices/1-1.3:1.4/usbmisc/cdc-wdm0
[02-14_16:32:27:574] Find qmichannel = /dev/cdc-wdm0
[02-14_16:32:27:591] cdc_wdm_fd = 7
[02-14_16:32:27:606] Get clientWDS = 3
[02-14_16:32:27:609] Get clientDMS = 3
[02-14_16:32:27:613] Get clientNAS = 3
[02-14_16:32:27:617] Get clientUIM = 3
[02-14_16:32:27:621] Get clientWDA = 1
[02-14_16:32:27:625] requestBaseBandVersion UC20GQCR03A16E1G 1 [2014/05/05 9:00:00]
[02-14_16:32:27:641] requestGetSIMStatus SIMStatus: SIM_READY
[02-14_16:32:27:641] requestSetProfile[1] everywhere///0
[02-14_16:32:27:685] requestGetProfile[1] everywhere///0
[02-14_16:32:27:689] requestRegistrationState MCC: 234, MNC: 30, PS: Attached, DataCap: EDGE
[02-14_16:32:27:693] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[02-14_16:32:27:701] requestRegistrationState MCC: 234, MNC: 30, PS: Attached, DataCap: EDGE
[02-14_16:32:28:487] requestSetupDataCall WdsConnectionIPv4Handle: 0x0141ac80
[02-14_16:32:28:493] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[02-14_16:32:28:495] ifconfig wwan0 up
[02-14_16:32:28:520] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending select for 10.6.68.38
udhcpc: lease of 10.6.68.38 obtained, lease time 7200
Too few arguments.
Too few arguments.
[02-14_16:33:57:325] requestRegistrationState MCC: 234, MNC: 30, PS: Attached, DataCap: EDGE
Hi,
Which raspberry pi model are you using?
Did you check your connection after this output?
Best.
Hi ensar,
I use Raspberry pi 4 and like in the Software Setup explained i skipped the steps for the RPI4.
Yeahh i checked the connection.
I tried to install the finish image what you provide with QMI and it works fine with these.
Best regards
Hello,
Does the device switch from Edge to 4g when it’s possible automatically?
And is there a command, that gives information about the DataCap?
It depends on your configuration. You can use AT+QCFG=”nwscanmode”(Network Search Mode Configuration) and AT+QNWINFO(Query Network Information) commands.
Any chance to get this driver for ubuntu 18.04 LTS? do you plan to support other OS on raspberry pi 4 too?
Hi,
Unfortunately, We do not have experience with other OS, except Raspbian and Ubuntu Core, with RPI for now.
Best regards.
Hi,
I’m able to make/receive a call using AT COMMAND but Mic/Speaker didn’t work(mic/speaker work with others).
Can you please share how to enable mic/speaker for call?
Hi,
This HAT/Shield does not have an audio codec, as a result it lacks voice call feature.
Hi Saeed,
The tutorial worked perfectly for DHCP.
Now I have a static public IP and can’t figure out how to stop the ARP requests. I am using an EC25A on Base Hat on Rpi4 with a iot.tmowhosale.static APN.
Secondary issue: unable to keep wan0 & wwan0 connections operating parallel – they knock each other off like rockem’ sockem’ robots…
Any help is appreciated.
Thanks, Mark
Hello,
For me it works well with PPP and QMI interface.
I don’t know how to get information about 4G signal strength?
Is there a command to get the info?
Thanks in advance
Hi,
To assist you better, please share your issue/question in the community in detail.
Best regards.
hi everyone;
How Can I fix it?
[email protected]:~/Downloads $ sudo ./qmi_install.sh
Clear Files
Change directory to /home/pi
Downloading source files
–2020-03-26 02:52:10– https://github.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/raw/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving github.com (github.com)… 140.82.118.4
Connecting to github.com (github.com)|140.82.118.4|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip [following]
–2020-03-26 02:52:11– https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/src/quectel-CM.zip
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.240.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.240.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 66876 (65K) [application/zip]
Saving to: ‘quectel-CM.zip’
quectel-CM.zip 100%[====================================================>] 65.31K –.-KB/s in 0.1s
2020-03-26 02:52:12 (503 KB/s) – ‘quectel-CM.zip’ saved [66876/66876]
Archive: quectel-CM.zip
creating: /home/pi/files/quectel-CM/
inflating: /home/pi/files/quectel-CM/util.h
inflating: /home/pi/files/quectel-CM/util.c
inflating: /home/pi/files/quectel-CM/udhcpc.c
inflating: /home/pi/files/quectel-CM/quectel-qmi-proxy.c
inflating: /home/pi/files/quectel-CM/QmiWwanCM.c
inflating: /home/pi/files/quectel-CM/QMIThread.h
inflating: /home/pi/files/quectel-CM/QMIThread.c
inflating: /home/pi/files/quectel-CM/MPQMUX.h
inflating: /home/pi/files/quectel-CM/MPQMUX.c
inflating: /home/pi/files/quectel-CM/MPQMI.h
inflating: /home/pi/files/quectel-CM/MPQCTL.h
inflating: /home/pi/files/quectel-CM/Makefile
inflating: /home/pi/files/quectel-CM/main.c
inflating: /home/pi/files/quectel-CM/GobiNetCM.c
inflating: /home/pi/files/quectel-CM/dhcpclient.c
inflating: /home/pi/files/quectel-CM/default.script
Checking Kernel
Driver for 4.9.35-v7+ kernel not found
pi[email protected]:~/Downloads $ ls /usr/src/
FFmpeg linux-headers-4.9.35+ linux-headers-4.9.35-v7+ sense-hat x264
[email protected]:~/Downloads $ uname -r
4.9.35-v7+
[email protected]:~/Downloads $
Hi,
To assist you better, please share your problem in the community in detail.
Best regards.
Dear Sir or Madame,
I got a new try. I means I formatted my SD card and I did again the full install including reinstalling the last version of Raspbian. I also connected my Raspberry with an Ethernet cable to my home router. In that way, I have not configured the RPi3 WiFi.
First, I have short question, do I need to enable that option: B2 Wait for Network at Boot ?
I then run: sudo ./quectel-CM -s gprs.swisscom.ch -p 1234 -f /var/log/sixfab_log.txt
Here is my output:
sudo ./quectel-CM -s gprs.swisscom.ch -p 3223 -f /var/log/sixfab_log.txt
[03-26_01:07:16:162] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[03-26_01:07:16:162] ./quectel-CM profile[1] = gprs.swisscom.ch///0, pincode = 1234
[03-26_01:07:16:164] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125
[03-26_01:07:16:164] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[03-26_01:07:16:165] Find usbnet_adapter = wwan0
[03-26_01:07:16:165] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[03-26_01:07:16:165] Find qmichannel = /dev/cdc-wdm0
[03-26_01:07:16:181] cdc_wdm_fd = 8
[03-26_01:07:16:263] Get clientWDS = 20
[03-26_01:07:16:295] Get clientDMS = 1
[03-26_01:07:16:327] Get clientNAS = 4
[03-26_01:07:16:359] Get clientUIM = 1
[03-26_01:07:16:393] Get clientWDA = 1
[03-26_01:07:16:423] requestBaseBandVersion EC25EFAR06A04M4G
[03-26_01:07:16:552] requestGetSIMStatus SIMStatus: SIM_PIN
[03-26_01:07:16:616] requestSetProfile[1] gprs.swisscom.ch///0
[03-26_01:07:16:681] requestGetProfile[1] gprs.swisscom.ch///0
[03-26_01:07:16:713] requestRegistrationState2 MCC: 228, MNC: 1, PS: Detached, DataCap: UNKNOW
[03-26_01:07:16:744] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[03-26_01:07:16:808] requestRegistrationState2 MCC: 228, MNC: 1, PS: Detached, DataCap: UNKNOW
[03-26_01:07:17:961] requestRegistrationState2 MCC: 228, MNC: 1, PS: Detached, DataCap: EDGE
[03-26_01:07:17:993] requestRegistrationState2 MCC: 228, MNC: 1, PS: Detached, DataCap: EDGE
[03-26_01:07:18:025] requestRegistrationState2 MCC: 228, MNC: 1, PS: Detached, DataCap: EDGE
[03-26_01:07:20:680] requestRegistrationState2 MCC: 228, MNC: 1, PS: Attached, DataCap: EDGE
[03-26_01:07:20:745] requestRegistrationState2 MCC: 228, MNC: 1, PS: Attached, DataCap: EDGE
[03-26_01:07:21:065] requestSetupDataCall WdsConnectionIPv4Handle: 0x871bb840
[03-26_01:07:21:129] requestRegistrationState2 MCC: 228, MNC: 1, PS: Attached, DataCap: EDGE
[03-26_01:07:21:161] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[03-26_01:07:21:225] ifconfig wwan0 up
[03-26_01:07:21:256] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending select for 10.123.37.209
udhcpc: lease of 10.123.37.209 obtained, lease time 7200
Too few arguments.
Too few arguments.
The prompt did not come back and it stay at “Twoo few argument”?
That normal?
I open a new terminal and I log into my raspberry. I run ifconfig wwan0 and I got an IP
wwan0: flags=4291 mtu 1500
inet 10.1xx.37.209 netmask 255.255.255.252 broadcast 10.1xx.37.211
inet6 fe80::b5ff:b507:9b4:701a prefixlen 64 scopeid 0x20
ether 0e:ef:01:f7:13:e5 txqueuelen 1000 (Ethernet)
RX packets 6 bytes 1400 (1.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 48 bytes 8867 (8.6 KiB)
TX errors 0 dropped 10 overruns 0 carrier 0 collisions 0
Then I f I go to my first terminal and I press ctrl+c, the ifconfig does not show an IP. I supposed that normal?
Another question. You say we can follow some additional step to auto-connect at boot. But in your example you only show how add the APN, but nothing about PIN code and log. Should be worry about that, at those steps?
Last last question, how can I set the SSID to be able to connect with my laptop throught WiFi or with another devise?
Many thank fro your support and help and I wish you a nice week
Cheers
Hi,
To assist you better, please share your issue/question in the community in detail.
Best regards.
why am I capped at EDGE Speed ?
requestRegistrationState2 MCC: 302, MNC: 720, PS: Attached, DataCap: EDGE
I use the Raspberry Pi Cellular IoT HAT – LTE-M & NB-IoT & eGPRS
My sim supports LTE. I am in Canada.
Chipset is BG96MA-128-SGN
Hi,
It depends on your configuration. You can use AT+QCFG=”nwscanmode”(Network Search Mode Configuration) and AT+QNWINFO(Query Network Information) commands.
Hi,
Thanks for the instructions, this just worked straight from the box.
I have a special SIM that has two APNs (private and public), is there anyway I can get both APNs active at the same time. Every time I start the second APN connection, the first connection terminates?
Reading the EC25 datasheet, the module can support this feature.
Cheers
Hi
I am not much familiar with linux infrastructure, but I think it is a better idea to call quectel-cm whenever a qmi_wwan is loaded. It must be something related to udev?
Hi,
Thank you for the feedback!
Can you explain a little bit?
To configure Sprint APN Settings you should have to make sure that your mobile data is in on mode so that you can set to APN and MMS Settings for Sprint LTE 4G. https://www.apnsettingss.com/sprint-apn-settings/
Anyone familiar with the GNSS part?
HW: RPi4+shield V2 + sierra wireless MC7304 (+lte-antenna).
Communicating with the pi through wifi using putty, Pi is running raspbian.
I’m able to retrieve LTE-data but cannot get GNSS data when running commands. This is the error i get when running –loc start & –loc-get-position-report:
“error: couldn’t create client for the ‘loc’ service: QMI protocol error (31): ‘InvalidServiceType'”
Any ideas on why this happens? Using ppp but dont think that should interfere with the GNSS part?
Hello!
I was wondering what kind of an external antenna I should use with my Arduino NB-IoT Shield? How many millimetres should the connector be? And would this kind of (https://www.robotistan.com/gsmhucresel-quad-bant-anten-ufl-konektor-ince-sticker-tip) an antenna would be okay?
Thank you!
Also posted this in the community but no response there… Hopefully I can get a response here because its getting pretty frustrating. Problem is that my SIM card is not detected anymore. All worked well until yesterday. SIM slot looks OK to me. No wear or damages there. SIM works fine in my phone. Tried other SIM’s (my wife’s….!) and same problem. It keeps telling me no SIM is inserted.
AT+CSQ
+CSQ: 11,99
OK
AT+CPIN?
+CME ERROR: 10
AT+COPS=?
+COPS: (1,”T-Mobile NL”,”TMO NL”,”20416″,0),(1,”NL KPN”,”NL KPN”,”20408″,0),(1,”vodafone NL”,”voda NL”,”20404″,0),(1)
OK
sudo ./quectel-CM -s smartsites.t-mobile -p 0000
[05-28_14:16:53:002] WCDMA<E_QConnectManager_Linux&Android_V1.1.45
[05-28_14:16:53:003] ./quectel-CM profile[1] = smartsites.t-mobile///0, pincode = 0000
[05-28_14:16:53:006] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125
[05-28_14:16:53:006] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[05-28_14:16:53:006] Find usbnet_adapter = wwan0
[05-28_14:16:53:006] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[05-28_14:16:53:006] Find qmichannel = /dev/cdc-wdm0
[05-28_14:16:53:037] cdc_wdm_fd = 7
[05-28_14:16:53:136] Get clientWDS = 5
[05-28_14:16:53:169] Get clientDMS = 1
[05-28_14:16:53:200] Get clientNAS = 3
[05-28_14:16:53:232] Get clientUIM = 1
[05-28_14:16:53:264] Get clientWDA = 1
[05-28_14:16:53:296] requestBaseBandVersion EC25EFAR06A04M4G
[05-28_14:16:53:424] requestGetSIMStatus SIMStatus: SIM_ABSENT
[05-28_14:16:53:424] requestSetProfile[1] smartsites.t-mobile///0
[05-28_14:16:53:489] requestGetProfile[1] smartsites.t-mobile///0
[05-28_14:16:53:521] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:16:53:552] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-28_14:16:53:617] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:16:58:673] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:03:729] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:08:785] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:13:841] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:18:897] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:23:953] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:29:009] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:34:065] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:39:121] requestRegistrationState2 MCC: 204, MNC: 8, PS: Detached, DataCap: UNKNOW
[05-28_14:17:39:121] requestSetOperatingMode(1)
[05-28_14:17:39:152] requestSetOperatingMode(0)
[05-28_14:17:39:569
and then this goes on forever…
Can anyone please advise?
I followed the instructions here, and ended up with the “no lease, failing” message reported by a few other people.
[email protected]:~/files/quectel-CM $ sudo ./quectel-CM -s apn
[08-06_10:31:57:758] Quectel_QConnectManager_Linux_V1.5.9
[08-06_10:31:57:759] Find /sys/bus/usb/devices/1-1.1.2 idVendor=0x2c7c idProduct=0x125, bus=0x001, dev=0x007
[08-06_10:31:57:760] Auto find qmichannel = /dev/cdc-wdm0
[08-06_10:31:57:760] Auto find usbnet_adapter = wwan0
[08-06_10:31:57:760] netcard driver = qmi_wwan, driver version = 22-Aug-2005
[08-06_10:31:57:760] Modem works in QMI mode
[08-06_10:31:57:772] cdc_wdm_fd = 7
[08-06_10:31:57:864] Get clientWDS = 20
[08-06_10:31:57:896] Get clientDMS = 1
[08-06_10:31:57:928] Get clientNAS = 4
[08-06_10:31:57:960] Get clientUIM = 1
[08-06_10:31:57:993] Get clientWDA = 1
[08-06_10:31:58:025] requestBaseBandVersion EC25AUFAR06A03M4G
[08-06_10:31:58:153] requestGetSIMStatus SIMStatus: SIM_READY
[08-06_10:31:58:153] requestSetProfile[1] apn///0
[08-06_10:31:58:217] requestGetProfile[1] apn///0
[08-06_10:31:58:249] requestRegistrationState2 MCC: 505, MNC: 1, PS: Attached, DataCap: LTE
[08-06_10:31:58:280] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[08-06_10:31:58:281] ifconfig wwan0 down
[08-06_10:31:58:298] ifconfig wwan0 0.0.0.0
[08-06_10:31:58:345] requestSetupDataCall WdsConnectionIPv4Handle: 0x871dba60
[08-06_10:31:58:474] ifconfig wwan0 up
[08-06_10:31:58:482] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, failing
I was working from the latest Rapsberry Pi OS Lite at https://www.raspberrypi.org/downloads/raspberry-pi-os/ currently dated 2020-05-27.
I noticed that this OS is kernel version 4.19.118, and then after running through the “sudo apt upgrade” at step 1 in the instructions here the kernel version was 5.4.51. I tried instead restarting the process from scratch with the 4.19.118 OS and skipping the upgrade – then the quectel-CM script worked fine, and was able to get a lease. I’m not sure if the problem is specifically related to the kernel version, or to something else in the OS upgrade.
I discovered this forum post from a couple of weeks ago:
https://community.sixfab.com/t/solution-to-failed-to-get-dhcp-lease/600
The solution described there (add “denyinterfaces wwan0” to bottom of /etc/dhcpcd.conf) fixed the problem, even with the OS upgrade.
Hello,
I am having a problem when attempting step 14. I have no issues until that point, running Raspbian.
When I cd to /files/quectel-CM
and then type ./quectel-CM -s followed by the apn,
I receive a “command not found” error.
The information i must say, literally worked well for me. also, i have found that the Jumaru https://sixfab.com/qmi-interface-with-sixfab-shields-hats/#comment-147515 has mentioned the correct info.
You can also visit this https://apn.global/us/t-mobile-apn/ 2nd URL in order to get the exact information.