7-Openwrt uci system

108 篇文章 10 订阅
86 篇文章 25 订阅
本文介绍了OpenWRT中使用UCI接口进行配置文件的查看和修改,强调了其在系统管理中的便利性和一致性,展示了如何通过uci_load和uciset等函数进行具体配置操作,如设置PPP连接和Wi-Fi网络。
摘要由CSDN通过智能技术生成

openwrt的很多配置文件都是通过uci接口来进行查看修改的,虽然我们可以通过直接打开config/下面的配置文件进行修改,但是有个统一的接口为何不用呢,又方便又不会错。

 https://wiki.openwrt.org/doc/uci

config_load system
通过. /lib/functions.sh进行包含内容

config_load() {
    [ -n "$IPKG_INSTROOT" ] && return 0
    uci_load "$@"
}

调用uci_load函数,该函数位于lib/config/uci.sh中

uci_load() {
    local PACKAGE="$1"
    local DATA
    local RET
    local VAR

    _C=0
    if [ -z "$CONFIG_APPEND" ]; then
        for VAR in $CONFIG_LIST_STATE; do
            export ${NO_EXPORT:+-n} CONFIG_${VAR}=
            export ${NO_EXPORT:+-n} CONFIG_${VAR}_LENGTH=
        done
        export ${NO_EXPORT:+-n} CONFIG_LIST_STATE=
        export ${NO_EXPORT:+-n} CONFIG_SECTIONS=
        export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0
        export ${NO_EXPORT:+-n} CONFIG_SECTION=
    fi

    DATA="$(/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} ${LOAD_STATE:+-P /var/state} -S -n export "$PACKAGE" 2>/dev/null)"
    RET="$?"
    [ "$RET" != 0 -o -z "$DATA" ] || eval "$DATA"
    unset DATA

    ${CONFIG_SECTION:+config_cb}
    return "$RET"
}

uci.sh里面都是uci的处理函数,如:
uci_set_default(),uci_set(),uci_get()等

最底层调用的都是sbin/uci接口

uci set

uci set network.ppp2=interface
uci set network.ppp2.ifname=ppp2
uci set network.ppp2.proto=3g
uci set network.ppp2.username=$user
uci set network.ppp2.password=$password
uci set network.ppp2.apn=$apn
uci set network.ppp2.auto=1
uci set network.ppp2.device=/dev/ttyUSB3
uci commit

ifup ppp2
uci set wireless.@wifi-device[0].disabled=0
uci commit wireless 
wifi down && wifi up


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值