QModem/luci-app-modem/note/OpenWRT软件开发.md
2023-12-12 00:01:49 +08:00

136 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenWRT软件开发
# 一、相关文档
UCI系统https://openwrt.org/docs/guide-user/base-system/uci
OpenWRT命令解释器https://openwrt.org/zh/docs/guide-user/base-system/user.beginner.cli
热插拔https://openwrt.org/zh/docs/guide-user/base-system/hotplug
网络基础配置https://openwrt.org/zh/docs/guide-user/base-system/basic-networking
Web界面相关
- 自定义主题https://github.com/openwrt/luci/wiki/HowTo:-Create-Themes
- 模块参考https://github.com/openwrt/luci/wiki/Modules
- 模板参考https://github.com/openwrt/luci/wiki/Templates
- 实例参考https://blog.csdn.net/byb123/article/details/77921486/
# 二、网络配置
在任何网络配置更改(通过uci或其他方式)之后,你需要输入以下内容来重载网络配置:
```shell
service network reload
```
如果您安装的版本没有提供`service`命令,则可以使用:
```shell
/etc/init.d/network reload
```
# 三、拨号程序
拨号步骤
```shell
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 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 device $1 device
devname="$(basename "$device")" #获取调制解调器,/dev/cdc-wdm0->cdc-wdm0
devicepath="$(find /sys/class/ -name $devname)" #找到设备快捷路径,/sys/class/net/cdc-wdm0
devpath="$(readlink -f $devicepath/device/)" #找出连接的物理设备路径,/sys/devices/.../
ifname="$( ls "$devpath"/net )" #获取设备名,/sys/devices/.../net->cdc-wdm0
procd_open_instance #打开一个示例?
procd_set_param command quectel-CM #设置参数?
if [ "$ipv6" = 1 ]; then
procd_append_param command -4 -6
fi
if [ "$apn" != "" ];then
procd_append_param command -s $apn
fi
if [ "$user" != "" ]; then
procd_append_param command $user
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 $ifname
fi
procd_set_param respawn
procd_close_instance
if [ -d /sys/class/net/rmnet_mhi0 ]; then
pre_set rmnet_mhi0.1
elif [ -d /sys/class/net/wwan0_1 ]; then
pre_set wwan0_1
elif [ -d /sys/class/net/wwan0.1 ]; then
pre_set wwan0.1
elif [ -d /sys/class/net/wwan0 ]; then
pre_set wwan0
fi
fi
sleep 15
}
```
# 四、shell
获取设备物理路径
device_bus_path.sh
```shell
#!/bin/sh
#获取物理设备地址
local device_name="$(basename "$1")"
local device_path="$(find /sys/class/ -name $device_name)"
local device_physical_path="$(readlink -f $device_path/device/)"
local device_bus_path=$(dirname "$device_physical_path")
return $device_bus_path
```
设置配置
setConfig.sh
```shell
#!/bin/sh
#处理获取到的路径
substr="${parentDir/\/sys\/devices\//}"
echo $substr
#写入到配置中
uci set modem.modem1.path="$substr"
uci commit modem2
```