OpenWrt file/bin/config_generate network初始化分析

network init

1、源码中:package/base-files/files/etc/init.d/boot
生成文件系统中的/etc/rc.d/S10boot
2、调用/bin/config_generate

CFG=/etc/board.json
[ -s $CFG ] || /bin/board_detect || exit 1
[ -s /etc/config/network -a -s /etc/config/system ] && exit 0
检测/etc/board.json是否为空,为空则执行/bin/board_detect调用/etc/board.d/*下的脚本生成/etc/board.json。
检测/etc/config/network 与 /etc/config/system是否为空
第一次的时候为空,执行以下生成它们,第二次就跳过了
touch /etc/config/network	//生成network配置
generate_static_network
......
touch /etc/config/system
generate_static_system
......

/# shell & json函数
shell教程:https://www.runoob.com/linux/linux-shell.html

local ifname macaddr protocol type ipaddr netmask
local 命令定义局部变量,作用域为函数内部

json_init	初始化环境变量
json_load "$(cat ${CFG})" 

json_add_object	添加一个对象
json_add_string	添加string变量
json_add_int	添加一个对象
json_add_boolean	添加布尔变量
json_add_array	添加数组
json_dump	显示当前的json串	
json_select	切换对象
json_get_var	获取某个变量值	
[ -n name] || return     判断变量的值,若空,则返回

uci -q 安静模式(不打印错误信息)
使用<<-EOF,告诉主shell,后续的输入,是其他命令或者子shell的输入,直到遇到EOF为止,再回到主shell

/etc/config/dhcp配置文件

1、package/network/services/odhcpd/files/odhcpd.defaults
该脚本新建/etc/config/dhcp配置文件,读取/etc/board.json,重新生成该文件。
注意:删除该文件后无法编译
将该文件内容注释后,将自定义的/etc/config/dhcp拷贝到
package/base-files/files/etc/config目录
编译后即生效自定义的DHCP配置

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'

config dhcp 'lan'
        option interface 'lan'
        option ignore '1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'wlan'
        option start '100'
        option leasetime '12h'
        option limit '150'
        option interface 'wlan'
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值