20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20
1、h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz 在WIN10下使用7-ZIP解压缩/ubuntu20.04下使用tar
 2、Win32DiskImager.exe 写如32GB的TF卡。【以管理员身份运行】
 3、TF卡如果已经做过会有3个磁盘分区,可以使用SD Card Formatter/SDCardFormatterv5_WinEN.zip格式化TF卡。DiskGenius可以尝试。
 制作好Ubuntu core22.04.3系统的IMG固件之后,还需要你编辑TF卡中的文件:
 1、修改H:\eflasher.conf
 autoStart=/mnt/sdcard/friendlycore-jammy
 autoExit=true
2、root@NanoPi-NEO-Core:/opt# vi run-eflasher.sh 
 root@NanoPi-NEO-Core:/opt# cat run-eflasher.sh 
 poweroff
如果能够直接编辑IMG固件就好了。到时候写TF卡之后不需要每次都来编辑这两个文件。
 20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20
 2025/5/20 14:51
 缘起:公司将来要在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时使用移远的4G模块EC200A-CN。
 但是先买的是EC20。现在也就是废物利用了。
 也许/可能在有订单之前还不会确定最终用哪一款了!
 友善之臂预编译的IMG固件就已经适配好EC20了:h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz
 但是还是需要你在开发板上编译quectel-CM命令行拨号程序。



 简略步骤:
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ cat /etc/issue
 pi@NanoPi-NEO-Core:~$ uname -a
 pi@NanoPi-NEO-Core:~$ lsusb
 pi@NanoPi-NEO-Core:~$ ifconfig
 pi@NanoPi-NEO-Core:~$ su
 Password: 
 root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# ifconfig
 root@NanoPi-NEO-Core:/home/pi# cd /
 root@NanoPi-NEO-Core:/# ll
 root@NanoPi-NEO-Core:/# git clone https://github.com/friendlyarm/quectel-cm.git
 root@NanoPi-NEO-Core:/# ll
 root@NanoPi-NEO-Core:/# tar zcvf quectel-cm00h3.tar.gz quectel-cm/
 root@NanoPi-NEO-Core:/# ll
 root@NanoPi-NEO-Core:/# cd quectel-cm
 root@NanoPi-NEO-Core:/quectel-cm# ll
 root@NanoPi-NEO-Core:/quectel-cm# make
 root@NanoPi-NEO-Core:/quectel-cm# ll
 root@NanoPi-NEO-Core:/quectel-cm# file quectel-CM 
 quectel-CM: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=e6ccab2315d3741204bff9196fbd7abc0c2f3e18, not stripped
 root@NanoPi-NEO-Core:/quectel-cm# 
 root@NanoPi-NEO-Core:/quectel-cm# cp quectel-CM /usr/bin/
 root@NanoPi-NEO-Core:/quectel-cm# sync
 root@NanoPi-NEO-Core:/quectel-cm# cd /
 root@NanoPi-NEO-Core:/# quectel-CM &
 root@NanoPi-NEO-Core:/# ifconfig
 root@NanoPi-NEO-Core:/# ping www.baidu.com
 root@NanoPi-NEO-Core:/# time(wget http://112.124.9.243/dvdfiles/h3/images-for-eflasher/friendlycore-jammy-images.tgz)
 friendlycore-jammy- 100%[===================>] 562.76M   844KB/s    in 11m 40s 
 2025-05-20 07:35:34 (823 KB/s) - ‘friendlycore-jammy-images.tgz’ saved [590093020/590093020]



 参考资料:
 http://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO_Core/zh#.E4.BD.BF.E7.94.A8.E5.BC.80Linux-4.14_BSP
 NanoPi NEO Core/zh
 https://github.com/friendlyarm/sd-fuse_h3/blob/master/README_cn.md#%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8
 sd-fuse_h3/README_cn.md
 https://wiki.friendlyelec.com/wiki/index.php/EFlasher/zh#.E7.83.A7.E5.86.99.E6.88.96.E6.81.A2.E5.A4.8D.E7.B3.BB.E7.BB.9F.E5.AE.8C.E6.88.90.E5.90.8E.E5.81.9A.E4.BA.9B.E5.85.B6.E4.BB.96.E4.BA.8B.E6.83.85
 EFlasher/zh
 https://wiki.friendlyelec.com/wiki/index.php/How_to_use_4G_Module_on_NanoPC-T4/zh#FriendlyCore.E4.B8.8B.E4.BD.BF.E7.94.A84G.E6.A8.A1.E5.9D.97EC20
 How to use 4G Module on NanoPC-T4/zh
3 FriendlyCore下使用4G模块EC20
 3.1 第0步:将SIM卡插入到EC20中
3.2 第1步:在开发板上编译quectel-CM命令行拨号程序
 输入以下命令,编译并安装quectel-CM到 /usr/bin/ 目录:
 git clone https://github.com/friendlyarm/quectel-cm.git
 cd quectel-cm/
 make
 cp quectel-CM /usr/bin/
【不用做】3.3 第2步:创建udhcpc script
3.4 第3步:开始4G拨号
 输入以下命令启动拨号:
 quectel-CM &
拨号成功,屏幕会输出IP地址等信息,如下所示:
 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.5 测试4G连接
 ping一个域名,看看DNS解析是否已经在工作了:
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.6 测试4G的网速
 wget -O - https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python
 得到的测试结果类拟如下这样:
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












 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ cat /etc/issue
 Ubuntu 16.04.2 LTS \n \l
pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ uname -a
 Linux NanoPi-NEO-Core 4.14.111 #1 SMP Tue May 6 19:59:36 CST 2025 armv7l armv7l armv7l GNU/Linux
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ su
 Password: 
 root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# ifconfig
 eth0      Link encap:Ethernet  HWaddr 02:81:15:56:69:a7  
           inet addr:192.168.3.214  Bcast:192.168.3.255  Mask:255.255.255.0
           inet6 addr: fe80::c7e4:33d:b1d0:be03/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:390 errors:0 dropped:0 overruns:0 frame:0
           TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:85816 (85.8 KB)  TX bytes:1658 (1.6 KB)
           Interrupt:41 
lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:9 errors:0 dropped:0 overruns:0 frame:0
           TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)
root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# cd /
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# ls -l
 total 92
 drwxr-xr-x   2 root root  4096 Jun 18  2021 bin
 drwxr-xr-x   4 root root 16384 Jan  1  1970 boot
 drwxr-xr-x  14 root root  3800 Feb 11 16:28 dev
 drwxr-xr-x   1 root root  4096 Feb 11 16:28 etc
 drwxr-xr-x   4 root root  4096 Mar 27  2017 home
 drwxr-xr-x  15 root root  4096 Jul 17  2019 lib
 drwx------   2 root root 16384 Apr  2  2025 lost+found
 drwxr-xr-x   2 root root  4096 Oct 21 15:45 media
 drwxr-xr-x   1 root root  4096 Feb 11 16:28 mnt
 drwxr-xr-x   3 root root  4096 Jun 18  2021 opt
 dr-xr-xr-x 119 root root     0 Jan  1  1970 proc
 drwx------   7 root root  4096 Apr  2  2025 root
 drwxr-xr-x  18 root root   540 Feb 11 16:28 run
 drwxr-xr-x   2 root root  4096 Jun 18  2021 sbin
 drwxr-xr-x   2 root root  4096 Oct 21 15:45 srv
 dr-xr-xr-x  12 root root     0 Jan  1  1970 sys
 drwxrwxrwt   1 root root  4096 Feb 11 16:28 tmp
 drwxr-xr-x  10 root root  4096 Jun 29  2022 usr
 drwxr-xr-x   1 root root  4096 Jan  1 09:58 var
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# git clone https://github.com/friendlyarm/quectel-cm.git
 Cloning into 'quectel-cm'...
 remote: Enumerating objects: 23, done.
 remote: Total 23 (delta 0), reused 0 (delta 0), pack-reused 23 (from 1)
 Unpacking objects: 100% (23/23), done.
 Checking connectivity... done.
 root@NanoPi-NEO-Core:/# ll
 total 104
 drwxr-xr-x   1 root root  4096 May 20 06:47 ./
 drwxr-xr-x   1 root root  4096 May 20 06:47 ../
 drwxr-xr-x   2 root root  4096 Jun 18  2021 bin/
 drwxr-xr-x   4 root root 16384 Jan  1  1970 boot/
 drwxr-xr-x  14 root root  3800 Feb 11  2016 dev/
 drwxr-xr-x   1 root root  4096 May 20 06:47 etc/
 drwxr-xr-x   4 root root  4096 Mar 27  2017 home/
 drwxr-xr-x  15 root root  4096 Jul 17  2019 lib/
 drwx------   2 root root 16384 Apr  2 07:23 lost+found/
 drwxr-xr-x   2 root root  4096 Oct 21  2015 media/
 drwxr-xr-x   1 root root  4096 Feb 11  2016 mnt/
 drwxr-xr-x   3 root root  4096 Jun 18  2021 opt/
 dr-xr-xr-x 119 root root     0 Jan  1  1970 proc/
 drwxr-xr-x   3 root root  4096 May 20 06:48 quectel-cm/
 drwx------   7 root root  4096 Apr  2 07:23 root/
 drwxr-xr-x  18 root root   540 May 20 06:47 run/
 drwxr-xr-x   2 root root  4096 Jun 18  2021 sbin/
 drwxr-xr-x   2 root root  4096 Oct 21  2015 srv/
 dr-xr-xr-x  12 root root     0 Feb 11  2016 sys/
 drwxrwxrwt   1 root root  4096 May 20 06:47 tmp/
 drwxr-xr-x  10 root root  4096 Jun 29  2022 usr/
 drwxr-xr-x   1 root root  4096 Jan  1  2016 var/
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# tar zcvf quectel-cm00h3.tar.gz quectel-cm/
 root@NanoPi-NEO-Core:/# ll
 total 236
 drwxr-xr-x   1 root root   4096 May 20 06:48 ./
 drwxr-xr-x   1 root root   4096 May 20 06:48 ../
 drwxr-xr-x   2 root root   4096 Jun 18  2021 bin/
 drwxr-xr-x   4 root root  16384 Jan  1  1970 boot/
 drwxr-xr-x  14 root root   3800 Feb 11  2016 dev/
 drwxr-xr-x   1 root root   4096 May 20 06:47 etc/
 drwxr-xr-x   4 root root   4096 Mar 27  2017 home/
 drwxr-xr-x  15 root root   4096 Jul 17  2019 lib/
 drwx------   2 root root  16384 Apr  2 07:23 lost+found/
 drwxr-xr-x   2 root root   4096 Oct 21  2015 media/
 drwxr-xr-x   1 root root   4096 Feb 11  2016 mnt/
 drwxr-xr-x   3 root root   4096 Jun 18  2021 opt/
 dr-xr-xr-x 119 root root      0 Jan  1  1970 proc/
 drwxr-xr-x   3 root root   4096 May 20 06:48 quectel-cm/
 -rw-r--r--   1 root root 131120 May 20 06:48 quectel-cm00h3.tar.gz
 drwx------   7 root root   4096 Apr  2 07:23 root/
 drwxr-xr-x  18 root root    540 May 20 06:47 run/
 drwxr-xr-x   2 root root   4096 Jun 18  2021 sbin/
 drwxr-xr-x   2 root root   4096 Oct 21  2015 srv/
 dr-xr-xr-x  12 root root      0 Feb 11  2016 sys/
 drwxrwxrwt   1 root root   4096 May 20 06:47 tmp/
 drwxr-xr-x  10 root root   4096 Jun 29  2022 usr/
 drwxr-xr-x   1 root root   4096 Jan  1  2016 var/
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# cd quectel-cm
 root@NanoPi-NEO-Core:/quectel-cm# ll
 total 336
 drwxr-xr-x 3 root root   4096 May 20 06:48 ./
 drwxr-xr-x 1 root root   4096 May 20 06:48 ../
 -rw-r--r-- 1 root root   1295 May 20 06:48 default.script
 -rw-r--r-- 1 root root   3095 May 20 06:48 dhcpclient.c
 drwxr-xr-x 8 root root   4096 May 20 06:48 .git/
 -rw-r--r-- 1 root root   7419 May 20 06:48 GobiNetCM.c
 -rw-r--r-- 1 root root  33622 May 20 06:48 main.c
 -rw-r--r-- 1 root root    348 May 20 06:48 Makefile
 -rw-r--r-- 1 root root  13454 May 20 06:48 MPQCTL.h
 -rw-r--r-- 1 root root   6139 May 20 06:48 MPQMI.h
 -rw-r--r-- 1 root root  20183 May 20 06:48 MPQMUX.c
 -rw-r--r-- 1 root root 108202 May 20 06:48 MPQMUX.h
 -rw-r--r-- 1 root root  76983 May 20 06:48 QMIThread.c
 -rw-r--r-- 1 root root   5353 May 20 06:48 QMIThread.h
 -rw-r--r-- 1 root root  10412 May 20 06:48 QmiWwanCM.c
 -rw-r--r-- 1 root root  10052 May 20 06:48 udhcpc.c
 -rw-r--r-- 1 root root   3702 May 20 06:48 util.c
 -rw-r--r-- 1 root root   1660 May 20 06:48 util.h
 root@NanoPi-NEO-Core:/quectel-cm# 
 root@NanoPi-NEO-Core:/quectel-cm# make
 gcc  -Wp,-MD,.main.o.d -c -o main.o main.c
 gcc  -Wp,-MD,.dhcpclient.o.d -c -o dhcpclient.o dhcpclient.c
 gcc  -Wp,-MD,.GobiNetCM.o.d -c -o GobiNetCM.o GobiNetCM.c
 gcc  -Wp,-MD,.MPQMUX.o.d -c -o MPQMUX.o MPQMUX.c
 gcc  -Wp,-MD,.QMIThread.o.d -c -o QMIThread.o QMIThread.c
 gcc  -Wp,-MD,.QmiWwanCM.o.d -c -o QmiWwanCM.o QmiWwanCM.c
 gcc  -Wp,-MD,.udhcpc.o.d -c -o udhcpc.o udhcpc.c
 gcc  -Wp,-MD,.util.o.d -c -o util.o util.c
 gcc -pthread  -g -o quectel-CM main.o dhcpclient.o GobiNetCM.o MPQMUX.o QMIThread.o QmiWwanCM.o udhcpc.o util.o
 root@NanoPi-NEO-Core:/quectel-cm# 
 root@NanoPi-NEO-Core:/quectel-cm# 
 root@NanoPi-NEO-Core:/quectel-cm# ll
 total 544
 drwxr-xr-x 3 root root   4096 May 20 06:48 ./
 drwxr-xr-x 1 root root   4096 May 20 06:48 ../
 -rw-r--r-- 1 root root   1295 May 20 06:48 default.script
 -rw-r--r-- 1 root root   3095 May 20 06:48 dhcpclient.c
 -rw-r--r-- 1 root root    792 May 20 06:48 dhcpclient.o
 -rw-r--r-- 1 root root     54 May 20 06:48 .dhcpclient.o.d
 drwxr-xr-x 8 root root   4096 May 20 06:48 .git/
 -rw-r--r-- 1 root root   7419 May 20 06:48 GobiNetCM.c
 -rw-r--r-- 1 root root   5832 May 20 06:48 GobiNetCM.o
 -rw-r--r-- 1 root root   4052 May 20 06:48 .GobiNetCM.o.d
 -rw-r--r-- 1 root root  33622 May 20 06:48 main.c
 -rw-r--r-- 1 root root  19780 May 20 06:48 main.o
 -rw-r--r-- 1 root root   4450 May 20 06:48 .main.o.d
 -rw-r--r-- 1 root root    348 May 20 06:48 Makefile
 -rw-r--r-- 1 root root  13454 May 20 06:48 MPQCTL.h
 -rw-r--r-- 1 root root   6139 May 20 06:48 MPQMI.h
 -rw-r--r-- 1 root root  20183 May 20 06:48 MPQMUX.c
 -rw-r--r-- 1 root root 108202 May 20 06:48 MPQMUX.h
 -rw-r--r-- 1 root root  17560 May 20 06:48 MPQMUX.o
 -rw-r--r-- 1 root root   4049 May 20 06:48 .MPQMUX.o.d
 -rw-r--r-- 1 root root  76983 May 20 06:48 QMIThread.c
 -rw-r--r-- 1 root root   5353 May 20 06:48 QMIThread.h
 -rw-r--r-- 1 root root  27228 May 20 06:48 QMIThread.o
 -rw-r--r-- 1 root root   4055 May 20 06:48 .QMIThread.o.d
 -rw-r--r-- 1 root root  10412 May 20 06:48 QmiWwanCM.c
 -rw-r--r-- 1 root root   7988 May 20 06:48 QmiWwanCM.o
 -rw-r--r-- 1 root root   4052 May 20 06:48 .QmiWwanCM.o.d
 -rwxr-xr-x 1 root root  65756 May 20 06:48 quectel-CM*
 -rw-r--r-- 1 root root  10052 May 20 06:48 udhcpc.c
 -rw-r--r-- 1 root root   4804 May 20 06:48 udhcpc.o
 -rw-r--r-- 1 root root   4071 May 20 06:48 .udhcpc.o.d
 -rw-r--r-- 1 root root   3702 May 20 06:48 util.c
 -rw-r--r-- 1 root root   1660 May 20 06:48 util.h
 -rw-r--r-- 1 root root   3992 May 20 06:48 util.o
 -rw-r--r-- 1 root root   4218 May 20 06:48 .util.o.d
 root@NanoPi-NEO-Core:/quectel-cm# 
 root@NanoPi-NEO-Core:/quectel-cm# file quectel-CM 
 quectel-CM: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=e6ccab2315d3741204bff9196fbd7abc0c2f3e18, not stripped
 root@NanoPi-NEO-Core:/quectel-cm# 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ lsusb
 Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 005 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. 
 Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 003 Device 002: ID 2c7c:0125  
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ ifconfig
 eth0      Link encap:Ethernet  HWaddr 02:81:15:56:69:a7  
           inet6 addr: fe80::c7e4:33d:b1d0:be03/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:45 errors:0 dropped:0 overruns:0 frame:0
           TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:10883 (10.8 KB)  TX bytes:508 (508.0 B)
           Interrupt:41 
lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:80 errors:0 dropped:0 overruns:0 frame:0
           TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:6368 (6.3 KB)  TX bytes:6368 (6.3 KB)
pi@NanoPi-NEO-Core:~$
 原始IMG固件启动:
 [    9.600696] 8821cu: loading out-of-tree module taints kernel.
 [    9.632826] usbcore: registered new interface driver rtl8821cu
 [    9.711716] usbcore: registered new interface driver rtl88xxau
 [   10.397994] systemd-journald[276]: Received request to flush runtime journal from PID 1
 [   11.536170] scsi 0:0:0:0: scsi scan: 96 byte inquiry failed.  Consider BLIST_INQUIRY_36 for this device
 [   12.544301] Adding 524284k swap on /mnt/512MB.swap.  Priority:-2 extents:3 across:540668k SS
 [   13.694890] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
 [   13.696453] Generic PHY stmmac-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
 [   13.698641] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
 [   13.698655] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
 [   13.699047] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
 [   13.751076] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
 [   13.793569] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
 [   16.817341] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
 [   16.817424] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
 [   21.856428] usb 3-1: new high-speed USB device number 2 using ehci-platform
 [   22.026636] usb 3-1: New USB device found, idVendor=2c7c, idProduct=0125
 [   22.026656] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 [   22.026669] usb 3-1: Product: Android
 [   22.026680] usb 3-1: Manufacturer: Android
 [   22.029251] option 3-1:1.0: GSM modem (1-port) converter detected
 [   22.029893] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0
 [   22.030744] option 3-1:1.1: GSM modem (1-port) converter detected
 [   22.032744] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1
 [   22.033798] option 3-1:1.2: GSM modem (1-port) converter detected
 [   22.035211] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2
 [   22.036122] option 3-1:1.3: GSM modem (1-port) converter detected
 [   22.037491] usb 3-1: GSM modem (1-port) converter now attached to ttyUSB3
 [   22.051596] qmi_wwan 3-1:1.4: cdc-wdm0: USB WDM device
 [   22.051625] qmi_wwan 3-1:1.4: Quectel EC21&EC25 work on RawIP mode
 [   22.053404] qmi_wwan 3-1:1.4 wwan0: register 'qmi_wwan' at usb-1c1b000.usb-1, WWAN/QMI device, ea:ce:56:3d:16:44
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# cd /dev
 root@NanoPi-NEO-Core:/dev# 
 root@NanoPi-NEO-Core:/dev# ll ttyUSB*
 crw-rw---- 1 root dialout 188, 0 Feb 11 16:47 ttyUSB0
 crw-rw---- 1 root dialout 188, 1 Feb 11 16:47 ttyUSB1
 crw-rw---- 1 root dialout 188, 2 Feb 11 16:47 ttyUSB2
 crw-rw---- 1 root dialout 188, 3 Feb 11 16:47 ttyUSB3
 root@NanoPi-NEO-Core:/dev# 
 root@NanoPi-NEO-Core:/dev# 
 root@NanoPi-NEO-Core:/dev# lsusb
 Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 005 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. 
 Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 003 Device 002: ID 2c7c:0125  
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 root@NanoPi-NEO-Core:/dev# 
 root@NanoPi-NEO-Core:/dev# 
上网的步骤:
 [    9.996416] rc.local[554]: ctp = 0
 [  OK  ] Started /etc/rc.local Compatibility.
 [  OK  ] Started LSB: disk temperature monitoring daemon.
 [  OK  ] Started Getty on tty1.
 [  OK  ] Started Serial Getty on ttyS0.
 [  OK  ] Reached target Login Prompts.
 [  OK  ] Started LSB: Start NTP daemon.
 [  OK  ] Reached target Multi-User System.
 [  OK  ] Reached target Graphical Interface.
          Starting Update UTMP about System Runlevel Changes...
 [  OK  ] Started Update UTMP about System Runlevel Changes.
Ubuntu 16.04.2 LTS NanoPi-NEO-Core ttyS0
NanoPi-NEO-Core login: pi (automatic login)
Last login: Thu Feb 11 16:46:44 UTC 2016 on ttyS0
  _____     _                _ _       _____ _     _____ ____ 
 |  ___| __(_) ___ _ __   __| | |_   _| ____| |   | ____/ ___|
 | |_ | '__| |/ _ \ '_ \ / _` | | | | |  _| | |   |  _|| |    
 |  _|| |  | |  __/ | | | (_| | | |_| | |___| |___| |__| |___ 
 |_|  |_|  |_|\___|_| |_|\__,_|_|\__, |_____|_____|_____\____|
                                 |___/                        
Welcome to Ubuntu 16.04.2 LTS 4.14.111
 System load:   0.71                Up time:       11 sec        
 Memory usage:  9 % of 491Mb      IP:            
 CPU temp:      36°C               
 Usage of /:    10% of 6.0G       
 * Documentation: http://wiki.friendlyarm.com/Ubuntu
  * Forum: http://www.friendlyarm.com/Forum/
pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ su
 Password: 
su: Authentication failure
 pi@NanoPi-NEO-Core:~$ 
 pi@NanoPi-NEO-Core:~$ su
 Password: 
 root@NanoPi-NEO-Core:/home/pi# ifconfig
 eth0      Link encap:Ethernet  HWaddr 02:81:15:56:69:a7  
           inet6 addr: fe80::fa6c:8db:e7dd:d6d6/64 Scope:Link
           UP BROADCAST MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
           Interrupt:41 
lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:80 errors:0 dropped:0 overruns:0 frame:0
           TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:6368 (6.3 KB)  TX bytes:6368 (6.3 KB)
root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# 
 root@NanoPi-NEO-Core:/home/pi# cd /
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# ll
 total 108
 drwxr-xr-x   1 root root  4096 May 20  2025 ./
 drwxr-xr-x   1 root root  4096 May 20  2025 ../
 drwxr-xr-x   2 root root  4096 Jun 18  2021 bin/
 drwxr-xr-x   4 root root 16384 Jan  1  1970 boot/
 drwxr-xr-x  15 root root  3920 Feb 11 16:53 dev/
 drwxr-xr-x   1 root root  4096 May 20  2025 etc/
 drwxr-xr-x   1 root root  4096 Mar 27  2017 home/
 drwxr-xr-x  15 root root  4096 Jul 17  2019 lib/
 drwx------   2 root root 16384 Apr  2  2025 lost+found/
 drwxr-xr-x   2 root root  4096 Oct 21 15:45 media/
 drwxr-xr-x   1 root root  4096 Feb 11 16:46 mnt/
 drwxr-xr-x   3 root root  4096 Jun 18  2021 opt/
 dr-xr-xr-x 121 root root     0 Jan  1  1970 proc/
 drwxr-xr-x   3 root root  4096 May 20  2025 quectel-cm/
 drwx------   1 root root  4096 May 20  2025 root/
 drwxr-xr-x  18 root root   540 Feb 11 16:54 run/
 drwxr-xr-x   2 root root  4096 Jun 18  2021 sbin/
 drwxr-xr-x   2 root root  4096 Oct 21 15:45 srv/
 dr-xr-xr-x  12 root root     0 Feb 11 16:53 sys/
 drwxrwxrwt   1 root root  4096 Feb 11 16:54 tmp/
 drwxr-xr-x  10 root root  4096 Jun 29  2022 usr/
 drwxr-xr-x   1 root root  4096 Jan  1 09:58 var/
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# cd quectel-cm/
 root@NanoPi-NEO-Core:/quectel-cm# ll
 total 544
 drwxr-xr-x 3 root root   4096 May 20  2025 ./
 drwxr-xr-x 1 root root   4096 May 20  2025 ../
 -rw-r--r-- 1 root root   1295 May 20  2025 default.script
 -rw-r--r-- 1 root root   3095 May 20  2025 dhcpclient.c
 -rw-r--r-- 1 root root    792 May 20  2025 dhcpclient.o
 -rw-r--r-- 1 root root     54 May 20  2025 .dhcpclient.o.d
 drwxr-xr-x 8 root root   4096 May 20  2025 .git/
 -rw-r--r-- 1 root root   7419 May 20  2025 GobiNetCM.c
 -rw-r--r-- 1 root root   5832 May 20  2025 GobiNetCM.o
 -rw-r--r-- 1 root root   4052 May 20  2025 .GobiNetCM.o.d
 -rw-r--r-- 1 root root  33622 May 20  2025 main.c
 -rw-r--r-- 1 root root  19780 May 20  2025 main.o
 -rw-r--r-- 1 root root   4450 May 20  2025 .main.o.d
 -rw-r--r-- 1 root root    348 May 20  2025 Makefile
 -rw-r--r-- 1 root root  13454 May 20  2025 MPQCTL.h
 -rw-r--r-- 1 root root   6139 May 20  2025 MPQMI.h
 -rw-r--r-- 1 root root  20183 May 20  2025 MPQMUX.c
 -rw-r--r-- 1 root root 108202 May 20  2025 MPQMUX.h
 -rw-r--r-- 1 root root  17560 May 20  2025 MPQMUX.o
 -rw-r--r-- 1 root root   4049 May 20  2025 .MPQMUX.o.d
 -rw-r--r-- 1 root root  76983 May 20  2025 QMIThread.c
 -rw-r--r-- 1 root root   5353 May 20  2025 QMIThread.h
 -rw-r--r-- 1 root root  27228 May 20  2025 QMIThread.o
 -rw-r--r-- 1 root root   4055 May 20  2025 .QMIThread.o.d
 -rw-r--r-- 1 root root  10412 May 20  2025 QmiWwanCM.c
 -rw-r--r-- 1 root root   7988 May 20  2025 QmiWwanCM.o
 -rw-r--r-- 1 root root   4052 May 20  2025 .QmiWwanCM.o.d
 -rwxr-xr-x 1 root root  65756 May 20  2025 quectel-CM*
 -rw-r--r-- 1 root root  10052 May 20  2025 udhcpc.c
 -rw-r--r-- 1 root root   4804 May 20  2025 udhcpc.o
 -rw-r--r-- 1 root root   4071 May 20  2025 .udhcpc.o.d
 -rw-r--r-- 1 root root   3702 May 20  2025 util.c
 -rw-r--r-- 1 root root   1660 May 20  2025 util.h
 -rw-r--r-- 1 root root   3992 May 20  2025 util.o
 -rw-r--r-- 1 root root   4218 May 20  2025 .util.o.d
 root@NanoPi-NEO-Core:/quectel-cm# cp quectel-CM /
 root@NanoPi-NEO-Core:/quectel-cm# cd /
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# cd -
 /quectel-cm
 root@NanoPi-NEO-Core:/quectel-cm# cp quectel-CM /usr/bin/
 root@NanoPi-NEO-Core:/quectel-cm# sync
 root@NanoPi-NEO-Core:/quectel-cm# sync
 root@NanoPi-NEO-Core:/quectel-cm# cd /
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# quectel-CM &
 [1] 817
 root@NanoPi-NEO-Core:/# [02-11_16:54:57:075] WCDMA<E_QConnectManager_Linux&Android_V1.1.34
 [02-11_16:54:57:076] quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)
 [02-11_16:54:57:080] Find /sys/bus/usb/devices/3-1 idVendor=2c7c idProduct=0125
 [02-11_16:54:57:080] Find /sys/bus/usb/devices/3-1:1.4/net/wwan0
 [02-11_16:54:57:080] Find usbnet_adapter = wwan0
 [02-11_16:54:57:081] Find /sys/bus/usb/devices/3-1:1.4/usbmisc/cdc-wdm0
 [02-11_16:54:57:081] Find qmichannel = /dev/cdc-wdm0
 [02-11_16:54:57:095] /proc/779/fd/7 -> /dev/cdc-wdm0
 [02-11_16:54:57:095] /proc/779/exe -> /usr/lib/libqmi/qmi-proxy
 [02-11_16:54:59:098] cdc_wdm_fd = 7
 [02-11_16:54:59:183] Get clientWDS = 18
 [02-11_16:54:59:215] Get clientDMS = 1
 [02-11_16:54:59:246] Get clientNAS = 3
 [02-11_16:54:59:278] Get clientUIM = 1
 [02-11_16:54:59:310] Get clientWDA = 1
 [02-11_16:54:59:343] requestBaseBandVersion EC20CEHCLGR06A05M1G
 [02-11_16:54:59:407] requestSetEthMode QMUXResult = 0x1, QMUXError = 0x46
 [02-11_16:54:59:438] requestGetSIMStatus QMUXResult = 0x1, QMUXError = 0x5e
 [02-11_16:54:59:470] requestGetProfile[1] 3gnet///0
 [02-11_16:54:59:502] requestRegistrationState MCC: 460, MNC: 1, PS: Attached, DataCap: LTE
 [02-11_16:54:59:535] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
 [02-11_16:54:59:599] requestRegistrationState MCC: 460, MNC: 1, PS: Attached, DataCap: LTE
 [02-11_16:54:59:630] requestSetupDataCall WdsConnectionIPv4Handle: 0xe1767cc0
 [02-11_16:54:59:694] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
 [02-11_16:54:59:726] ifconfig wwan0 up
 [02-11_16:54:59:746] busybox udhcpc -f -n -q -t 5 -i wwan0
 [02-11_16:54:59:765] udhcpc (v1.23.2) started
 [02-11_16:54:59:802] Sending discover...
 [02-11_16:54:59:847] Sending select for 10.41.94.43...
 [02-11_16:54:59:887] Lease of 10.41.94.43 obtained, lease time 7200
 [02-11_16:54:59:901] deleting routers
 SIOCDELRT: No such process
 [02-11_16:54:59:920] adding dns 120.80.80.80
 [02-11_16:54:59:920] adding dns 221.5.88.88
root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# ifconfig
 eth0      Link encap:Ethernet  HWaddr 02:81:15:56:69:a7  
           inet6 addr: fe80::fa6c:8db:e7dd:d6d6/64 Scope:Link
           UP BROADCAST MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
           Interrupt:41 
lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:160 errors:0 dropped:0 overruns:0 frame:0
           TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:12736 (12.7 KB)  TX bytes:12736 (12.7 KB)
wwan0     Link encap:Ethernet  HWaddr 72:ca:88:20:f9:5f  
           inet addr:10.41.94.43  Bcast:10.41.94.47  Mask:255.255.255.248
           inet6 addr: fe80::70ca:88ff:fe20:f95f/64 Scope:Link
           UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
           RX packets:2 errors:0 dropped:0 overruns:0 frame:0
           TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:612 (612.0 B)  TX bytes:768 (768.0 B)
root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# ping www.baidu.com
 PING www.a.shifen.com (157.148.69.151) 56(84) bytes of data.
 64 bytes from 157.148.69.151: icmp_seq=1 ttl=52 time=30.9 ms
 64 bytes from 157.148.69.151: icmp_seq=2 ttl=52 time=22.3 ms
 64 bytes from 157.148.69.151: icmp_seq=3 ttl=52 time=23.1 ms
 64 bytes from 157.148.69.151: icmp_seq=4 ttl=52 time=24.8 ms
 64 bytes from 157.148.69.151: icmp_seq=5 ttl=52 time=25.6 ms
 64 bytes from 157.148.69.151: icmp_seq=6 ttl=52 time=21.9 ms
 64 bytes from 157.148.69.151: icmp_seq=7 ttl=52 time=30.6 ms
 64 bytes from 157.148.69.151: icmp_seq=8 ttl=52 time=24.7 ms
 64 bytes from 157.148.69.151: icmp_seq=9 ttl=52 time=24.7 ms
 64 bytes from 157.148.69.151: icmp_seq=10 ttl=52 time=32.8 ms
 64 bytes from 157.148.69.151: icmp_seq=11 ttl=52 time=23.7 ms
 64 bytes from 157.148.69.151: icmp_seq=12 ttl=52 time=24.7 ms
 64 bytes from 157.148.69.151: icmp_seq=13 ttl=52 time=34.8 ms
 64 bytes from 157.148.69.151: icmp_seq=14 ttl=52 time=25.3 ms
 64 bytes from 157.148.69.151: icmp_seq=15 ttl=52 time=23.1 ms
 64 bytes from 157.148.69.151: icmp_seq=16 ttl=52 time=24.8 ms
 64 bytes from 157.148.69.151: icmp_seq=17 ttl=52 time=23.7 ms
 64 bytes from 157.148.69.151: icmp_seq=18 ttl=52 time=24.8 ms
 64 bytes from 157.148.69.151: icmp_seq=19 ttl=52 time=23.8 ms
 ^C
 --- www.a.shifen.com ping statistics ---
 19 packets transmitted, 19 received, 0% packet loss, time 18025ms
 rtt min/avg/max/mdev = 21.904/25.841/34.848/3.566 ms
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 root@NanoPi-NEO-Core:/# 
 lasher/friendlycore-jammy-images.tgz)p://112.124.9.243/dvdfiles/h3/images-for-ef 
 --2025-05-20 07:23:53--  http://112.124.9.243/dvdfiles/h3/images-for-eflasher/friendlycore-jammy-images.tgz
 Connecting to 112.124.9.243:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 590093020 (563M) [application/octet-stream]
 Saving to: ‘friendlycore-jammy-images.tgz’
friendlycore-jammy- 100%[===================>] 562.76M 844KB/s in 11m 40s
2025-05-20 07:35:34 (823 KB/s) - ‘friendlycore-jammy-images.tgz’ saved [590093020/590093020]
 real    11m40.674s
 user    0m3.500s
 sys    0m46.154s
 root@NanoPi-NEO-Core:/# 
