少于 1 分钟阅读 次阅读

# 4G 拨号======
init_4g() {
    echo "[witheart] 初始化4G拨号..." > /dev/kmsg

    # 获取Quectel模块的PID
    pid=$(lsusb | grep "2c7c:" | awk -F: '{print $3}' | cut -c 1-4)

    # 未检测到模块时直接退出
    if [ -z "$pid" ]; then
        echo "[witheart] 错误:未检测到Quectel模块,跳过初始化4G流程" > /dev/kmsg
        return 1
    fi

    # 根据PID选择拨号命令
    case "$pid" in
        "0125")
            echo "[witheart] 检测到EC20模块(PID:0125)" > /dev/kmsg
            echo -e "AT+QCFG=\"usbnet\",1\r\n" > /dev/ttyUSB2
            sleep 2
            echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2
            ;;
        "0901")
            echo "[witheart] 检测到EC200U模块(PID:0901)" > /dev/kmsg
            echo -e "AT+QCFG=\"usbnet\",1\r\n" > /dev/ttyUSB0
            sleep 2
            echo -e "AT+qnetdevctl=1,1,1\r\n" > /dev/ttyUSB0
            ;;
        "6002")
            echo "[witheart] 检测到EC200M模块(PID:6002)" > /dev/kmsg
            echo -e "AT+QCFG=\"usbnet\",1\r\n" > /dev/ttyUSB1
            sleep 2
            echo -e "AT+qnetdevctl=0,1,1\r\n" > /dev/ttyUSB1
            sleep 2
            echo -e "AT+qnetdevctl=1,1,1\r\n" > /dev/ttyUSB1
            ;;
        *)
            echo "[witheart] 检测到未知的 Quectel 移动网络模块(PID:$pid)" > /dev/kmsg
            ;;
    esac

    sleep 2
    ifconfig usb0 up
    sleep 1
    udhcpc -i usb0
    sleep 1
    nmcli connection modify "Mobile Network" ipv4.route-metric 1000
    sleep 1
    nmcli connection down "Mobile Network" && sudo nmcli connection up "Mobile Network"

    echo "[witheart] 初始化4G拨号结束" > /dev/kmsg
}
# 延迟10s执行4G拨号初始化
( sleep 10; init_4g ) &

留下评论