mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 14:25:13 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
+190
@@ -0,0 +1,190 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2014 OpenWrt.org
|
||||
|
||||
START=94
|
||||
STOP=13
|
||||
USE_PROCD=1
|
||||
|
||||
#设置防火墙
|
||||
# $1:网络接口名称
|
||||
set_firewall()
|
||||
{
|
||||
local interface_name="$1"
|
||||
|
||||
local num=$(uci show firewall | grep "name='wan'" | wc -l)
|
||||
local wwan_num=$(uci -q get firewall.@zone[$num].network | grep -w "${interface_name}" | wc -l)
|
||||
if [ "$wwan_num" = "0" ]; then
|
||||
uci add_list firewall.@zone[$num].network="${interface_name}"
|
||||
fi
|
||||
uci commit firewall
|
||||
}
|
||||
|
||||
#设置IPv4网络接口
|
||||
# $1:网络接口名称
|
||||
# $2:网络接口
|
||||
set_ipv4_interface()
|
||||
{
|
||||
local interface_name="$1"
|
||||
local network_interface="$2"
|
||||
|
||||
#添加或修改网络配置
|
||||
uci set network.${interface_name}='interface'
|
||||
uci set network.${interface_name}.proto='dhcp'
|
||||
uci set network.${interface_name}.device="${network_interface}"
|
||||
uci set network.${interface_name}.device="${network_interface}"
|
||||
uci commit network
|
||||
|
||||
#加入WAN防火墙
|
||||
set_firewall "${interface_name}"
|
||||
|
||||
#启动网络接口
|
||||
ifup "${interface_name}"
|
||||
}
|
||||
|
||||
#设置IPv6网络接口
|
||||
# $1:网络接口名称
|
||||
# $2:网络接口
|
||||
set_ipv6_interface()
|
||||
{
|
||||
local interface_name="$1"
|
||||
local network_interface="$2"
|
||||
|
||||
#添加或修改网络配置
|
||||
uci set network.${interface_name}='interface'
|
||||
uci set network.${interface_name}.proto='dhcpv6'
|
||||
uci set network.${interface_name}.extendprefix='1'
|
||||
uci set network.${interface_name}.device="${network_interface}"
|
||||
uci set network.${interface_name}.device="${network_interface}"
|
||||
uci commit network
|
||||
|
||||
#加入WAN防火墙
|
||||
set_firewall "${interface_name}"
|
||||
|
||||
#启动网络接口
|
||||
ifup "${interface_name}"
|
||||
}
|
||||
|
||||
#设置IPV4和IPv6网络接口
|
||||
# $1:IPV4网络接口名称
|
||||
# $2:IPv6网络接口名称
|
||||
# $3:网络接口
|
||||
set_ipv4v6_interface()
|
||||
{
|
||||
local ipv4_interface_name="$1"
|
||||
local ipv6_interface_name="$2"
|
||||
local network_interface="$3"
|
||||
|
||||
#设置IPV4网络接口
|
||||
set_ipv4_interface "${ipv4_interface_name}" "${network_interface}"
|
||||
#设置IPV6网络接口(别名)
|
||||
set_ipv6_interface "${ipv6_interface_name}" "@${ipv4_interface_name}"
|
||||
}
|
||||
|
||||
#设置网络接口
|
||||
# $2:网络接口
|
||||
set_interface()
|
||||
{
|
||||
local network_interface="$1"
|
||||
|
||||
local pdp_type
|
||||
[ "$ipv6" = "1" ] && {
|
||||
pdp_type="ipv4v6"
|
||||
}
|
||||
|
||||
case $pdp_type in
|
||||
"ipv4") set_ipv4_interface "wwan_5g" "${network_interface}" ;;
|
||||
"ipv6") set_ipv6_interface "wwan6_5g" "${network_interface}" ;;
|
||||
"ipv4v6") set_ipv4v6_interface "wwan_5g" "wwan6_5g" "${network_interface}" ;;
|
||||
*) set_ipv4v6_interface "wwan_5g" "wwan6_5g" "${network_interface}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
run_dial()
|
||||
{
|
||||
local enabled
|
||||
config_get_bool enabled $1 enabled
|
||||
|
||||
if [ "$enabled" = "1" ]; then
|
||||
local apn
|
||||
local user
|
||||
local password
|
||||
local auth
|
||||
local ipv6
|
||||
local network_bridge
|
||||
local device
|
||||
|
||||
config_get apn $1 apn
|
||||
config_get user $1 user
|
||||
config_get password $1 password
|
||||
config_get auth $1 auth
|
||||
config_get ipv6 $1 ipv6
|
||||
config_get network_bridge $1 network_bridge
|
||||
config_get device $1 device
|
||||
|
||||
devname="$(basename "${device}")"
|
||||
devicepath="$(find /sys/class/ -name ${devname})"
|
||||
devpath="$(readlink -f ${devicepath}/device/)"
|
||||
network="$( ls "${devpath}"/net )"
|
||||
|
||||
#拨号配置
|
||||
procd_open_instance
|
||||
procd_set_param command quectel-CM
|
||||
if [ "$ipv6" = 1 ]; then
|
||||
procd_append_param command "-4" "-6"
|
||||
fi
|
||||
if [ "$network_bridge" = 1 ]; then
|
||||
procd_append_param command "-b"
|
||||
fi
|
||||
if [ "$apn" != "" ];then
|
||||
procd_append_param command "-s" "$apn"
|
||||
fi
|
||||
if [ "$username" != "" ]; then
|
||||
procd_append_param command "$username"
|
||||
fi
|
||||
if [ "$password" != "" ]; then
|
||||
procd_append_param command "$password"
|
||||
fi
|
||||
if [ "$auth" != "" ]; then
|
||||
procd_append_param command "$auth"
|
||||
fi
|
||||
if [ "$device" != "" ]; then
|
||||
procd_append_param command -i "$network"
|
||||
fi
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
|
||||
#设置网络接口
|
||||
local network_interface
|
||||
if [ -d /sys/class/net/rmnet_mhi0 ]; then
|
||||
network_interface="rmnet_mhi0.1"
|
||||
elif [ -d /sys/class/net/wwan0_1 ]; then
|
||||
network_interface="wwan0_1"
|
||||
elif [ -d /sys/class/net/wwan0.1 ]; then
|
||||
network_interface="wwan0.1"
|
||||
elif [ -d /sys/class/net/wwan0 ]; then
|
||||
network_interface="wwan0"
|
||||
fi
|
||||
set_interface "${network_interface}"
|
||||
fi
|
||||
|
||||
sleep 15
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "hypermodem"
|
||||
}
|
||||
|
||||
start_service() {
|
||||
config_load hypermodem
|
||||
config_foreach run_dial service
|
||||
}
|
||||
|
||||
stop_service()
|
||||
{
|
||||
killall quectel-CM >/dev/null 2>&1
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
restart
|
||||
}
|
||||
Reference in new issue
Block a user