OpenWRT 4G WAN 配置
本分步教程将向您展示如何配置 4G mPCIe 蜂窝调制解调器,并将其用作 OpenWRT 中的主要互联网连接。
请注意,本文假设您已经安装了 OpenWRT。如果尚未安装,请先在您的路由器上安装 OpenWRT。
与 OpenWRT 兼容的 4G 硬件
您需要做的第一件事是拥有兼容的硬件。市场上有许多 3G、4G 和 LTE 调制解调器,但并非所有都与 OpenWRT 良好兼容。某些调制解调器与某些主板不兼容。
在本教程中,我们使用的是带有 APU4D4 主板的 Quectel EC25-E LTE 调制解调器。根据我们的经验,这种硬件组合效果非常好。
如果您也使用 PC Engines APU3 或 APU4,请务必将 SIM 卡连接到 SIM1 插槽,并将您的调制解调器连接到中间的 mPCIe 插槽。如果您的操作系统安装在 SD 卡或 USB 拇指驱动器(USB 闪存驱动器,U 盘)上,您也可以使用通常被 mSATA SSD 驱动器占用的第一个 mPCIe 插槽。在这种情况下,您应该将 SIM 卡连接到 SIM2 插槽。
请参考下图了解详细信息。
4G LTE 速度
市场上流行的移动调制解调器属于 Category 4 类别。Category 4 调制解调器的理论最大下载速度为 150Mbps,上传速度为 50Mbps。请注意,这些速度是理论值,在实际应用中,通常最多只能达到 100Mbit/s 的速度。实际速度取决于多种因素,例如距离最近基站的距离、基站的容量、使用的天线、一天中的时间甚至天气条件。
配置 QMI 接口
有许多不同的专有蜂窝通信协议,了解哪些协议运行良好、您的调制解调器支持哪些协议以及如何使调制解调器正常工作可能会让人感到有些不知所措。有 PPP、QMI、MBIM、NCM 和其他一些。每种协议的配置略有不同,并且在 OpenWRT 中的支持程度也不同。这真是一团糟,值得单独写一篇文章来介绍。
在本文中,我们使用的是 Quectel 调制解调器,因此我们将使用 QMI 协议。该协议在 OpenWRT 中得到很好的支持,并且能够提供良好的性能。
步骤 1:安装 QMI 软件包
转到“Software”(软件) -> “Update list”(更新列表) -> 搜索 “QMI” -> 安装以下软件包:
qmi-utils luci-proto-qmi
现在您需要重启路由器。如果您不重启,下一步将无法进行。
步骤 2:创建 QMI 接口
转到 “Network”(网络) => “Interfaces”(接口) => 点击 “Add new interface”(添加新接口)。
您可以输入任何您喜欢的名称。在本示例中,我将我的接口命名为 “4G”。
在 “Protocol”(协议)字段中选择 “QMI”。如果您在列表中看不到 QMI,则说明您尚未安装正确的软件包或尚未重启路由器。
点击 “Create interface”(创建接口)进入下一步。
这是您的 LTE 连接的主要配置屏幕。这里重要的配置字段是 “APN” 和 “Modem device”(调制解调器设备)。
步骤 3:APN 配置
APN 代表接入点名称(Access Point Name),它是您的调制解调器尝试连接以访问公共互联网的名称。它类似于 WiFi 网络中的 SSID。如果您不知道在此处输入什么,请在 Google 上搜索 “APN + 您的运营商名称”。
在 “Modem device”(调制解调器设备)下拉菜单中选择 “/dev/cdc-wdm0”。如果您在下拉菜单中看不到此设备,则说明您的调制解调器未被检测到。请转到故障排除部分。
按照屏幕截图中的显示输入其他字段。如果您的 SIM 卡有 PIN 码,请确保输入。
点击 “Save”(保存)。
一分钟后,您的接口应该如下图所示。
请注意,出现了两个接口。一个名为 “4G”,另一个名为 “Virtual dynamic interface (DHCP client)”(虚拟动态接口 (DHCP 客户端)),名为 “4G_4”。
“_4” 表示该接口具有 IPv4 IP 地址。这基于上一步中选择的 “PDP Type”(PDP 类型)。如果您的运营商支持 IPv6,您也可以使用它(不推荐)。
如果您看到像屏幕截图中的有效 IPv4 地址,则表示您的连接已成功建立,最后要做的是将 4G 接口配置为默认 WAN。
如果您看到 “NETWORK_REGISTRATION_FAILED”(网络注册失败),请关闭路由器电源,等待几秒钟后再重新打开。软重启可能不起作用,请进行完全关机。如果这没有帮助,请转到故障排除部分。
步骤 4:将 4G 接口设置为默认 WAN
请注意,在之前的屏幕截图中,eth0 上有一个有线 WAN 接口。我们需要删除此接口并将 4G 接口配置为 WAN。
点击 “WAN” 旁边的 “Delete”(删除)按钮,然后确认删除。
现在点击 “4G” 接口上的 “Edit”(编辑)=> 转到 “Firewall settings”(防火墙设置)选项卡 => “Assign firewall zone”(分配防火墙区域) => 选择 “WAN” => “Save”(保存)。
结果应类似于下图。至此,您应该拥有一个可以正常工作的 OpenWrt 4G 路由器了。
故障排除
如果您遇到一些問題,這裡提供一些命令來幫助您診斷問題。您需要一個 SSH 會話或一個串列控制台連線來輸入這些命令。
檢查連線狀態
以下是當數據機連接和斷開連接時的樣子:
root@OpenWrt:/# uqmi -d /dev/cdc-wdm0 --get-data-status
"disconnected"
root@OpenWrt:/# uqmi -d /dev/cdc-wdm0 --get-data-status
"connected"
uqmi 命令卡住
如果您輸入任何 uqmi 命令後沒有輸出,您可能需要編輯 qmi.sh 腳本來修復它。 該檔案位於 /lib/netifd/proto/qmi.sh 找到看起來像這樣的行:
while uqmi -s -d “$device” –get-pin-status | grep ‘“UIM uninitialized”’ > /dev/null; do |
在 OpenWrt 19.7 上,它位於第 83 行。如果您有更新或更舊的作業系統版本,它可能位於不同的行。 在上面的行之前添加以下 3 行:
uqmi -s -d "$device" --get-pin-status &
sleep 3
killall uqmi || echo "UQMI now works fine!"
這個修復目前對於 SIM7600G-H 卡是必要的。
檢查 SIM 卡狀態
當未偵測到 SIM 卡時,它看起來像這樣:
root@OpenWrt:/# qmicli --device=/dev/cdc-wdm0 --device-open-proxy --uim-get-card-status
[/dev/cdc-wdm0] Successfully got card status
Provisioning applications:
Primary GW: session doesn't exist
Primary 1X: session doesn't exist
Secondary GW: session doesn't exist
Secondary 1X: session doesn't exist
Slot [1]:
Card state: 'error: no-atr-received (3)'
UPIN state: 'not-initialized'
UPIN retries: '0'
UPUK retries: '0'
當偵測到 SIM 卡時,它應該看起來類似這樣:
root@OpenWrt:/# qmicli --device=/dev/cdc-wdm0 --device-open-proxy --uim-get-card-status
[/dev/cdc-wdm0] Successfully got card status
Provisioning applications:
Primary GW: slot '1', application '1'
Primary 1X: session doesn't exist
Secondary GW: session doesn't exist
Secondary 1X: session doesn't exist
Slot [1]:
Card state: 'present'
UPIN state: 'not-initialized'
UPIN retries: '0'
UPUK retries: '0'
Application [1]:
Application type: 'usim (2)'
Application state: 'ready'
Application ID:
A0:00:00:00:87:10:02:FF:44:FF:FF:89:06:00:00:FF
Personalization state: 'ready'
UPIN replaces PIN1: 'no'
PIN1 state: 'disabled'
PIN1 retries: '3'
PUK1 retries: '10'
PIN2 state: 'enabled-not-verified'
PIN2 retries: '3'
PUK2 retries: '10'
請注意,在 APU 路由器上,您必須關閉設備,拔掉電源線,然後再插回去才能偵測到 SIM 卡。熱插拔,甚至常規重啟都無效。
訊號狀態
訊號弱,天線已斷開連接。
root@OpenWrt:/# uqmi -d /dev/cdc-wdm0 --get-signal-info
{
"type": "lte",
"rssi": -90,
"rsrq": -9,
"rsrp": -125,
"snr": 34
}
以下是當一根天線正確連接時,強訊號的樣子。
root@OpenWrt:/# uqmi -d /dev/cdc-wdm0 --get-signal-info
{
"type": "lte",
"rssi": -66,
"rsrq": -8,
"rsrp": -97,
"snr": 186
}
連線設定
root@OpenWrt:/# uqmi -d /dev/cdc-wdm0 --get-current-settings
{
"pdp-type": "ipv4-or-ipv6",
"ip-family": "ipv4",
"mtu": 1500,
"ipv4": {
"ip": "100.68.0.195",
"dns1": "80.251.201.177",
"dns2": "80.251.201.178",
"gateway": "100.68.0.196",
"subnet": "255.255.255.248"
},
"ipv6": {
},
"domain-names": {
}
}
祝您好運!