Skip to content

focuses on modem management, specifically for OpenWRT.

License

Notifications You must be signed in to change notification settings

FUjr/modem_feeds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QModem

English

这是一个模组管理插件,兼容 Openwrt 21及之后的版本,使用 lua 开发,因此同时兼容 QWRT/LEDE/Immortalwrt/Openwrt

(使用 js luci 时请添加 luci-compat 软件包)

[TOC]

快速开始

增加 feed 源

要使用 QModem,首先需要在 OpenWRT 中添加一个 feed 源:

echo >> feeds.conf.default
echo 'src-git modem https://github.com/FUjr/modem_feeds.git;main' >> feeds.conf.default
./scripts/feeds update modem
./scripts/feeds install -a -p modem

集成软件包

在终端中运行以下命令以打开配置菜单:

make menuconfig

选择和安装软件包

在配置菜单中,您可以选择以下软件包:(均在 Luci/Application 下)

软件包名 功能
luci-app-qmodem 有模组信息、拨号设置、高级设置三大功能块。由于主程序在这里,因此其他功能依赖该程序(原谅我将后端程序也放在了这里)。
Add Lua Luci Homepage 添加 Lua Luci 首页。luci2(Js Luci)首页默认已添加,若使用luci2时勾选了这个,会有两个首页
Add PCIe Modem SUPPORT 勾选 PCIe 驱动,需要feeds里有kmod_mhi
Using Tom customized Quectel CM 使用本仓库定制的的 Quectel CM,支持屏蔽添加默认路由、屏蔽修改resolv.conf等功能(三选一即可)
Using QWRT quectel-CM-5G 使用 QWRT 仓库的 quectel-CM-5G。(三选一即可)
Using Normal quectel-cm 使用普通的 quectel-cm。(三选一即可)
luci-app-qmodem-hc 支持 hc-g80 SIM 卡切换,该插件为设备专属插件
luci-app-qmodem-mwan 支持多 WAN 设置。
luci-app-qmodem-sms 短信首发功能
luci-app-qmodem-ttl TTL 重写功能

项目介绍

为什么选择该项目

  • 稳定性:通过缓存和减少 AT 指令的次数,提高了系统的稳定性。
  • 可扩展性:最小化 API 端点和统一后端程序设计,便于二次开发和扩展。
  • 可靠性:功能分离设计,确保核心功能的稳定性,即使其他功能出现问题也不影响主要使用。
  • 多模组支持: 根据 slot 定位模组,模组和配置有一对一的绑定关系,即使重启或热插拔模组也不会造成模组和配置混淆。
  • 短信支持: 长短信合并、中文短信发送
  • 多语言支持: 开发时将语言资源分离,可以添加需要的语言
  • IPV6支持: 部分支持ipv6 ,测试条件 (移动卡 rm50xq qmi/rmnet/mbim 驱动,使用quectel-CM-M拨号,使用扩展前缀模式)
  • 优化的quectel-CM:原版quectel-CM会覆盖resolv.conf 覆盖默认路由,本仓库提供改进版,增加了对应的开关选项
  • 全新实现的AT工具:尽管 sendat、sms_tool 和 gl_modem_at 这三个工具在大多数情况下表现出色,能够满足大部分需求,但它们在超时机制、mhi_DUN 和短信支持方面各自存在一些小问题。如果想要同时使用所有功能,就必须内置这三个 AT 工具,这显然不够优雅,因此我参考这三个工具,实现了一个包含所有功能的at工具。

模组信息

在首页显示(Lua)

模组高级设置

可对模组进行拨号模式、制式偏号、IMEI设置、锁小区、锁频段等设置

拨号总览

全局配置

提供全局性的配置选项,允许用户进行统一的模组配置。

  • 重新加载拨号:重新加载模组的配置文件,确保配置生效。
  • 拨号总开关: 拨号总开关,启用后才会进行拨号

配置列表

  • 插槽id为模组标识符与配置文件关联(即同一个端口即使更换模组也会使用同一套配置,同一个模组更换了端口也需要重新配置)
  • 拨号相关配置修改后需要重拨才会生效
  • 网络接口的名称是模组别名,若模组别名留空则为插槽id

短信

Mwan配置

该页面是 MWAN 配置 界面,帮助用户管理多 WAN 连接,通过监控特定 IP 来确保网络的稳定性和可靠性。用户可以根据需求自定义连接的优先级和接口,从而实现负载均衡或故障转移

功能 描述
启用 MWAN
相同源地址 选中此框后,路由器将在一定时间内使用相同的 WAN 端口处理来自同一源的流量。
IPv4 配置
接口 选择要添加的 WAN 接口(如 wanusb0 等),以便于配置不同的网络连接。
跟踪IP 输入特定的 IP 地址或域名。
优先级 设置连接的优先级,范围为 1 到 255,数值越低优先级越高。优先级一致会根据权重负载均衡,只有优先级高的故障才会启用低优先级的接口

QModem 设置

配置项 描述
禁用自动加载/移除模组 关闭以下所有功能。
启用 PCIe 模块扫描 选中后,系统会在开机时扫描 PCIe 接口。(耗时较长)
启用 USB 模块扫描 选中后,系统会在开机时扫描 USB 接口。(耗时较长)
监控设置的 USB 接口 系统会在开机时扫描插槽配置里的 USB 端口,同时监控 USB 的热插拔事件。
监控设置的 PCIe 接口 系统会在开机时扫描插槽配置里的 PCIe 端口。

插槽配置

该页面允许用户对每个插槽进行一些设置

配置项 描述
插槽类型 选择插槽的类型(PCIe/USB),用于识别设备。
插槽 ID 输入设备的唯一标识符(如 0001:11:00.0[pcie]),用于设备识别。
SIM 卡指示灯 绑定插槽与相应的指示灯,以显示 SIM 卡的状态。
网络指示灯 绑定插槽的网络状态指示灯,以便监控网络连接的状态。
启用 5G 转网络口 启用后,支持的模组通过网络接口与主机通信,以提高性能。
关联的 USB 配置该项可将 USB 端口与 PCIe 端口关联,使用兼容性更好的 USB serial 驱动进行 AT 通信。

开发计划

计划 进度
将后端程序与luci-app完全分离 0
切换js luci 5%

鸣谢

在模组管理插件的开发过程中,参考了以下仓库

项目 参考内容
https://github.com/Siriling/5G-Modem-Support 模组列表和部分at实现
https://github.com/fujr/luci-app-4gmodem 沿用该项目大部分思想
https://github.com/obsy/sms_tool AT命令发送工具
https://github.com/gl-inet/gl-modem-at AT命令发送工具
https://github.com/ouyangzq/sendat AT命令发送工具