openwrt修改默认QMI上网方式以及IP地址

以LubanCat2N为例,Soc为RK3568,仅记录学习过程中的问题,水平有限欢迎勘误

1.修改QMI

进入package/base-files/lib/functions目录

打开uci-defaults.sh修改下列函数

ucidef_set_interface_wan(){

                ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"

}

2.修改IP地址以及hostname

package/base-files/files/bin

打开config_generate脚本找到generate_network()函数

 以下代码是根据协议生成network相关config,其中"192.168.1.1"为默认路由器登陆地址

case "$protocol" in
		static)
			local ipad
			case "$1" in
				lan) ipad=${ipaddr:-"192.168.1.1"} ;;
				*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
			esac

			netm=${netmask:-"255.255.255.0"}

			uci -q batch <<-EOF
				set network.$1.proto='static'
				set network.$1.ipaddr='$ipad'
				set network.$1.netmask='$netm'
			EOF
			[ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
		;;

		dhcp)
			# fixup IPv6 slave interface if parent is a bridge
			[ "$type" = "bridge" ] && device="br-$1"

			uci set network.$1.proto='dhcp'
			[ -e /proc/sys/net/ipv6 ] && {
				uci -q batch <<-EOF
					delete network.${1}6
					set network.${1}6='interface'
					set network.${1}6.device='$device'
					set network.${1}6.proto='dhcpv6'
				EOF
			}
		;;

		pppoe)
			uci -q batch <<-EOF
				set network.$1.proto='pppoe'
				set network.$1.username='username'
				set network.$1.password='password'
			EOF
			[ -e /proc/sys/net/ipv6 ] && {
				uci -q batch <<-EOF
					set network.$1.ipv6='1'
					delete network.${1}6
					set network.${1}6='interface'
					set network.${1}6.device='@${1}'
					set network.${1}6.proto='dhcpv6'
				EOF
			}
		;;

		ncm|\
		qmi|\
		mbim)
			uci -q batch <<-EOF
				set network.$1.proto='${protocol}'
				set network.$1.pdptype='ipv4v6'
			EOF
		;;
	esac

函数generate_static_system()为系统静态文件生成,涉及hostname,ntp服务器,以及时区

generate_static_system() {
	uci -q batch <<-EOF
		delete system.@system[0]
		add system system
		set system.@system[-1].hostname='Changeo'
		set system.@system[-1].timezone='UTC'
		set system.@system[-1].ttylogin='0'
		set system.@system[-1].log_size='64'
		set system.@system[-1].urandom_seed='0'

		delete system.ntp
		set system.ntp='timeserver'
		set system.ntp.enabled='1'
		set system.ntp.enable_server='0'
		add_list system.ntp.server='0.openwrt.pool.ntp.org'
		add_list system.ntp.server='1.openwrt.pool.ntp.org'
		add_list system.ntp.server='2.openwrt.pool.ntp.org'
		add_list system.ntp.server='3.openwrt.pool.ntp.org'
	EOF

	if json_is_a system object; then
		json_select system
			local hostname
			if json_get_var hostname hostname; then
				uci -q set "system.@system[-1].hostname=$hostname"
			fi

			local compat_version
			if json_get_var compat_version compat_version; then
				uci -q set "system.@system[-1].compat_version=$compat_version"
			else
				uci -q set "system.@system[-1].compat_version=1.0"
			fi

			if json_is_a ntpserver array; then
				local keys key
				json_get_keys keys ntpserver
				json_select ntpserver
					uci -q delete "system.ntp.server"

					for key in $keys; do
						local server
						if json_get_var server "$key"; then
							uci -q add_list "system.ntp.server=$server"
						fi
					done
				json_select ..
			fi
		json_select ..
	fi
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值