How to use 4G Module on NanoPC-T4
Contents
1 Using 4G Module EC20 on Android
1.1 Hardware Setup
Connect an EC20 module to a USB to miniPCIe board and connect the board to an ARM board's USB Host. Here is a hardware setup:
Power on the board and you will be able to surf the internet with the 4G module like using an Android phone.
1.2 Activate EC20's GPS Functions
By default GPS functions are disabled in Android. If GPS functions are enabled in Android but no GPS module is detected Android will continuously output log messages. After an EC20 module is connected you can enable GPS functions.
To enable the GPS functions open the "vendor/quectel/ec20/BoardConfigPartial.mk" file and change the following line:
BOARD_HAS_GPS := false
to
BOARD_HAS_GPS := true
and recompile Android。
2 Using 4G Module EC20 on FriendlyDesktop
2.1 Step1:Edit connections
In the upper right corner of the FriendlyDesktop desktop, click on the network icon and select "Edit connections" from the pop-up menu.:
2.2 Step2:Add mobile network setting
Click the "+" plus button in the lower left corner:
Select "Mobile Broadband" from the menu that appears:
2.3 Step3:Set up 4G connection
Select "Next" directly in "Set up a Mobile Broadband Connection" dialog:
In the area selection that appears, choose your region, I choose "China" here, there will be China's service providers, will list China Mobile and China Unicom, I use China Mobile's card, so choose "China" Mobile":
In the "Choose your billing plan" dialog, select Internet, then click Next:
In the confirmation dialog box, click "Apply", in the following dialog box, click "Save" to save the settings:
2.4 Step4:Dial-up connection 4G network
In the upper right corner of the FriendlyDesktop desktop, click the network icon, and select “Chine Mobile Internet 1” in the pop-up menu to dial the 4G network. If the password input box is displayed, input 0000:
The following picture browsing a web page on a 4G network:
3 Using 4G Module EC20 on FriendlyCore
3.1 Step1:Compile the quectel-CM command line tool on the development board
Compile and install quectel-CM into the /usr/bin/ directory by entering the following command:
git clone https://github.com/friendlyarm/quectel-cm.git cd quectel-cm/ make cp quectel-CM /usr/bin/
3.2 Step2:Add udhcpc script
The quectel-CM tool will call the udhcpc script. we need to create a udhcpc script for it. Please create a new file with the editor you are familiar with. The file name is: /usr/share/udhcpc/default.script, the content is as follows:
#!/bin/sh # udhcpc script edited by Tim Riker <Tim@Rikers.org> [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 RESOLV_CONF="/etc/resolv.conf" [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" case "$1" in deconfig) /sbin/ifconfig $interface 0.0.0.0 ;; renew|bound) /sbin/ifconfig $interface $ip $BROADCAST $NETMASK if [ -n "$router" ] ; then echo "deleting routers" while route del default gw 0.0.0.0 dev $interface ; do : done for i in $router ; do route add default gw $i dev $interface done fi echo -n > $RESOLV_CONF [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF for i in $dns ; do echo adding dns $i echo nameserver $i >> $RESOLV_CONF done ;; esac exit 0
Assign executable permissions with the following command:
chmod 755 /usr/share/udhcpc/default.script
3.3 Step3:Start 4G dialing
Start the dialing by entering the following command:
quectel-CM &
If the dialing is successful, the screen will output information such as the IP address, as shown below:
root@NanoPC-T4:~# quectel-CM & [1] 5364 root@NanoPC-T4:~# [05-15_08:23:13:719] WCDMA<E_QConnectManager_Linux&Android_V1.1.34 [05-15_08:23:13:720] quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null) [05-15_08:23:13:721] Find /sys/bus/usb/devices/3-1 idVendor=2c7c idProduct=0125 [05-15_08:23:13:722] Find /sys/bus/usb/devices/3-1:1.4/net/wwan0 [05-15_08:23:13:722] Find usbnet_adapter = wwan0 [05-15_08:23:13:723] Find /sys/bus/usb/devices/3-1:1.4/usbmisc/cdc-wdm0 [05-15_08:23:13:723] Find qmichannel = /dev/cdc-wdm0 [05-15_08:23:13:739] cdc_wdm_fd = 7 [05-15_08:23:13:819] Get clientWDS = 18 [05-15_08:23:13:851] Get clientDMS = 2 [05-15_08:23:13:884] Get clientNAS = 2 [05-15_08:23:13:915] Get clientUIM = 1 [05-15_08:23:13:947] Get clientWDA = 1 [05-15_08:23:13:979] requestBaseBandVersion EC20CEFHLGR06A01M1G_OCPU_BETA1210 [05-15_08:23:14:043] requestSetEthMode QMUXResult = 0x1, QMUXError = 0x46 [05-15_08:23:14:075] requestGetSIMStatus SIMStatus: SIM_READY [05-15_08:23:14:107] requestGetProfile[1] cmnet///0 [05-15_08:23:14:139] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE [05-15_08:23:14:171] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED [05-15_08:23:14:235] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE [05-15_08:23:14:938] requestSetupDataCall WdsConnectionIPv4Handle: 0xe16e4540 [05-15_08:23:15:002] requestQueryDataCall IPv4ConnectionStatus: CONNECTED [05-15_08:23:15:036] ifconfig wwan0 up [05-15_08:23:15:052] busybox udhcpc -f -n -q -t 5 -i wwan0 [05-15_08:23:15:062] udhcpc (v1.23.2) started [05-15_08:23:15:077] Sending discover... [05-15_08:23:15:093] Sending select for 10.22.195.252... [05-15_08:23:15:105] Lease of 10.22.195.252 obtained, lease time 7200 [05-15_08:23:15:118] deleting routers SIOCDELRT: No such process [05-15_08:23:15:132] adding dns 221.179.38.7 [05-15_08:23:15:132] adding dns 120.196.165.7
3.4 Test 4G connection
Ping a domain name to see if DNS resolution is already working:
root@NanoPC-T4:~# ping www.baidu.com PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data. 64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=1 ttl=56 time=74.3 ms 64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=2 ttl=56 time=25.1 ms 64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=3 ttl=56 time=30.8 ms 64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=4 ttl=56 time=29.1 ms 64 bytes from 183.232.231.174 (183.232.231.174): icmp_seq=5 ttl=56 time=29.2 ms
3.5 Test the speed of 4G
wget -O - https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python
The test results obtained are as follows:
Retrieving speedtest.net configuration... Testing from China Mobile Guangdong (117.136.40.167)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by ChinaTelecom-GZ (Guangzhou) [2.51 km]: 62.726 ms Testing download speed................................................................................ Download: 32.93 Mbit/s Testing upload speed................................................................................................ Upload: 5.58 Mbit/s