This commit is contained in:
ling 2024-05-13 15:29:18 +08:00
parent 8948cd5bd6
commit 1ad23e0836
15 changed files with 197 additions and 87 deletions

View File

@ -11,11 +11,23 @@ PKG_LICENSE:=GPLv3
PKG_LINCESE_FILES:=LICENSE PKG_LINCESE_FILES:=LICENSE
PKF_MAINTAINER:=Siriling <siriling@qq.com> PKF_MAINTAINER:=Siriling <siriling@qq.com>
LUCI_DEPENDS:=+luci-compat \ LUCI_DEPENDS:=+luci-compat \
+kmod-usb2 +kmod-usb3 \
+kmod-usb-net-sierrawireless +kmod-usb-ohci \
+kmod-usb-serial-option +kmod-usb-serial +kmod-usb-serial-qualcomm \
+kmod-usb-net +kmod-usb-acm \
+kmod-usb-wdm +kmod-usb-net-qmi-wwan \
+kmod-usb-net-cdc-ether \
+kmod-usb-net-cdc-mbim \
+kmod-usb-net-rndis \
+kmod-usb-net-cdc-ncm +kmod-usb-net-huawei-cdc-ncm \
+usbutils \ +usbutils \
+kmod-pcie_mhi \
+pciutils \ +pciutils \
+quectel-CM-5G \ +quectel-CM-5G \
+modemmanager \
+luci-proto-modemmanager \
+sms-tool \ +sms-tool \
+jq \ +jq
define Package/luci-app-modem/conffiles define Package/luci-app-modem/conffiles
/etc/config/modem /etc/config/modem

View File

@ -28,6 +28,8 @@
| -------- | -------------------------------------------------- | -------- | ------------ | ---------------------------- | | -------- | -------------------------------------------------- | -------- | ------------ | ---------------------------- |
| 移远通信 | RG200U-CNDONGLE版 | 紫光展锐 | USB | ECMMBIMRNDISNCM | | 移远通信 | RG200U-CNDONGLE版 | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500U-CN | 紫光展锐 | USB | ECMMBIMRNDISNCM | | 移远通信 | RM500U-CN | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500U-EA | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500U-CNV | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 移远通信 | RM500Q-CN | 高通 | USB | RMNETECMMBIMRNDISNCM | | 移远通信 | RM500Q-CN | 高通 | USB | RMNETECMMBIMRNDISNCM |
| 移远通信 | RM500Q-AE | 高通 | USB | RMNETECMMBIMRNDISNCM | | 移远通信 | RM500Q-AE | 高通 | USB | RMNETECMMBIMRNDISNCM |
| 移远通信 | RM500Q-GL | 高通 | USB | RMNETECMMBIMRNDISNCM | | 移远通信 | RM500Q-GL | 高通 | USB | RMNETECMMBIMRNDISNCM |
@ -39,13 +41,13 @@
| 移远通信 | RM500Q-GL | 高通 | PCIE | RMNETMBIM | | 移远通信 | RM500Q-GL | 高通 | PCIE | RMNETMBIM |
| 移远通信 | RG500Q-EA | 高通 | PCIE | RMNETMBIM | | 移远通信 | RG500Q-EA | 高通 | PCIE | RMNETMBIM |
| 移远通信 | RM502Q-GL | 高通 | PCIE | RMNETMBIM | | 移远通信 | RM502Q-GL | 高通 | PCIE | RMNETMBIM |
| 移远通信 | RM520Q-GL | 高通 | PCIE | RMNETMBIM | | 移远通信 | RM520N-GL | 高通 | PCIE | RMNETMBIM |
| 移远通信 | RG520N-EU | 高通 | PCIE | RMNETMBIM | | 移远通信 | RG520N-EU | 高通 | PCIE | RMNETMBIM |
| 广和通 | FM650-CN | 紫光展锐 | USB | ECMMBIMRNDISNCM | | 广和通 | FM650-CN | 紫光展锐 | USB | ECMMBIMRNDISNCM |
| 广和通 | FM350-GL | 联发科 | USB | RNDIS | | 广和通 | FM350-GL | 联发科 | USB | RNDIS |
| 广和通 | FM150-AE-01FM150-AE-11FM150-AE-21FM150-NA-01 | 高通 | USB | RMNETECMMBIMRNDISNCM | | 广和通 | FM150-AE-01FM150-AE-11FM150-AE-21FM150-NA-01 | 高通 | USB | RMNETECMMBIMRNDISNCM |
| 广和通 | FM350-GL | 联发科 | PCIE | MBIM | | 广和通 | FM350-GL | 联发科 | PCIE | MBIM |
| 广和通 | FM150-AE-00FM150-AE-10FM150-AE-20FM150-NA-00 | 高通 | PCIE | QMI | | 广和通 | FM150-AE-00FM150-AE-10FM150-AE-20FM150-NA-00 | 高通 | PCIE | QMI |
| 美格智能 | SRM815 | 高通 | USB | ECMMBIMRNDISNCM | | 美格智能 | SRM815 | 高通 | USB | RMNETECMMBIMRNDISNCM |
| 美格智能 | SRM825 | 高通 | USB | ECMMBIMRNDISNCM | | 美格智能 | SRM825 | 高通 | USB | RMNETECMMBIMRNDISNCM |
| 美格智能 | SRM825N | 高通 | USB | ECMMBIMRNDISNCM | | 美格智能 | SRM825N | 高通 | USB | RMNETECMMBIMRNDISNCM |

View File

@ -869,8 +869,10 @@ function getPluginInfo()
-- 获取拨号工具信息 -- 获取拨号工具信息
local dial_tool_info={} local dial_tool_info={}
dial_tool_info["quectel-CM-5G"]="Not installed"
dial_tool_info["modemmanager"]="Not installed" dial_tool_info["modemmanager"]="Not installed"
dial_tool_info["quectel-CM-5G"]="Not installed"
dial_tool_info["fibocom-dial"]="Not installed"
dial_tool_info["meig-cm"]="Not installed"
setPluginVersionInfo(dial_tool_info) setPluginVersionInfo(dial_tool_info)
-- 获取通用驱动信息 -- 获取通用驱动信息
@ -882,21 +884,28 @@ function getPluginInfo()
-- 获取模组USB驱动信息 -- 获取模组USB驱动信息
local usb_driver_info={} local usb_driver_info={}
--通用驱动
usb_driver_info["qmi_wwan.ko"]="Not loaded" usb_driver_info["qmi_wwan.ko"]="Not loaded"
usb_driver_info["GobiNet.ko"]="Not loaded" usb_driver_info["GobiNet.ko"]="Not loaded"
usb_driver_info["cdc_ether.ko"]="Not loaded" usb_driver_info["cdc_ether.ko"]="Not loaded"
usb_driver_info["cdc_mbim.ko"]="Not loaded" usb_driver_info["cdc_mbim.ko"]="Not loaded"
usb_driver_info["rndis_host.ko"]="Not loaded" usb_driver_info["rndis_host.ko"]="Not loaded"
usb_driver_info["cdc_ncm.ko"]="Not loaded" usb_driver_info["cdc_ncm.ko"]="Not loaded"
--制造商私有驱动
usb_driver_info["qmi_wwan_q.ko"]="Not loaded"
usb_driver_info["qmi_wwan_f.ko"]="Not loaded"
usb_driver_info["meig_cdc_driver.ko"]="Not loaded"
setModelStatus(usb_driver_info) setModelStatus(usb_driver_info)
-- 获取模组PCIE驱动信息 -- 获取模组PCIE驱动信息
local pcie_driver_info={} local pcie_driver_info={}
--通用驱动
pcie_driver_info["mhi_net.ko"]="Not loaded" pcie_driver_info["mhi_net.ko"]="Not loaded"
pcie_driver_info["qrtr_mhi.ko"]="Not loaded" pcie_driver_info["qrtr_mhi.ko"]="Not loaded"
pcie_driver_info["mhi_pci_generic.ko"]="Not loaded" pcie_driver_info["mhi_pci_generic.ko"]="Not loaded"
pcie_driver_info["mhi_wwan_mbim.ko"]="Not loaded" pcie_driver_info["mhi_wwan_mbim.ko"]="Not loaded"
pcie_driver_info["mhi_wwan_ctrl.ko"]="Not loaded" pcie_driver_info["mhi_wwan_ctrl.ko"]="Not loaded"
--制造商私有驱动
pcie_driver_info["pcie_mhi.ko"]="Not loaded" pcie_driver_info["pcie_mhi.ko"]="Not loaded"
pcie_driver_info["mtk_pcie_wwan_m80.ko"]="Not loaded" pcie_driver_info["mtk_pcie_wwan_m80.ko"]="Not loaded"
setModelStatus(pcie_driver_info) setModelStatus(pcie_driver_info)

View File

@ -63,7 +63,7 @@ o = s:option(DummyValue, "network", translate("Network"))
o = s:option(DummyValue, "name", translate("Modem Name")) o = s:option(DummyValue, "name", translate("Modem Name"))
o.cfgvalue = function(t, n) o.cfgvalue = function(t, n)
local name = (Value.cfgvalue(t, n) or "") local name = (Value.cfgvalue(t, n) or "")
return name:upper() return translate(name:upper())
end end
-- AT串口 -- AT串口

View File

@ -509,6 +509,9 @@
document.getElementById('mode_option').innerHTML=mode_option_view; document.getElementById('mode_option').innerHTML=mode_option_view;
//设置拨号模式选项 //设置拨号模式选项
if (current_mode=="gobinet") {
current_mode="qmi"
}
element=document.getElementById('mode_option_'+current_mode).checked=true; element=document.getElementById('mode_option_'+current_mode).checked=true;
//设置第一次获取数据标志 //设置第一次获取数据标志

View File

@ -118,7 +118,18 @@
<h3><%:Dial Tool Info%></h3> <h3><%:Dial Tool Info%></h3>
<div class="cbi-section-node"> <div class="cbi-section-node">
<div class="cbi-value"> <div class="cbi-value">
<label class="cbi-value-title"><%:quectel-CM Version%></label> <label class="cbi-value-title">modemmanager <%:Version%></label>
<div class="cbi-value-field">
<div class="version">
<strong id="modemmanager_version"></strong>
</div>
<!-- <div class="cbi-value-description">
<%:Select a modem for debugging%>
</div> -->
</div>
</div>
<div class="cbi-value">
<label class="cbi-value-title">quectel-CM <%:Version%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<div class="version"> <div class="version">
<strong id="quectel-CM-5G_version"></strong> <strong id="quectel-CM-5G_version"></strong>
@ -129,10 +140,21 @@
</div> </div>
</div> </div>
<div class="cbi-value cbi-value-last"> <div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:modemmanager Version%></label> <label class="cbi-value-title">fibocom-dial <%:Version%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<div class="version"> <div class="version">
<strong id="modemmanager_version"></strong> <strong id="fibocom-dial_version"></strong>
</div>
<!-- <div class="cbi-value-description">
<%:Select a modem for debugging%>
</div> -->
</div>
</div>
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title">meig-cm <%:Version%></label>
<div class="cbi-value-field">
<div class="version">
<strong id="meig-cm_version"></strong>
</div> </div>
<!-- <div class="cbi-value-description"> <!-- <div class="cbi-value-description">
<%:Select a modem for debugging%> <%:Select a modem for debugging%>
@ -182,39 +204,64 @@
<tbody> <tbody>
<tr class="tr cbi-section-table-titles anonymous"> <tr class="tr cbi-section-table-titles anonymous">
<th class="th cbi-section-table-cell"><%:Driver Type%></th> <th class="th cbi-section-table-cell"><%:Driver Type%></th>
<th class="th cbi-section-table-cell"><%:Mode%></th>
<th class="th cbi-section-table-cell"><%:Kernel Model%></th> <th class="th cbi-section-table-cell"><%:Kernel Model%></th>
<th class="th cbi-section-table-cell"><%:Status%></th> <th class="th cbi-section-table-cell"><%:Status%></th>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-1"> <tr class="tr cbi-section-table-row cbi-rowstyle-1">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="qmi"><%:QMI%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="qmi_wwan"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="qmi"><%:QMI%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="qmi_kernel_model_name">qmi_wwan.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="qmi_kernel_model_name">qmi_wwan.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="qmi_wwan_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="qmi_wwan_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-2"> <tr class="tr cbi-section-table-row cbi-rowstyle-2">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="gobinet"><%:GobiNet%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="gobinet"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="gobinet"><%:GobiNet%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="gobinet_kernel_model_name">GobiNet.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="gobinet_kernel_model_name">GobiNet.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="gobinet_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="gobinet_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-1"> <tr class="tr cbi-section-table-row cbi-rowstyle-1">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="ecm"><%:ECM%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="cdc_ether"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="ecm"><%:ECM%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="ecm_kernel_model_name">cdc_ether.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="ecm_kernel_model_name">cdc_ether.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_ether_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_ether_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-2"> <tr class="tr cbi-section-table-row cbi-rowstyle-2">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="mbim"><%:MBIM%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="cdc_mbim"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="mbim"><%:MBIM%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="mbim_kernel_model_name">cdc_mbim.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="mbim_kernel_model_name">cdc_mbim.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_mbim_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_mbim_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-1"> <tr class="tr cbi-section-table-row cbi-rowstyle-1">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="rndis"><%:RNDIS%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="rndis_host"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="rndis"><%:RNDIS%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="rndis_kernel_model_name">rndis_host.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="rndis_kernel_model_name">rndis_host.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="rndis_host_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="rndis_host_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-2"> <tr class="tr cbi-section-table-row cbi-rowstyle-2">
<td class="td cbi-value-field" data-title="<%:Driver Type%>" id="ecm"><%:NCM%></td> <td class="td cbi-value-field" data-title="<%:Driver Type%>" id="cdc_ncm"><%:General%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>" id="ecm"><%:NCM%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="ncm_kernel_model_name">cdc_ncm.ko</td> <td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="ncm_kernel_model_name">cdc_ncm.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_ncm_status">-</td> <td class="td cbi-value-field" data-title="<%:Status%>" id="cdc_ncm_status">-</td>
</tr> </tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-1">
<td class="td cbi-value-field" data-title="<%:Driver Type%>"><%:Private (Quectel)%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>"><%:QMI%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="qmi_wwan_q_kernel_model_name">qmi_wwan_q.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="qmi_wwan_q_status">-</td>
</tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-2">
<td class="td cbi-value-field" data-title="<%:Driver Type%>"><%:Private (Fibocom)%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>"><%:QMI%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="qmi_wwan_f_kernel_model_name">qmi_wwan_f.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="qmi_wwan_f_status">-</td>
</tr>
<tr class="tr cbi-section-table-row cbi-rowstyle-1">
<td class="td cbi-value-field" data-title="<%:Driver Type%>"><%:Private (Meig)%></td>
<td class="td cbi-value-field" data-title="<%:Mode%>"><%:NCM%></td>
<td class="td cbi-value-field" data-title="<%:Kernel Model%>" id="meig_cdc_driver_kernel_model_name">meig_cdc_driver.ko</td>
<td class="td cbi-value-field" data-title="<%:Status%>" id="meig_cdc_driver_status">-</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -604,11 +604,8 @@ msgstr "插件版本"
msgid "Dial Tool Info" msgid "Dial Tool Info"
msgstr "拨号工具信息" msgstr "拨号工具信息"
msgid "quectel-CM Version" msgid "Version"
msgstr "quectel-CM 版本" msgstr "版本"
msgid "modemmanager Version"
msgstr "modemmanager 版本"
msgid "Not installed" msgid "Not installed"
msgstr "未安装" msgstr "未安装"
@ -644,4 +641,13 @@ msgid "General"
msgstr "通用" msgstr "通用"
msgid "Private" msgid "Private"
msgstr "私有" msgstr "私有"
msgid "Private (Quectel)"
msgstr "私有(移远)"
msgid "Private (Fibocom)"
msgstr "私有(广和通)"
msgid "Private (Meig)"
msgstr "私有(美格)"

View File

@ -604,11 +604,8 @@ msgstr "插件版本"
msgid "Dial Tool Info" msgid "Dial Tool Info"
msgstr "拨号工具信息" msgstr "拨号工具信息"
msgid "quectel-CM Version" msgid "Version"
msgstr "quectel-CM 版本" msgstr "版本"
msgid "modemmanager Version"
msgstr "modemmanager 版本"
msgid "Not installed" msgid "Not installed"
msgstr "未安装" msgstr "未安装"
@ -644,4 +641,13 @@ msgid "General"
msgstr "通用" msgstr "通用"
msgid "Private" msgid "Private"
msgstr "私有" msgstr "私有"
msgid "Private (Quectel)"
msgstr "私有(移远)"
msgid "Private (Fibocom)"
msgstr "私有(广和通)"
msgid "Private (Meig)"
msgstr "私有(美格)"

View File

@ -324,11 +324,19 @@ qmi()
gobinet() gobinet()
{ {
#获取制造商
local manufacturer=$(uci -q get modem.modem${modem_no}.manufacturer)
#拨号 #拨号
procd_open_instance case $manufacturer in
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "gobinet" "quectel") qmi ;;
procd_set_param respawn *)
procd_close_instance procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "gobinet"
procd_set_param respawn
procd_close_instance
;;
esac
} }
ecm() ecm()
@ -399,11 +407,11 @@ stop_gobinet()
#停止拨号 #停止拨号
local at_command local at_command
if [ "$manufacturer" = "quectel" ]; then if [ "$manufacturer" = "quectel" ]; then
at_command='ATI' stop_qmi
elif [ "$manufacturer" = "fibocom" ]; then elif [ "$manufacturer" = "fibocom" ]; then
at_command='AT$QCRMCALL=0,1' at_command='AT$QCRMCALL=0,1'
elif [ "$manufacturer" = "meig" ]; then elif [ "$manufacturer" = "meig" ]; then
at_command='ATI' at_command="AT$QCRMCALL=0,1,${define_connect},2,1"
else else
at_command='ATI' at_command='ATI'
fi fi
@ -431,7 +439,7 @@ stop_ecm()
at_command="AT+GTRNDIS=0,${define_connect}" at_command="AT+GTRNDIS=0,${define_connect}"
fi fi
elif [ "$manufacturer" = "meig" ]; then elif [ "$manufacturer" = "meig" ]; then
at_command="AT$QCRMCALL=0,1,${define_connect},2,1" at_command="AT^NDISDUP=${define_connect},0"
else else
at_command='ATI' at_command='ATI'
fi fi
@ -620,13 +628,22 @@ dial()
[ -z "${modem_no}" ] && return 0 [ -z "${modem_no}" ] && return 0
#获取模组的拨号模式 #获取模组的拨号模式
local time=0
local mode local mode
while true; do while [ $time -lt 10 ]; do
mode=$(get_mode ${modem_no}) mode=$(get_mode ${modem_no})
[ -n "$mode" ] && [ "$mode" != "unknown" ] && break [ -n "$mode" ] && [ "$mode" != "unknown" ] && break
sleep 5s sleep 5s
time=$((time+1))
done done
#获取不到拨号模式
[ -z "$mode" ] || [ "$mode" = "unknown" ] && {
uci set modem.$1.enable=0
uci commit modem
return 0
}
#查看该移动网络是否已经有拨号配置在运行 #查看该移动网络是否已经有拨号配置在运行
mkdir -m 0755 -p "${MODEM_RUNDIR}" mkdir -m 0755 -p "${MODEM_RUNDIR}"
if [ ! -f "${MODEM_RUN_CONFIG}" ] || ! grep -q "${network}" "${MODEM_RUN_CONFIG}"; then if [ ! -f "${MODEM_RUN_CONFIG}" ] || ! grep -q "${network}" "${MODEM_RUN_CONFIG}"; then
@ -636,7 +653,7 @@ dial()
#获取网络接口 #获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface) local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口 #设置网络接口
set_interface "${modem_no}" "$network_interface" set_interface "${modem_no}" "${network_interface}"
else else
local config_id=$(awk -v network="${network}" -F',' '!/^#/ && $0 ~ network { print $2 }' "${MODEM_RUN_CONFIG}") local config_id=$(awk -v network="${network}" -F',' '!/^#/ && $0 ~ network { print $2 }' "${MODEM_RUN_CONFIG}")
#该移动网络已存在,且已有其他拨号配置在运行 #该移动网络已存在,且已有其他拨号配置在运行
@ -697,17 +714,10 @@ manual_set_modem_config()
#获取物理路径 #获取物理路径
local physical_path=$(m_get_device_physical_path ${network_path}) local physical_path=$(m_get_device_physical_path ${network_path})
#获取模组数量 #获取当前模组数量(下面新增配置会导致多一个,这里需要减掉一个)
local modem_number=$(uci -q get modem.@global[0].modem_number) local modem_number=$(uci -q get modem.@global[0].modem_number)
#模组配置是否存在 uci set modem.@global[0].modem_number=$((modem_number-1))
for i in $(seq 0 $((modem_number-1))); do
local modem_network=$(uci -q get modem.modem${i}.network)
if [ "$modem_network" = "$network" ]; then
# 配置已存在,退出
return
fi
done
#设置模组硬件配置 #设置模组硬件配置
m_set_modem_hardware_config "${physical_path}" m_set_modem_hardware_config "${physical_path}"
@ -780,6 +790,9 @@ service_triggers()
start_service() { start_service() {
#加载模组配置
config_load modem
#统计模组数量 #统计模组数量
modem_count=0 modem_count=0
config_foreach count_modem_number "modem-device" config_foreach count_modem_number "modem-device"
@ -787,8 +800,6 @@ start_service() {
uci set modem.@global[0].modem_number=${modem_count} uci set modem.@global[0].modem_number=${modem_count}
uci commit modem uci commit modem
#加载模组配置
config_load modem
#手动设置模组信息 #手动设置模组信息
config_foreach manual_set_modem_config "modem-device" config_foreach manual_set_modem_config "modem-device"

View File

@ -109,17 +109,10 @@ fibocom_get_mode()
case "$platform" in case "$platform" in
"qualcomm") "qualcomm")
case "$mode_num" in case "$mode_num" in
"17") mode="qmi" ;; #- "17"|"31"|"32"|"34") mode="qmi" ;;
"31") mode="qmi" ;; #-
"32") mode="qmi" ;;
"34") mode="qmi" ;;
# "32") mode="gobinet" ;; # "32") mode="gobinet" ;;
"18") mode="ecm" ;; "18"|"23"|"33"|"35") mode="ecm" ;;
"23") mode="ecm" ;; #- "29"|"30") mode="mbim" ;;
"33") mode="ecm" ;; #-
"35") mode="ecm" ;; #-
"29") mode="mbim" ;; #-
"30") mode="mbim" ;;
"24") mode="rndis" ;; "24") mode="rndis" ;;
"18") mode="ncm" ;; "18") mode="ncm" ;;
*) mode="$mode_num" ;; *) mode="$mode_num" ;;
@ -127,22 +120,17 @@ fibocom_get_mode()
;; ;;
"unisoc") "unisoc")
case "$mode_num" in case "$mode_num" in
"34") mode="ecm" ;; "34"|"35") mode="ecm" ;;
"35") mode="ecm" ;; #- "40"|"41") mode="mbim" ;;
"40") mode="mbim" ;; "38"|"39") mode="rndis" ;;
"41") mode="mbim" ;; #- "36"|"37") mode="ncm" ;;
"38") mode="rndis" ;;
"39") mode="rndis" ;; #-
"36") mode="ncm" ;;
"37") mode="ncm" ;; #-
*) mode="$mode_num" ;; *) mode="$mode_num" ;;
esac esac
;; ;;
"mediatek") "mediatek")
case "$mode_num" in case "$mode_num" in
"29") mode="mbim" ;; "29") mode="mbim" ;;
"40") mode="rndis" ;; #- "40"|"41") mode="rndis" ;;
"41") mode="rndis" ;;
*) mode="$mode_num" ;; *) mode="$mode_num" ;;
esac esac
;; ;;

View File

@ -101,12 +101,13 @@ meig_get_mode()
case "$platform" in case "$platform" in
"qualcomm") "qualcomm")
case "$mode_num" in case "$mode_num" in
"1") mode="qmi" ;; #- "1") mode="qmi" ;;
# "1") mode="gobinet" ;; # "1") mode="gobinet" ;;
"2") mode="ecm" ;; "2") mode="ecm" ;;
"7") mode="mbim" ;; "7") mode="mbim" ;;
"3") mode="rndis" ;; "3") mode="rndis" ;;
"2") mode="ncm" ;; "2") mode="ncm" ;;
"8") mode="unknown" ;;
*) mode="$mode_num" ;; *) mode="$mode_num" ;;
esac esac
;; ;;
@ -275,6 +276,8 @@ meig_get_temperature()
local temperature local temperature
if [ -n "$response" ]; then if [ -n "$response" ]; then
temperature="${response}$(printf "\xc2\xb0")C" temperature="${response}$(printf "\xc2\xb0")C"
else
temperature="NaN $(printf "\xc2\xb0")C"
fi fi
echo "${temperature}" echo "${temperature}"

View File

@ -358,7 +358,7 @@ get_modem_info()
#检查模块状态(是否处于重启,重置,串口异常状态) #检查模块状态(是否处于重启,重置,串口异常状态)
local at_command="ATI" local at_command="ATI"
local response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command) local response=$(at ${at_port} ${at_command})
if [[ "$response" = *"failed"* ]] || [[ "$response" = *"$at_port"* ]]; then if [[ "$response" = *"failed"* ]] || [[ "$response" = *"$at_port"* ]]; then
debug "模组AT串口未就绪" debug "模组AT串口未就绪"
return return

View File

@ -83,11 +83,12 @@ gobinet_dial()
#拨号 #拨号
local at_command local at_command
if [ "$manufacturer" = "quectel" ]; then if [ "$manufacturer" = "quectel" ]; then
#移远不走该分支
at_command='ATI' at_command='ATI'
elif [ "$manufacturer" = "fibocom" ]; then elif [ "$manufacturer" = "fibocom" ]; then
at_command='AT$QCRMCALL=1,3' at_command='AT$QCRMCALL=1,3'
elif [ "$manufacturer" = "meig" ]; then elif [ "$manufacturer" = "meig" ]; then
at_command="ATI" at_command="AT$QCRMCALL=1,1,${define_connect},2,1"
else else
at_command='ATI' at_command='ATI'
fi fi
@ -122,7 +123,7 @@ ecm_dial()
elif [ "$manufacturer" = "fibocom" ]; then elif [ "$manufacturer" = "fibocom" ]; then
at_command="AT+GTRNDIS=1,${define_connect}" at_command="AT+GTRNDIS=1,${define_connect}"
elif [ "$manufacturer" = "meig" ]; then elif [ "$manufacturer" = "meig" ]; then
at_command="AT$QCRMCALL=1,1,${define_connect},2,1" at_command="AT^NDISDUP=${define_connect},1"
else else
at_command='ATI' at_command='ATI'
fi fi

View File

@ -17,6 +17,22 @@
"define_connect":"1", "define_connect":"1",
"modes":["ecm","mbim","rndis","ncm"] "modes":["ecm","mbim","rndis","ncm"]
}, },
"rm500u-ea":{
"manufacturer_id":"2c7c",
"manufacturer":"quectel",
"platform":"unisoc",
"data_interface":"usb",
"define_connect":"1",
"modes":["ecm","mbim","rndis","ncm"]
},
"rm500u-cnv":{
"manufacturer_id":"2c7c",
"manufacturer":"quectel",
"platform":"unisoc",
"data_interface":"usb",
"define_connect":"1",
"modes":["ecm","mbim","rndis","ncm"]
},
"rm500q-cn":{ "rm500q-cn":{
"manufacturer_id":"2c7c", "manufacturer_id":"2c7c",
"manufacturer":"quectel", "manufacturer":"quectel",
@ -119,7 +135,7 @@
"platform":"qualcomm", "platform":"qualcomm",
"data_interface":"usb", "data_interface":"usb",
"define_connect":"1", "define_connect":"1",
"modes":["ecm","rndis","ncm"] "modes":["qmi","gobinet","ecm","rndis","ncm"]
}, },
"srm825":{ "srm825":{
"manufacturer_id":"2dee", "manufacturer_id":"2dee",
@ -127,7 +143,7 @@
"platform":"qualcomm", "platform":"qualcomm",
"data_interface":"usb", "data_interface":"usb",
"define_connect":"1", "define_connect":"1",
"modes":["ecm","rndis","ncm"] "modes":["qmi","gobinet","ecm","rndis","ncm"]
}, },
"srm825n":{ "srm825n":{
"manufacturer_id":"2dee", "manufacturer_id":"2dee",
@ -135,7 +151,7 @@
"platform":"qualcomm", "platform":"qualcomm",
"data_interface":"usb", "data_interface":"usb",
"define_connect":"1", "define_connect":"1",
"modes":["ecm","rndis","ncm"] "modes":["qmi","gobinet","ecm","rndis","ncm"]
} }
}, },
"pcie":{ "pcie":{
@ -167,7 +183,7 @@
"define_connect":"1", "define_connect":"1",
"modes":["qmi","gobinet","mbim"] "modes":["qmi","gobinet","mbim"]
}, },
"rm520q-gl":{ "rm520n-gl":{
"manufacturer":"quectel", "manufacturer":"quectel",
"platform":"qualcomm", "platform":"qualcomm",
"data_interface":"pcie", "data_interface":"pcie",

View File

@ -62,22 +62,28 @@ m_report_event()
#模组预设 #模组预设
# $1:AT串口 # $1:AT串口
# $2:连接定义 # $2:连接定义
# $3:制造商
m_modem_presets() m_modem_presets()
{ {
local at_port="$1" local at_port="$1"
local define_connect="$2" local define_connect="$2"
local manufacturer="$3"
#运营商选择设置 #运营商选择设置
local at_command='AT+COPS=0,0' local at_command='AT+COPS=0,0'
at "${at_port}" "${at_command}" at "${at_port}" "${at_command}"
#设置IPv6地址格式
at_command='AT+CGPIAF=1,0,0,0'
at "${at_port}" "${at_command}"
#PDP设置 #PDP设置
at_command="AT+CGDCONT=${define_connect},\"IPV4V6\",\"\"" at_command="AT+CGDCONT=${define_connect},\"IPV4V6\",\"\""
at "${at_port}" "${at_command}" at "${at_port}" "${at_command}"
#制造商私有预设
case $manufacturer in
"quectel") quectel_presets ;;
"fibocom") fibocom_presets ;;
"meig") meig_presets ;;
"simcom") simcom_presets ;;
esac
} }
#获取设备物理路径 #获取设备物理路径
@ -364,9 +370,9 @@ handle_special_modem_name()
modem_name="fm350-gl" modem_name="fm350-gl"
} }
#RM500U-CNV #SRM825-PV
[[ "$modem_name" = *"rm500u-cn"* ]] && { [[ "$modem_name" = *"srm825-pv"* ]] && {
modem_name="rm500u-cn" modem_name="srm825"
} }
echo "$modem_name" echo "$modem_name"
@ -436,7 +442,7 @@ retry_set_modem_config()
done done
#设置模组预设 #设置模组预设
m_modem_presets "${at_port}" "${define_connect}" m_modem_presets "${at_port}" "${define_connect}" "${manufacturer}"
#打印日志 #打印日志
m_log "info" "Successfully retrying to configure the Modem ${modem_name}" m_log "info" "Successfully retrying to configure the Modem ${modem_name}"
@ -509,7 +515,7 @@ m_set_modem_config()
done done
#设置模组预设 #设置模组预设
m_modem_presets "${at_port}" "${define_connect}" m_modem_presets "${at_port}" "${define_connect}" "${manufacturer}"
#打印日志 #打印日志
m_log "info" "${log_message}" m_log "info" "${log_message}"
@ -532,7 +538,7 @@ m_set_usb_at_port()
local modem_at_port=$(uci -q get modem.modem${modem_no}.at_port) local modem_at_port=$(uci -q get modem.modem${modem_no}.at_port)
[ -z "$modem_at_port" ] && { [ -z "$modem_at_port" ] && {
local response="$(sh ${SCRIPT_DIR}/modem_at.sh ${port} 'ATI')" local response="$(at ${port} 'ATI')"
local str1="No" #No response from modem. local str1="No" #No response from modem.
local str2="failed" local str2="failed"
if [[ "$response" != *"$str1"* ]] && [[ "$response" != *"$str2"* ]] && [ -n "$response" ]; then if [[ "$response" != *"$str1"* ]] && [[ "$response" != *"$str2"* ]] && [ -n "$response" ]; then