生如夏花

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

OpenWrt之shell脚本处理UCI配置

OpenWRT提供了一些列shell标准接口(config_load, config_get, config_get_bool, config_cb, option_cb, list_cb, config_foreach, config_list_foreach,以便在shell脚本中高效地读取和处理uci配置。

这主要用于在/etc/init.d中写启动脚本。

OpenWRT在/lib/functions.sh文件中提供了访问uci配置的shell接口,因此在使用这些接口之间需要直接或间接(包含rc.common)的方式包含该文件。

Linux内核编译

基于Ubuntu23.04编译最新版Linux内核(6.8.9),并解决编译过程中的相关问题。

根据出现的问题,需要安装一下软件:sudo apt install flex bc libelf-dev,并禁用系统相关证书:

scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS

UCI system

UCI,Unified Configuration Interface,统一配置接口,是一个集中配置OpenWrt服务的系统。

UCI是OpenWrt中基于NVRAM配置的继承者,是OpenWrt主要系统功能配置的用户接口,包括网络、无线、日志以及远程访问等等。

Linux路由表

主机和网关(路由器)的本质区别在于主机从不把数据报从一个接口转发到另一个接口,而网关(路由器)则要转发数据报

当今大多数用户系统,IP层既可以配置为网关(路由器)的功能,也可以配置为主机的功能。

Linux下手动配置网络

当一个设备加入到网络中时,通常需要获得一个IP地址、设置一条正确的默认路由以及一个可以连上的DNS服务器

当网络采用了DHCP时,那么大部分的配置工作都会在DHCP服务器上完成,设备中的DHCP客户端只需要从服务器上获取到参数,然后配置到设备中即可。

如果没有采用DHCP或者设备中没有DHCP客户端,就需要手动来配置网络(配置IP、配置静态路由、配置DNS)。