carl@ubuntu:~$ sudo apt-get install vim git busybox dos2unix ... [ 7964.969080] usbserial: USB Serial support registered for GSM modem (1-port).
1. remove and install some software carl@ubuntu:~$ sudo apt-get update carl@ubuntu:~$ sudo apt-get remove modemmanager carl@ubuntu:~$ sudo apt-get install vim git busybox dos2unix 2. get Quectel Linux Drivers Package, and extract it carl@ubuntu:~$ ls quectel_linux_20161116.zip quectel_linux_20161116.zip carl@ubuntu:~$ unzip -x quectel_linux_20161116.zip carl@ubuntu:~$ cd quectel_linux/ carl@ubuntu:~/quectel_linux$ ls Quectel_Android_GPS_SR01A05V07.tgz Quectel_Android_RIL_Driver_User_Guide_V1.5.pdf Quectel_Android_RIL_SR01A40V43.tgz Quectel_Linux_CMUX_SR01A07V01.tgz Quectel_Linux_ConnectManager_SR01A01V23.tgz Quectel_Linux_GobiNet_SR01A02V16.tgz Quectel_Linux_PPP_Scripts_SR01A01V01.tgz Quectel_Linux_RIL.zip Quectel_Linux_USB_Drivers_Sample_SR01A01V01.tgz Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.6.pdf 3. install Quectel Linux USB drivers carl@ubuntu:~/quectel_linux$ tar -xf Quectel_Linux_USB_Drivers_Sample_SR01A01V01.tgz carl@ubuntu:~/quectel_linux$ cd Quectel_USB_Drivers_Sample/ carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample$ ls 2.6.14 2.6.24 2.6.28.10 2.6.32.27 3.13.0 3.19.0 3.5.0 4.0.9 3.1 check ubuntu's Linux Kernel Version, for example 3.19.0 carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample$ uname -r 3.19.0-25-generic 3.2 for my kernel version is 3.19.0, so switch to 3.19.0 carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample$ cd 3.19.0/ 3.3 run command "git diff" to see the modify descried in Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.6.pdf carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0$ git diff 3.3 run command "make install" to install drivers for UC15/UC20/EC20/EC25, including usb-serial-option usb-cd-acm qmi_wwan carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0$ sudo 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 make -C /lib/modules/3.19.0-25-generic/build M=/home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0 modules make[1]: Entering directory `/usr/src/linux-headers-3.19.0-25-generic' CC [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/class/cdc-acm.o CC [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/usb_wwan.o CC [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/option.o CC [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/qcserial.o CC [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/net/usb/qmi_wwan.o Building modules, stage 2. MODPOST 5 modules CC /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/net/usb/qmi_wwan.mod.o LD [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/net/usb/qmi_wwan.ko CC /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/class/cdc-acm.mod.o LD [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/class/cdc-acm.ko CC /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/option.mod.o LD [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/option.ko CC /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/qcserial.mod.o LD [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/qcserial.ko CC /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/usb_wwan.mod.o LD [M] /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/./drivers/usb/serial/usb_wwan.ko make[1]: Leaving directory `/usr/src/linux-headers-3.19.0-25-generic' cp /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/drivers/usb/serial/option.ko /lib/modules/3.19.0-25-generic/kernel/drivers/usb/serial/ cp /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/drivers/usb/serial/usb_wwan.ko /lib/modules/3.19.0-25-generic/kernel/drivers/usb/serial/ cp /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/drivers/usb/serial/qcserial.ko /lib/modules/3.19.0-25-generic/kernel/drivers/usb/serial/ cp /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/drivers/usb/class/cdc-acm.ko /lib/modules/3.19.0-25-generic/kernel/drivers/usb/class/ cp /home/carl/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0/drivers/net/usb/qmi_wwan.ko /lib/modules/3.19.0-25-generic/kernel/drivers/net/usb/ modprobe -r option qcserial cdc-acm qmi_wwan depmod 4. now reboot your computer, and inster Quectel Modules carl@ubuntu:~/quectel_linux/Quectel_USB_Drivers_Sample/3.19.0$ sudo dmesg [ 7964.109503] usb 1-2: new high-speed USB device number 5 using ehci-pci [ 7964.473003] usb 1-2: New USB device found, idVendor=2c7c, idProduct=0125 [ 7964.473009] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 7964.473012] usb 1-2: Product: Android [ 7964.473014] usb 1-2: Manufacturer: Android [ 7964.964431] usbcore: registered new interface driver usbserial [ 7964.964668] usbcore: registered new interface driver usbserial_generic [ 7964.964856] usbserial: USB Serial support registered for generic [ 7964.965017] usb_wwan: module verification failed: signature and/or required key missing - tainting kernel [ 7964.969013] usbcore: registered new interface driver option [ 7964.969080] usbserial: USB Serial support registered for GSM modem (1-port) [ 7964.969135] option 1-2:1.0: GSM modem (1-port) converter detected [ 7964.969397] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0 [ 7964.969461] option 1-2:1.1: GSM modem (1-port) converter detected [ 7964.969726] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1 [ 7964.969780] option 1-2:1.2: GSM modem (1-port) converter detected [ 7964.969943] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2 [ 7964.970003] option 1-2:1.3: GSM modem (1-port) converter detected [ 7964.970163] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3 [ 7964.987915] usbcore: registered new interface driver cdc_wdm [ 7964.989197] qmi_wwan 1-2:1.4: cdc-wdm0: USB WDM device [ 7964.989199] qmi_wwan 1-2:1.4: Quectel EC21&EC25 work on RawIP mode [ 7964.991341] qmi_wwan 1-2:1.4 wwan0: register 'qmi_wwan' at usb-0000:02:03.0-2, WWAN/QMI device, 72:0a:3c:b4:8b:dd [ 7964.991651] usbcore: registered new interface driver qmi_wwan 5. Test AT Commands carl@ubuntu:~/quectel_linux$ sudo busybox microcom /dev/ttyUSB2 at OK at+cops? +COPS: 0,0,"CHN-UNICOM",7 OK ati Quectel EC25 Revision: EC25EFAR02A04M4G OK at+cgreg? +CGREG: 0,1 OK +CMTI: "ME",7 5. Test PPP carl@ubuntu:~/quectel_linux$ tar -xf Quectel_Linux_PPP_Scripts_SR01A01V01.tgz carl@ubuntu:~/quectel_linux$ cd linux-ppp-scripts/ carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ ls ip-up quectel-chat-disconnect quectel-pppd.sh readme quectel-chat-connect quectel-ppp quectel-ppp-kill carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ dos2unix * carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ sudo cp quectel-chat-connect /etc/ppp/peers/ carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ sudo cp quectel-chat-disconnect /etc/ppp/peers/ carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ sudo cp quectel-ppp /etc/ppp/peers/ carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ pppd call quectel-ppp & pppd options in effect: debug # (from /etc/ppp/peers/quectel-ppp) nodetach # (from /etc/ppp/peers/quectel-ppp) dump # (from /etc/ppp/peers/quectel-ppp) noauth # (from /etc/ppp/peers/quectel-ppp) user test # (from /etc/ppp/peers/quectel-ppp) password ?????? # (from /etc/ppp/peers/quectel-ppp) remotename 3gppp # (from /etc/ppp/peers/quectel-ppp) /dev/ttyUSB3 # (from /etc/ppp/peers/quectel-ppp) ...... Could not determine remote IP address: defaulting to 10.64.64.64 local IP address 10.21.95.21 remote IP address 10.64.64.64 primary DNS address 58.242.2.2 secondary DNS address 218.104.78.2 Script /etc/ppp/ip-up started (pid 14501) Script /etc/ppp/ip-up finished (pid 14501), status = 0x0 carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:10.21.95.21 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:666 (666.0 B) TX bytes:233 (233.0 B) carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 58.242.2.2 nameserver 218.104.78.2 carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 Use Iface 0 ppp0 0 ppp0 carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ ping www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121: icmp_seq=1 ttl=53 time=50.4 ms 64 bytes from 61.135.169.121: icmp_seq=2 ttl=53 time=53.2 ms carl@ubuntu:~/quectel_linux/linux-ppp-scripts$ sudo killall pppd Terminating on signal 15 Connect time 0.1 minutes. Sent 113 bytes, received 370 bytes. 6. Test qmi_wwan and quectel-CM carl@ubuntu:~/quectel_linux$ tar -xf Quectel_Linux_ConnectManager_SR01A01V23.tgz carl@ubuntu:~/quectel_linux$ cd quectel-CM/ carl@ubuntu:~/quectel_linux/quectel-CM$ chmod a+x default.script carl@ubuntu:~/quectel_linux/quectel-CM$ dos2unix default.script carl@ubuntu:~/quectel_linux/quectel-CM$ sudo mkdir -p /etc/udhcpc carl@ubuntu:~/quectel_linux/quectel-CM$ sudo cp default.script /etc/udhcpc/ carl@ubuntu:~/quectel_linux/quectel-CM$ make rm -rf quectel-CM *~ gcc -Wall -s QmiWwanCM.c GobiNetCM.c main.c MPQMUX.c QMIThread.c util.c udhcpc.c -o quectel-CM -lpthread carl@ubuntu:~/quectel_linux/quectel-CM$ sudo ./quectel-CM & [1] 14884 carl@ubuntu:~/quectel_linux/quectel-CM$ [12-07_21:58:05:085] Quectel_Linux_ConnectManager_SR01A01V23 [12-07_21:58:05:090] ./quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null) [12-07_21:58:05:090] Find qmichannel = /dev/cdc-wdm0 [12-07_21:58:05:090] Find usbnet_adapter = wwan0 [12-07_21:58:05:099] cdc_wdm_fd = 7 [12-07_21:58:05:138] Get clientWDS = 19 [12-07_21:58:05:150] Get clientDMS = 1 [12-07_21:58:05:162] Get clientNAS = 3 [12-07_21:58:05:176] Get clientUIM = 1 [12-07_21:58:05:185] Get clientWDA = 1 [12-07_21:58:05:195] requestBaseBandVersion EC25EFAR02A04M4G 1 [Nov 10 2016 17:00:00] [12-07_21:58:05:220] requestGetSIMStatus SIMStatus: SIM_READY [12-07_21:58:05:232] requestGetProfile[1] 3gnet///0 [12-07_21:58:05:242] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE [12-07_21:58:05:250] requestQueryDataCall ConnectionStatus: DISCONNECTED [12-07_21:58:05:266] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE [12-07_21:58:05:294] requestSetupDataCall WdsConnectionIPv4Handle: 0x8798d620 [12-07_21:58:05:305] requestQueryDataCall ConnectionStatus: CONNECTED [12-07_21:58:05:319] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory) [12-07_21:58:05:321] udhcpc (v1.21.1) started [12-07_21:58:05:323] Sending discover... [12-07_21:58:05:331] Sending select for 10.21.95.21... [12-07_21:58:05:337] Lease of 10.21.95.21 obtained, lease time 7200 [12-07_21:58:05:342] /etc/udhcpc/default.script: Resetting default routes SIOCDELRT: No such process [12-07_21:58:05:344] /etc/udhcpc/default.script: Adding DNS 58.242.2.2 [12-07_21:58:05:345] /etc/udhcpc/default.script: Adding DNS 218.104.78.2 carl@ubuntu:~/quectel_linux/quectel-CM$ ifconfig wwan0 wwan0 Link encap:Ethernet HWaddr 72:0a:3c:b4:8b:dd inet addr:10.21.95.21 Bcast:10.21.95.23 Mask:255.255.255.252 inet6 addr: fe80::700a:3cff:feb4:8bdd/64 Scope:Link UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:979 (979.0 B) TX bytes:5996 (5.9 KB) carl@ubuntu:~/quectel_linux/quectel-CM$ cat /etc/resolv.conf nameserver 58.242.2.2 nameserver 218.104.78.2 carl@ubuntu:~/quectel_linux/quectel-CM$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref 0.0.0.0 10.21.95.22 0.0.0.0 UG 0 0 10.21.95.20 0.0.0.0 255.255.255.252 U 0 0 Use Iface 0 wwan0 0 wwan0 carl@ubuntu:~/quectel_linux/quectel-CM$ ping www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121: icmp_seq=1 ttl=53 time=48.4 ms 64 bytes from 61.135.169.121: icmp_seq=2 ttl=53 time=51.0 ms ^C --- www.a.shifen.com ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 48.497/49.763/51.029/1.266 ms carl@ubuntu:~/quectel_linux/quectel-CM$ sudo killall quectel-CM [12-07_21:58:38:375] requestDeactivateDefaultPDP err = 0 [12-07_21:58:38:442] QmiWwanThread exit [12-07_21:58:38:443] main exit 7. Test GobiNet and quectel-CM carl@ubuntu:~/quectel_linux$ tar -xf Quectel_Linux_GobiNet_SR01A02V16.tgz carl@ubuntu:~/quectel_linux$ cd GobiNet/ carl@ubuntu:~/quectel_linux/GobiNet$ sudo make install ln -sf makefile Makefile make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.19.0-25-generic/build M=/home/carl/quectel_linux/GobiNet modules make[1]: Entering directory `/usr/src/linux-headers-3.19.0-25-generic' CC [M] /home/carl/quectel_linux/GobiNet/GobiUSBNet.o CC [M] /home/carl/quectel_linux/GobiNet/QMIDevice.o CC [M] /home/carl/quectel_linux/GobiNet/QMI.o LD [M] /home/carl/quectel_linux/GobiNet/GobiNet.o Building modules, stage 2. MODPOST 1 modules CC /home/carl/quectel_linux/GobiNet/GobiNet.mod.o LD [M] /home/carl/quectel_linux/GobiNet/GobiNet.ko make[1]: Leaving directory `/usr/src/linux-headers-3.19.0-25-generic' mkdir -p /lib/modules/`uname -r`/kernel/drivers/net/usb/ cp -f GobiNet.ko /lib/modules/`uname -r`/kernel/drivers/net/usb/ depmod modprobe -r GobiNet modprobe GobiNet carl@ubuntu:~/quectel_linux/GobiNet$ sudo modprobe -r qmi_wwan GobiNet carl@ubuntu:~/quectel_linux/GobiNet$ sudo modprobe -a GobiNet carl@ubuntu:~/quectel_linux/GobiNet$ sudo dmesg -c [ 8806.862480] usbcore: deregistering interface driver qmi_wwan [ 8806.862525] qmi_wwan 1-2:1.4 wwan0: unregister 'qmi_wwan' usb-0000:02:03.0-2, WWAN/QMI device [ 8806.889236] usbcore: deregistering interface driver cdc_wdm [ 8811.077980] usbcore: deregistering interface driver GobiNet [ 8816.321967] GobiNet: Quectel_Linux_GobiNet_SR01A02V16 [ 8816.337375] GobiNet 1-2:1.4 eth1: register 'GobiNet' at usb-0000:02:03.0-2, GobiNet Ethernet 8a:91:bf:c2:a1:46 [ 8816.342153] creating qcqmi1 [ 8816.344985] usbcore: registered new interface driver GobiNet Device, carl@ubuntu:~/quectel_linux/quectel-CM$ sudo ./quectel-CM & [1] 15324 carl@ubuntu:~/quectel_linux/quectel-CM$ [12-07_22:02:50:987] Quectel_Linux_ConnectManager_SR01A01V23 [12-07_22:02:50:992] ./quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null) [12-07_22:02:50:992] Find qmichannel = /dev/qcqmi1 [12-07_22:02:50:993] Find usbnet_adapter = eth1 [12-07_22:02:51:020] Get clientWDS = 7 [12-07_22:02:51:028] Get clientDMS = 8 [12-07_22:02:51:038] Get clientNAS = 9 [12-07_22:02:51:048] Get clientUIM = 10 [12-07_22:02:51:060] Get clientWDA = 11 [12-07_22:02:51:070] requestBaseBandVersion EC25EFAR02A04M4G 1 [Nov 10 2016 17:00:00] [12-07_22:02:51:092] requestGetSIMStatus SIMStatus: SIM_READY [12-07_22:02:51:107] requestGetProfile[1] 3gnet///0 [12-07_22:02:51:116] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE [12-07_22:02:51:124] requestQueryDataCall ConnectionStatus: DISCONNECTED [12-07_22:02:51:143] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE [12-07_22:02:51:172] requestSetupDataCall WdsConnectionIPv4Handle: 0x8798d620 [12-07_22:02:51:196] requestQueryDataCall ConnectionStatus: CONNECTED [12-07_22:02:51:211] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory) [12-07_22:02:51:233] udhcpc (v1.21.1) started [12-07_22:02:51:237] Sending discover... [12-07_22:02:51:244] Sending select for 10.21.95.21... [12-07_22:02:51:247] Lease of 10.21.95.21 obtained, lease time 7200 [12-07_22:02:51:251] /etc/udhcpc/default.script: Resetting default routes SIOCDELRT: No such process [12-07_22:02:51:254] /etc/udhcpc/default.script: Adding DNS 58.242.2.2 [12-07_22:02:51:254] /etc/udhcpc/default.script: Adding DNS 218.104.78.2Microsoft Word 2010 Microsoft Word 2010