1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00

Merge branch 'master' into develop

This commit is contained in:
suyuan 2021-01-08 01:05:26 +08:00
commit 6627d21b56
5 changed files with 59 additions and 118 deletions

View file

@ -7,35 +7,6 @@ CFG=/etc/board.json
[ -s $CFG ] || /bin/board_detect || exit 1 [ -s $CFG ] || /bin/board_detect || exit 1
[ -s /etc/config/network -a -s /etc/config/system ] && exit 0 [ -s /etc/config/network -a -s /etc/config/system ] && exit 0
generate_bridge() {
local name=$1
local macaddr=$2
uci -q batch <<-EOF
set network.$name=device
set network.$name.name=$name
set network.$name.type=bridge
EOF
if [ -n "$macaddr" ]; then
uci -q batch <<-EOF
set network.$name.macaddr=$macaddr
EOF
fi
}
bridge_vlan_id=0
generate_bridge_vlan() {
local name=$1_vlan
local device=$2
local ports="$3"
local vlan="$4"
uci -q batch <<-EOF
set network.$name=bridge-vlan
set network.$name.device='$device'
set network.$name.vlan='$vlan'
set network.$name.ports='$ports'
EOF
}
generate_static_network() { generate_static_network() {
uci -q batch <<-EOF uci -q batch <<-EOF
delete network.loopback delete network.loopback
@ -44,21 +15,17 @@ generate_static_network() {
set network.loopback.proto='static' set network.loopback.proto='static'
set network.loopback.ipaddr='127.0.0.1' set network.loopback.ipaddr='127.0.0.1'
set network.loopback.netmask='255.0.0.0' set network.loopback.netmask='255.0.0.0'
EOF
[ -e /proc/sys/net/ipv6 ] && {
uci -q batch <<-EOF
delete network.globals delete network.globals
set network.globals='globals' set network.globals='globals'
set network.globals.ula_prefix='auto' set network.globals.ula_prefix='auto'
EOF EOF
}
if json_is_a dsl object; then if json_is_a dsl object; then
json_select dsl json_select dsl
if json_is_a atmbridge object; then if json_is_a atmbridge object; then
json_select atmbridge json_select atmbridge
local vpi vci encaps payload nameprefix local vpi vci encaps payload
json_get_vars vpi vci encaps payload nameprefix json_get_vars vpi vci encaps payload
uci -q batch <<-EOF uci -q batch <<-EOF
delete network.atm delete network.atm
set network.atm='atm-bridge' set network.atm='atm-bridge'
@ -66,7 +33,6 @@ generate_static_network() {
set network.atm.vci='$vci' set network.atm.vci='$vci'
set network.atm.encaps='$encaps' set network.atm.encaps='$encaps'
set network.atm.payload='$payload' set network.atm.payload='$payload'
set network.atm.nameprefix='$nameprefix'
EOF EOF
json_select .. json_select ..
fi fi
@ -91,31 +57,35 @@ generate_static_network() {
addr_offset=2 addr_offset=2
generate_network() { generate_network() {
local ifname macaddr protocol type ipaddr netmask vlan local ifname macaddr protocol type ipaddr netmask
local bridge=$2
json_select network json_select network
json_select "$1" json_select "$1"
json_get_vars ifname macaddr protocol ipaddr netmask vlan json_get_vars ifname macaddr protocol ipaddr netmask
json_select .. json_select ..
json_select .. json_select ..
[ -n "$ifname" ] || return [ -n "$ifname" ] || return
# force bridge for multi-interface devices (and lan) case "$1" in
case "$1:$ifname" in # hack (see /etc/board.d/02_network)
*\ * | lan:*) type="bridge" ;; none) return ;;
lan*) proto=${proto:-static} ;;
wan*) proto=${proto:-dhcp} ;;
esac esac
[ -n "$bridge" ] && { if [ -n "$macaddr" ]; then
if [ -z "$vlan" ]; then type=macvlan # useless, only for legacy
bridge_vlan_id=$((bridge_vlan_id + 1)) uci -q batch <<-EOF
vlan=$bridge_vlan_id delete network.${1}_dev
set network.${1}_dev='device'
set network.${1}_dev.name='$1'
set network.${1}_dev.type='$type'
set network.${1}_dev.ifname='$ifname'
set network.${1}_dev.macaddr='$macaddr'
EOF
ifname=$1
fi fi
generate_bridge_vlan $1 $bridge "$ifname" $vlan
ifname=$bridge.$vlan
type=""
}
uci -q batch <<-EOF uci -q batch <<-EOF
delete network.$1 delete network.$1
@ -125,17 +95,6 @@ generate_network() {
set network.$1.proto='none' set network.$1.proto='none'
EOF EOF
if [ -n "$macaddr" ]; then
for name in $ifname; do
uci -q batch <<-EOF
delete network.$1_${name/./_}_dev
set network.$1_${name/./_}_dev='device'
set network.$1_${name/./_}_dev.name='$name'
set network.$1_${name/./_}_dev.macaddr='$macaddr'
EOF
done
fi
case "$protocol" in case "$protocol" in
static) static)
local ipad local ipad
@ -150,23 +109,17 @@ generate_network() {
set network.$1.proto='static' set network.$1.proto='static'
set network.$1.ipaddr='$ipad' set network.$1.ipaddr='$ipad'
set network.$1.netmask='$netm' set network.$1.netmask='$netm'
set network.$1.ip6assign='60'
EOF EOF
[ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
;; ;;
dhcp) dhcp)
# fixup IPv6 slave interface if parent is a bridge # fixup IPv6 slave interface if parent is a bridge
[ "$type" = "bridge" ] && ifname="br-$1" [ "$type" = "bridge" ] && ifname="br-$1"
uci set network.$1.proto='dhcp'
[ -e /proc/sys/net/ipv6 ] && {
uci -q batch <<-EOF uci -q batch <<-EOF
delete network.${1}6 set network.$1.proto='dhcp'
set network.${1}6='interface'
set network.${1}6.ifname='$ifname'
set network.${1}6.proto='dhcpv6'
EOF EOF
}
;; ;;
pppoe) pppoe)
@ -174,16 +127,12 @@ generate_network() {
set network.$1.proto='pppoe' set network.$1.proto='pppoe'
set network.$1.username='username' set network.$1.username='username'
set network.$1.password='password' set network.$1.password='password'
EOF
[ -e /proc/sys/net/ipv6 ] && {
uci -q batch <<-EOF
set network.$1.ipv6='1' set network.$1.ipv6='1'
delete network.${1}6 delete network.${1}6
set network.${1}6='interface' set network.${1}6='interface'
set network.${1}6.ifname='@${1}' set network.${1}6.ifname='@${1}'
set network.${1}6.proto='dhcpv6' set network.${1}6.proto='dhcpv6'
EOF EOF
}
;; ;;
esac esac
} }
@ -257,8 +206,7 @@ generate_switch() {
json_select switch json_select switch
json_select "$key" json_select "$key"
json_get_vars enable reset blinkrate cpu_port \ json_get_vars enable reset blinkrate cpu_port
ar8xxx_mib_type ar8xxx_mib_poll_interval
uci -q batch <<-EOF uci -q batch <<-EOF
add network switch add network switch
@ -266,8 +214,6 @@ generate_switch() {
set network.@switch[-1].reset='$reset' set network.@switch[-1].reset='$reset'
set network.@switch[-1].enable_vlan='$enable' set network.@switch[-1].enable_vlan='$enable'
set network.@switch[-1].blinkrate='$blinkrate' set network.@switch[-1].blinkrate='$blinkrate'
set network.@switch[-1].ar8xxx_mib_type='$ar8xxx_mib_type'
set network.@switch[-1].ar8xxx_mib_poll_interval='$ar8xxx_mib_poll_interval'
EOF EOF
generate_switch_vlans_ports "$1" generate_switch_vlans_ports "$1"
@ -276,6 +222,7 @@ generate_switch() {
json_select .. json_select ..
} }
generate_static_system() { generate_static_system() {
uci -q batch <<-EOF uci -q batch <<-EOF
delete system.@system[0] delete system.@system[0]
@ -303,13 +250,6 @@ generate_static_system() {
uci -q set "system.@system[-1].hostname=$hostname" uci -q set "system.@system[-1].hostname=$hostname"
fi 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 if json_is_a ntpserver array; then
local keys key local keys key
json_get_keys keys ntpserver json_get_keys keys ntpserver
@ -419,12 +359,11 @@ generate_led() {
;; ;;
switch) switch)
local port_mask speed_mask mode local port_mask speed_mask
json_get_vars port_mask speed_mask mode json_get_vars port_mask speed_mask
uci -q batch <<-EOF uci -q batch <<-EOF
set system.$cfg.port_mask='$port_mask' set system.$cfg.port_mask='$port_mask'
set system.$cfg.speed_mask='$speed_mask' set system.$cfg.speed_mask='$speed_mask'
set system.$cfg.mode='$mode'
EOF EOF
;; ;;
@ -472,24 +411,12 @@ generate_gpioswitch() {
json_init json_init
json_load "$(cat ${CFG})" json_load "$(cat ${CFG})"
umask 077
if [ ! -s /etc/config/network ]; then if [ ! -s /etc/config/network ]; then
bridge_name=""
touch /etc/config/network touch /etc/config/network
generate_static_network generate_static_network
json_get_vars bridge
[ -n "$bridge" ] && {
json_select bridge
json_get_vars name macaddr
generate_bridge "$name" "$macaddr"
json_select ..
bridge_name=$name
}
json_get_keys keys network json_get_keys keys network
for key in $keys; do generate_network $key $bridge_name; done for key in $keys; do generate_network $key; done
json_get_keys keys switch json_get_keys keys switch
for key in $keys; do generate_switch $key; done for key in $keys; do generate_switch $key; done

View file

@ -0,0 +1,16 @@
#!/bin/sh
#
# Copyright (C) 2013-2015 OpenWrt.org
#
. /lib/functions/uci-defaults.sh
board_config_update
json_is_a network object && exit 0
ucidef_set_interface_lan 'eth0'
board_config_flush
exit 0

View file

@ -247,15 +247,15 @@ case "$FIRMWARE" in
caldata_extract "ART" 0x5000 0x2f20 caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3) ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
;; ;;
pangu,l1000)
caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
;;
meraki,mr33) meraki,mr33)
caldata_extract_ubi "ART" 0x5000 0x2f20 caldata_extract_ubi "ART" 0x5000 0x2f20
caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20 caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +3) ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +3)
;; ;;
pangu,l1000)
caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
;;
netgear,ex6100v2 |\ netgear,ex6100v2 |\
netgear,ex6150v2) netgear,ex6150v2)
caldata_extract "ART" 0x5000 0x2f20 caldata_extract "ART" 0x5000 0x2f20

View file

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile --- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile
@@ -837,11 +837,61 @@ dtb-$(CONFIG_ARCH_QCOM) += \ @@ -837,11 +837,59 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \ qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \ qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \ qcom-apq8084-mtp.dtb \
@ -18,7 +18,6 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq4018-ap120c-ac.dtb \ + qcom-ipq4018-ap120c-ac.dtb \
+ qcom-ipq4018-dap-2610.dtb \ + qcom-ipq4018-dap-2610.dtb \
+ qcom-ipq4018-cs-w3-wd1200g-eup.dtb \ + qcom-ipq4018-cs-w3-wd1200g-eup.dtb \
+ qcom-ipq4018-magic-2-wifi-next.dtb \
+ qcom-ipq4018-ea6350v3.dtb \ + qcom-ipq4018-ea6350v3.dtb \
+ qcom-ipq4018-eap1300.dtb \ + qcom-ipq4018-eap1300.dtb \
+ qcom-ipq4018-ecw5211.dtb \ + qcom-ipq4018-ecw5211.dtb \
@ -28,7 +27,6 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq4018-ex6100v2.dtb \ + qcom-ipq4018-ex6100v2.dtb \
+ qcom-ipq4018-ex6150v2.dtb \ + qcom-ipq4018-ex6150v2.dtb \
+ qcom-ipq4018-fritzbox-4040.dtb \ + qcom-ipq4018-fritzbox-4040.dtb \
+ qcom-ipq4018-gl-ap1300.dtb \
+ qcom-ipq4018-jalapeno.dtb \ + qcom-ipq4018-jalapeno.dtb \
+ qcom-ipq4018-meshpoint-one.dtb \ + qcom-ipq4018-meshpoint-one.dtb \
+ qcom-ipq4018-nbg6617.dtb \ + qcom-ipq4018-nbg6617.dtb \