跳转至

4G&5G 配置

板卡支持 USB 接口连接以及板载 MiniPCIe 接口连接 4G或5G模块,支持板载 MiniPCIe 接口以及适配模块见表格:

主板 主控 平台 板载 MiniPCIe 接口
K1 RK3568 Rockchip EC20、EC200M
K1B RK3568 Rockchip /
K1MINI RK3568 Rockchip /
K2B H618 Allwinner /
K2C H618 Allwinner EC20、EC200M
K3 RK3562 Rockchip EC20、EC200M
K3B RK3562 Rockchip /
K4B T113 Allwinner EC20、EC200M
K5C A133 Allwinner EC20、EC200M
K7 RK3576 Rockchip EC20、EC200M、RG200U
K7C RK3576 Rockchip EC20、EC200M
K7S RK3576 Rockchip EC20、EC200M
K8 RK3588 Rockchip EC20、EC200M、RG200U
K8D RK3588S2 Rockchip /
K9 T527 Allwinner EC20
K10B A733 Allwinner /
K11C RK3566 Rockchip /

MiniPCIe接口

  • K7 MiniPCIe 口硬件安装示例

Warning

请在断电状态下安装/拆卸网络模块,SIM卡支持热拔插。

image-20260526145001152

image-20260526145105133

脚本配置

4G/5G 移动模块开机自动配置,检测模块是否存在,进行配置拨号

Tip

开机默认仅会拨号一次,在信号不好或通讯异常情况,可能会存在拨号失败的情况,若无网络,可运行拨号脚本进行重试。

$ cat /usr/bin/hardware-optimization 
4g_config() {
    wait_time=30
    for((i=1;i<=$wait_time;i++));
    do 
        if [ -c /dev/ttyUSB2 ]; then
            echo "$i: 4g /dev/ttyUSB2 exists and is a character device." >> $LOG_FILE
            /usr/bin/4G_dialing.sh
            break;
        else
            echo "$i: 4g /dev/ttyUSB2 does not exist or is not a character device." >> $LOG_FILE
            sleep 1
        fi
    done
}

拨号脚本,已适配 RG200U / EC200 / EC20:

$ cat /usr/bin/4G_dialing.sh
#!/bin/bash
DIRECTORY="/dev/serial/by-id"
Serial_port=""
counter=0
FORCE_CONFIG=0

Switching_mode() {
    PRODUCT_NAME=$(cat "$device_dir/product")
    MANUFACTURER=$(cat "$device_dir/manufacturer")
    SERIAL_NUMBER=$(cat "$device_dir/serial")

    if [ "$SERIAL_NUMBER" == "" ]; then
        Serial="usb-${MANUFACTURER}_${PRODUCT_NAME}"
    else
        Serial="usb-${MANUFACTURER}_${PRODUCT_NAME}_$SERIAL_NUMBER"
    fi

    for file in $(ls "$DIRECTORY" | grep "$Serial" | sort); do
        if [ "$counter" -eq 2 ]; then
            Serial_port=$file
            break
        fi
        counter=$((counter + 1))
    done
}

for device_dir in /sys/bus/usb/devices/*; do
    if [ -e "$device_dir/idProduct" ]; then
        product_id=$(cat "$device_dir/idProduct")

        # EC200: 6002 / 6001 / 6005
        if [ "$product_id" = "6002" ] || [ "$product_id" = "6001" ] || [ "$product_id" = "6005" ]; then
            for interface in ${device_dir}/*/net/*; do
                name=$(basename $interface)
            done
            if [ ! -e "/sys/class/net/$name" ]; then
                Switching_mode "$device_dir"
                if [ -e $DIRECTORY/$Serial_port ]; then
                    echo -e "AT+QCFG=\"usbnet\",1" >$DIRECTORY/$Serial_port
                    sleep 1
                    /usr/bin/quectel-CM >>/tmp/4G.log 2>&1 &
                fi
            fi
        fi

        # EC20: 0125
        if [ "$product_id" = "0125" ]; then
            for interface in ${device_dir}/*/net/*; do
                name=$(basename $interface)
            done
            if [ ! -e "/sys/class/net/$name" ]; then
                Switching_mode "$device_dir"
                if [ -e $DIRECTORY/$Serial_port ]; then
                    echo -e "AT+QCFG=\"usbnet\",0" >$DIRECTORY/$Serial_port
                    sleep 1
                    /usr/bin/quectel-CM >>/tmp/4G.log 2>&1 &
                fi
            fi
        fi

        # RG200U: 0900
        if [ "$product_id" = "0900" ]; then
            RG200U_config "$device_dir"
        fi
    fi
done

网络测试

1. 判断是否接入模块,查看日志进行判断。

Tip

/dev/ttyUSB2 exists and is a character device. 代表设备识别成功

$ cat /tmp/kickpi-hardware.log 
1: 4g /dev/ttyUSB2 does not exist or is not a character device.
2: 4g /dev/ttyUSB2 does not exist or is not a character device.
...
24: 4g /dev/ttyUSB2 does not exist or is not a character device.
25: 4g /dev/ttyUSB2 exists and is a character device.

或查看 /dev/ttyUSB2 是否存在

$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2  /dev/ttyUSB3  /dev/ttyUSB4

2. 判断是否拨号成功

Tip

设备名称格式为 enx*(* 为可变后缀),具体名称请参照实际环境。

$ ifconfig
enxca7f24fb0e94: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.138.192.102  netmask 255.255.255.0  broadcast 10.138.192.255
        inet6 fe80::583f:ed51:782d:318d  prefixlen 64  scopeid 0x20<link>
        ether ca:7f:24:fb:0e:94  txqueuelen 1000  (Ethernet)
        RX packets 181  bytes 15185 (14.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 194  bytes 17394 (16.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3. Ping 网络测试

Tip

指定设备 enx* 进行 ping 网络测试。

$ ping www.baidu.com -I enxca7f24fb0e94
PING www.wshifen.com (103.235.46.115) from 10.138.192.102 enxca7f24fb0e94: 56(84) bytes of data.
64 bytes from 103.235.46.115 (103.235.46.115): icmp_seq=1 ttl=45 time=1094 ms
64 bytes from 103.235.46.115 (103.235.46.115): icmp_seq=2 ttl=45 time=3924 ms
64 bytes from 103.235.46.115 (103.235.46.115): icmp_seq=3 ttl=45 time=1870 ms

定制拨号功能

主板默认使用官方 quectel-CM 工具进行拨号,如需修改定制拨号功能,下载 移远官方 Linux 软件 进行定制。

# 主板拉取代码
git clone https://github.com/quectel-open-source/Quectel_QConnectManager_Linux.git
make