紧跟系统启动过程,当第一次启动时会设置network的相关参数,比如IP地址、vlan等,配置文件位于/etc/config/network。于是有了如下分析,在编译固件的时候,默认的配置参数时如何生成的。
无线配置脚本位于/package/kernel/mac80211/files/lib/wifi/mac80211.sh
-
/etc/rc.d/S10boot --> /bin/board/detect
-
逐个执行/etc/board.d/下的脚本
/bin/config_generate
判断/etc/board.json 或者 /bin/board_detect 存在
判断/etc/config/network 与 /etc/config/system 同时存在
定义函数:
generate_static_network()
generate_network()
generate_switch_vlans_ports()
generate_switch()
generate_static_system()
generate_rssimon()
generate_led()
generate_gpioswitch()
加载/etc/board.json,并根据文件中的keys字段调用以上函数生成/etc/config/network和system -
为避免配置在编译固件后单独更新,将配置好的network、firewall、wireless文件放到/package/base-files/files/etc/config目录,没有则新建
-
在【6】配置USB驱动加载4G模块驱动的前提下,添加接口实现上网配置如下
在network末尾添加
config interface ‘modem’
option ifname ‘wwan0’
option proto ‘none’
在firewall中的config zone节添加
option network ‘wan wan6 modem’
配置将wifi和有线网口分开管理,wifi打开DHCP,有线口关闭DHCP
1、修改/package/base-files/files/etc/config/network
config interface ‘wlan’
option proto ‘static’
option ipaddr ‘192.168.18.254’
option netmask ‘255.255.255.0’
2、修改/package/kernel/mac80211/files/lib/wifi/mac80211.sh
line120 set wireless.default_radio${devidx}.network=wlan
3、DHCP配置
package/network/services/odhcpd/files/odhcpd.defaults
json_select lan 改为 json_select wlan
参考博文:Openwrt的主板识别与初始化配置