====== 连接4G模块 ====== 连接EC20模块 ===== - 主要命令 ===== lsusb quectel-CM mmcli -m 0 ip address ping ===== - 基本命令例子 ===== ==== - lsusb ==== root@firefly:/dev# lsusb Bus 008 Device 005: ID 05e3:0620 Genesys Logic, Inc. USB3.0 Hub Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 007: ID 0fe6:9900 ICS Advent Bus 007 Device 006: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem Bus 007 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 执行 lsusb 命令,如果出现如下内容则模块已经成功被 Linux 系统识别到。 Bus 002 Device 009: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem 其中,0x2C7C 和 0x0125 分别是 Quectel EC25/EC20 R2.0 的 VID 和 PID 编号。 ==== - AT指令接口 ==== 当连接模块并加载 USB 驱动成功后,在 /dev 目录下将会创建出几个 tty 设备节点。例如 /dev/ttyUSB2 是 AT 指令的控制端口。 root@firefly:/dev# ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Jun 7 16:37 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Jun 28 2021 /dev/ttyUSB1 crw-rw---- 1 root dialout 188, 2 Jun 7 16:37 /dev/ttyUSB2 crw-rw---- 1 root dialout 188, 3 Jun 7 16:36 /dev/ttyUSB3 测试AT指令 root@firefly:/dev# cat /dev/ttyUSB2 & echo -e "ati\r\n" > /dev/ttyUSB2 [13] 1137 root@firefly:/dev# Quectel EC20F Revision: EC20CEFILGR06A07M1G OK root@firefly:/dev# cat /dev/ttyUSB2 & echo -e "at\r\n" > /dev/ttyUSB2 [14] 1138 root@firefly:/dev# root@firefly:/dev# OK root@firefly:~# cat /dev/ttyUSB2 & echo -e "at+qccid\r\n" > /dev/ttyUSB2 [4] 1065 root@firefly:~# root@firefly:~# +QCCID: 89860000191998625782 OK ==== - quectel-CM & ==== root@firefly:~# quectel-CM & [1] 1176 root@firefly:~# [11-21_11:52:07:415] QConnectManager_Linux_V1.6.1 [11-21_11:52:07:419] Find /sys/bus/usb/devices/7-1.3 idVendor=0x2c7c idProduct=0x125, bus=0x007, dev=0x00b [11-21_11:52:07:420] Auto find qmichannel = /dev/cdc-wdm0 [11-21_11:52:07:420] Auto find usbnet_adapter = wwan0 [11-21_11:52:07:420] netcard driver = qmi_wwan_q, driver version = 22-Aug-2005 [11-21_11:52:07:421] Modem works in QMI mode [11-21_11:52:07:451] cdc_wdm_fd = 7 [11-21_11:52:07:539] Get clientWDS = 7 [11-21_11:52:07:571] Get clientDMS = 1 [11-21_11:52:07:603] Get clientNAS = 2 [11-21_11:52:07:635] Get clientUIM = 1 [11-21_11:52:07:668] Get clientWDA = 1 [11-21_11:52:07:700] requestBaseBandVersion EC20CEFILGR06A07M1G [11-21_11:52:07:828] requestGetSIMStatus SIMStatus: SIM_READY [11-21_11:52:07:859] requestGetProfile[1] cmnet///0/IPV4V6 [11-21_11:52:07:891] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE [11-21_11:52:07:923] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED [11-21_11:52:07:924] ifconfig wwan0 0.0.0.0 [11-21_11:52:07:939] ifconfig wwan0 down [11-21_11:52:08:275] requestSetupDataCall WdsConnectionIPv4Handle: 0x872bc680 [11-21_11:52:08:405] ifconfig wwan0 up [11-21_11:52:08:420] No default.script found, it should be in '/usr/share/udhcpc/' or '/etc/udhcpc' depend on your udhcpc version! [11-21_11:52:08:421] busybox udhcpc -f -n -q -t 5 -s /usr/share/udhcpc/default_quectel-CM.script -i wwan0 udhcpc: started, v1.30.1 udhcpc: sending discover udhcpc: sending select for 10.22.39.214 udhcpc: lease of 10.22.39.214 obtained, lease time 7200 [11-21_11:52:08:547] ip -4 address flush dev wwan0 [11-21_11:52:08:557] ip -4 address add 10.22.39.214/30 dev wwan0 [11-21_11:52:08:569] ip -4 route add default via 10.22.39.213 dev wwan0 ==== - mmcli ==== mmcli -m MODEM_INDEX root@firefly:~# mmcli -m 0 -------------------------------- General | path: /org/freedesktop/ModemManager1/Modem/0 | device id: 317d14563a761d0bf018eaaa6173364371a4873e -------------------------------- Hardware | manufacturer: Quectel | model: EC20F | firmware revision: EC20CEFILGR06A07M1G | supported: gsm-umts, lte | current: gsm-umts, lte | equipment id: 863617064431395 -------------------------------- System | device: /sys/devices/platform/usbhost/fd000000.dwc3/xhci-hcd.5.auto/usb7/7-1/7-1.3 | drivers: qmi_wwan_q, option | plugin: quectel | primary port: ttyUSB2 | ports: ttyUSB0 (qcdm), ttyUSB1 (gps), ttyUSB2 (at), ttyUSB3 (at), | wwan0 (net) -------------------------------- Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) | state: registered | power state: on | access tech: lte | signal quality: 40% (recent) -------------------------------- Modes | supported: allowed: 2g, 3g, 4g; preferred: none | current: allowed: 2g, 3g, 4g; preferred: none -------------------------------- IP | supported: ipv4, ipv6, ipv4v6 -------------------------------- 3GPP | imei: 863617064431395 | operator id: 46000 | operator name: CHINA MOBILE | registration: home -------------------------------- 3GPP EPS | ue mode of operation: csps-2 -------------------------------- SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 ==== - ip address ==== root@firefly:~# ip address 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: can0: mtu 16 qdisc noop state DOWN group default qlen 10 link/can 3: can1: mtu 16 qdisc noop state DOWN group default qlen 10 link/can 4: eth0: mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 4e:1b:4f:0f:6d:2f brd ff:ff:ff:ff:ff:ff 5: eth1: mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 4a:1b:4f:0f:6d:2f brd ff:ff:ff:ff:ff:ff 6: wwan0: mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000 link/ether 8a:b1:46:2f:ee:d6 brd ff:ff:ff:ff:ff:ff inet 10.22.91.212/29 scope global wwan0 valid_lft forever preferred_lft forever inet6 fe80::88b1:46ff:fe2f:eed6/64 scope link valid_lft forever preferred_lft forever 7: enx00e0996fdf14: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 00:e0:99:6f:df:14 brd ff:ff:ff:ff:ff:ff ==== - 双卡控制 ==== 信号名: CARD_SEL \\ 核心模块引脚: 276 \\ GPIO:GPIO3_C5 \\ PIN No: 117 = 32 * 3 + 8 * 2 + 5 \\ 功能: 0 : eSim; 1:卡座 \\ 默认输出: 1 rk3568-firefly-core.dtsi 删除 GPIO3_C5的驱动。