USB OTG

USB On-The-Go(USB OTG)是 USB 2.0 规格的补充标准,允许设备在 USB 外设模式与主机模式之间切换。Quectel Pi H1 支持 USB OTG 功能,通过板载 Type-C 接口即可在主机模式下直接连接 USB 外设(如 U 盘、键盘、鼠标、网卡等),无需借助 PC 完成数据读取或控制操作。

本文档介绍如何通过 USB OTG 接口使用 USB 模拟网卡(RNDIS)功能,实现 Quectel Pi H1 与主机之间的网络连接及共享。

硬件接口

USB 模拟网卡概述

USB 模拟网卡(RNDIS)利用 USB 数据线在设备与主机之间建立一条虚拟以太网链路,无需额外的物理网卡即可实现网络通信。

Quectel Pi H1 的 USB OTG 默认 gadget 配置已包含 RNDIS 网卡功能(同时绑定 DIAG 和 ADB)。连接后,Quectel Pi H1 侧会出现 usb0 网络接口。

建立连接后可用于:

  • 远程登录(SSH)
  • 文件传输(SCP / SFTP)
  • 网络共享(主机共享网络给设备,或设备共享网络给主机)
  • 调试服务访问

连接 Linux 主机

基本连接配置

  1. 使用数据线将 Quectel Pi H1 的 Type-C 口连接至 Linux 主机的 USB 口。

  2. 在 Quectel Pi H1 上确认 usb0 接口存在,并启用配置 IP:

    sudo ip link show usb0
    sudo ip link set usb0 up
    sudo ip addr add 192.168.0.5/24 dev usb0
    sudo ip addr show usb0
    
  3. 在 Linux 端确认新增的 USB RNDIS 网卡名称(通常以 enx 开头),例如 enx2a8b155b2e00

    ip link
    

  4. 在 Linux 端为该网卡配置 IP:

    sudo ip link set enx2a8b155b2e00 up
    sudo ip addr add 192.168.0.6/24 dev enx2a8b155b2e00
    

    请将 enx2a8b155b2e00 替换为实际网卡名称。

  5. 测试连通性:

    ping 192.168.0.5
    

    收到正常响应即表示 RNDIS 网卡连接建立成功。

Linux 共享网络给设备

当 Linux 主机已通过以太网或 Wi-Fi 连接互联网时,可将网络共享给 Quectel Pi H1。

以下示例参数:

角色 接口 IP 地址
Linux 外网接口 enp11s0
Linux USB RNDIS 网卡 enx2a8b155b2e00 192.168.0.6
Quectel Pi H1 USB 网卡 usb0 192.168.0.5

Linux 端外网接口可通过 ip route get 8.8.8.8 查询,输出中的 dev 字段即为实际上网接口。

在 Linux 端开启 IPv4 转发:

sudo sysctl -w net.ipv4.ip_forward=1

在 Linux 端配置 NAT 转发:

sudo iptables -t nat -A POSTROUTING -o enp11s0 -j MASQUERADE
sudo iptables -A FORWARD -i enx2a8b155b2e00 -o enp11s0 -j ACCEPT
sudo iptables -A FORWARD -i enp11s0 -o enx2a8b155b2e00 -m state --state RELATED,ESTABLISHED -j ACCEPT

请将 enp11s0enx2a8b155b2e00 替换为实际网卡名称。

在 Quectel Pi H1 上添加默认路由:

sudo ip route replace default via 192.168.0.6 dev usb0

在 Quectel Pi H1 上配置 DNS:

sudo sh -c 'printf "nameserver 8.8.8.8\n" > /etc/resolv.conf'

在 Quectel Pi H1 上验证外网访问:

ping 8.8.8.8
ping www.quectel.com

若能 ping 通公网 IP 但无法解析域名,请检查 DNS 配置。

设备共享网络给 Linux

当 Quectel Pi H1 已通过其他接口(如以太网、蜂窝网络)联网时,可将网络共享给 Linux 主机。

以下示例参数:

角色 接口
Quectel Pi H1 上网接口 eth0
Quectel Pi H1 USB 网卡 usb0
Linux USB RNDIS 网卡 enx2a8b155b2e00

Quectel Pi H1 实际上网接口可通过 ip route get 8.8.8.8 查询。

在 Quectel Pi H1 上开启 IPv4 转发:

sudo sysctl -w net.ipv4.ip_forward=1

在 Quectel Pi H1 上配置 NAT 转发:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT

在 Linux 端将默认路由指向 Quectel Pi H1:

sudo ip route replace default via 192.168.0.5 dev enx2a8b155b2e00

在 Linux 端验证外网访问:

ping 8.8.8.8
ping www.quectel.com

若 Quectel Pi H1 通过蜂窝网络或其他接口联网,请将 eth0 替换为实际上网接口。

连接 Windows 主机

基础连接配置

  1. 使用数据线将 Quectel Pi H1 的 Type-C 口连接至 Windows 主机的 USB 口。

  2. 在 Quectel Pi H1 上确认 usb0 接口存在,并启用配置 IP:

sudo ip link show usb0
sudo ip link set usb0 up
sudo ip addr add 192.168.7.1/24 dev usb0
sudo ip addr show usb0
  1. 在 Windows 端确认新增的 USB RNDIS 网卡。

在设备管理器的网络适配器中可看到 Remote NDIS Compatible Device,在网络连接中会新增一个以太网连接。

  1. 在 Windows 端配置 USB 网卡 IP。

打开网络设置,找到新增的未识别网络,手动将 IP 配置为与 Quectel Pi H1 同网段的地址(如 192.168.7.2),保存。

  1. 测试连通性:
ping 192.168.7.1

收到正常响应即表示 RNDIS 网卡连接建立成功。

Windows 共享网络给设备

当 Windows 主机已通过以太网或 Wi-Fi 连接互联网时,可通过 Internet 连接共享(ICS)功能将网络共享给 Quectel Pi H1。

  1. 打开网络连接页面:按 Win + R,输入 ncpa.cpl 后回车。

  2. 开启 Internet 连接共享:右键当前可访问互联网的网卡(如 WLAN 或以太网),选择 属性共享 页签,勾选 允许其他网络用户通过此计算机的 Internet 连接来连接

    开启共享后,Windows 通常会自动将 USB RNDIS 网卡地址设置为 192.168.137.1/24

  3. 在 Quectel Pi H1 上重新配置 usb0 IP(需与 Windows 分配的网段匹配):

    sudo ip addr flush dev usb0
    sudo ip link set usb0 up
    sudo ip addr add 192.168.137.2/24 dev usb0
    sudo ip addr show usb0
    
  4. 在 Quectel Pi H1 上添加默认路由:

    sudo ip route replace default via 192.168.137.1 dev usb0
    
  5. 在 Quectel Pi H1 上配置 DNS:

    sudo sh -c 'printf "nameserver 8.8.8.8\n" > /etc/resolv.conf'
    
  6. 在 Quectel Pi H1 上验证外网访问:

    ping 8.8.8.8
    ping www.quectel.com
    

若能 ping 通公网 IP 但无法解析域名,请检查 DNS 配置。若 Windows 未将 USB RNDIS 网卡设置为 192.168.137.1,请以实际显示的 IP 为准,并确保 Quectel Pi H1 的 usb0 与其处于同一网段。

设备共享网络给 Windows

当 Quectel Pi H1 已通过其他接口联网时,可将网络共享给 Windows 主机。

Quectel Pi H1 实际上网接口可通过 ip route get 8.8.8.8 查询。

在 Quectel Pi H1 上开启 IPv4 转发:

sudo sysctl -w net.ipv4.ip_forward=1

在 Quectel Pi H1 上配置 NAT 转发:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT

若提示没有 iptables,可通过 apt 安装:

sudo apt update
sudo apt install iptables

在 Windows 端将网关设置为 Quectel Pi H1 的 IP(如 192.168.7.1)。

在 Windows 端验证外网访问(建议临时禁用其他网络连接以排除干扰):

ping 8.8.8.8
ping www.quectel.com

若 Quectel Pi H1 通过蜂窝网络或其他接口联网,请将 eth0 替换为实际上网接口。

常见问题排查

现象 排查方法
Quectel Pi H1 无 usb0 接口 确认 Type-C 线缆支持数据传输;执行 sudo qusb showpid 检查 USB 组合模式是否包含 RNDIS 或 NCM
主机端未出现新网卡 重新插拔线缆后查看 dmesg | tail -n 50 或设备管理器(Windows),确认系统是否识别到 USB Ethernet/RNDIS 设备
ping 通公网 IP 但无法解析域名 检查 /etc/resolv.conf 或系统 DNS 配置是否正确
配置 NAT 后仍无法上网 确认默认路由指向对端 USB 网卡地址;执行 iptables -t nat -L -n -v 检查转发规则是否生效