X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Fbin%2Fconfig_generate;h=c8b253da5bd2ccd06c0f3f6047b196394f918e03;hb=78b5764fd8a3c133f0caf170238242b32a97105b;hp=2036ae44fe133ee60e13574b234af1122f044c92;hpb=528b8f6f9387c9c3f10260e31a50cc53d1bd1cb4;p=oweals%2Fopenwrt.git diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 2036ae44fe..c8b253da5b 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -4,7 +4,8 @@ CFG=/etc/board.json . /usr/share/libubox/jshn.sh -[ -f $CFG ] || exit 1 +[ -s $CFG ] || /bin/board_detect || exit 1 +[ -s /etc/config/network -a -s /etc/config/system ] && exit 0 generate_static_network() { uci -q batch <<-EOF @@ -14,17 +15,21 @@ generate_static_network() { set network.loopback.proto='static' set network.loopback.ipaddr='127.0.0.1' set network.loopback.netmask='255.0.0.0' - delete network.globals - set network.globals='globals' - set network.globals.ula_prefix='auto' EOF + [ -e /proc/sys/net/ipv6 ] && { + uci -q batch <<-EOF + delete network.globals + set network.globals='globals' + set network.globals.ula_prefix='auto' + EOF + } if json_is_a dsl object; then json_select dsl if json_is_a atmbridge object; then json_select atmbridge - local vpi vci encaps payload - json_get_vars vpi vci encaps payload + local vpi vci encaps payload nameprefix + json_get_vars vpi vci encaps payload nameprefix uci -q batch <<-EOF delete network.atm set network.atm='atm-bridge' @@ -32,6 +37,7 @@ generate_static_network() { set network.atm.vci='$vci' set network.atm.encaps='$encaps' set network.atm.payload='$payload' + set network.atm.nameprefix='$nameprefix' EOF json_select .. fi @@ -100,37 +106,40 @@ generate_network() { set network.$1.proto='static' set network.$1.ipaddr='$ipad' set network.$1.netmask='$netm' - set network.$1.ip6assign='60' EOF + [ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60' ;; dhcp) # fixup IPv6 slave interface if parent is a bridge [ "$type" = "bridge" ] && ifname="br-$1" - uci -q batch <<-EOF - set network.$1.proto='dhcp' - delete network.${1}6 - set network.${1}6='interface' - set network.${1}6.ifname='$ifname' - set network.${1}6.proto='dhcpv6' - EOF + 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.ifname='$ifname' + set network.${1}6.proto='dhcpv6' + EOF + } ;; pppoe) - # fixup IPv6 slave interface - ifname="pppoe-$1" - uci -q batch <<-EOF set network.$1.proto='pppoe' set network.$1.username='username' set network.$1.password='password' - set network.$1.ipv6='auto' - delete network.${1}6 - set network.${1}6='interface' - set network.${1}6.ifname='$ifname' - set network.${1}6.proto='dhcpv6' 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.ifname='@${1}' + set network.${1}6.proto='dhcpv6' + EOF + } ;; esac } @@ -225,9 +234,11 @@ generate_static_system() { uci -q batch <<-EOF delete system.@system[0] add system system - set system.@system[-1].hostname='lede' + set system.@system[-1].hostname='OpenWrt' 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' @@ -332,6 +343,15 @@ generate_led() { EOF ;; + usbport) + local ports port + json_get_values ports ports + uci set system.$cfg.trigger='usbport' + for port in $ports; do + uci add_list system.$cfg.port=$port + done + ;; + rssi) local iface minq maxq offset factor json_get_vars iface minq maxq offset factor @@ -354,6 +374,14 @@ generate_led() { EOF ;; + portstate) + local port_state + json_get_vars port_state + uci -q batch <<-EOF + set system.$cfg.port_state='$port_state' + EOF + ;; + timer|oneshot) local delayon delayoff json_get_vars delayon delayoff @@ -381,7 +409,7 @@ generate_gpioswitch() { set system.$cfg='gpio_switch' set system.$cfg.name='$name' set system.$cfg.gpio_pin='$pin' - set system.$cfg.default='$default' + set system.$cfg.value='$default' EOF json_select .. json_select .. @@ -390,24 +418,28 @@ generate_gpioswitch() { json_init json_load "$(cat ${CFG})" -generate_static_network - -json_get_keys keys network -for key in $keys; do generate_network $key; done - -json_get_keys keys switch -for key in $keys; do generate_switch $key; done +if [ ! -s /etc/config/network ]; then + touch /etc/config/network + generate_static_network + json_get_keys keys network + for key in $keys; do generate_network $key; done -generate_static_system + json_get_keys keys switch + for key in $keys; do generate_switch $key; done +fi -json_get_keys keys rssimon -for key in $keys; do generate_rssimon $key; done +if [ ! -s /etc/config/system ]; then + touch /etc/config/system + generate_static_system -json_get_keys keys gpioswitch -for key in $keys; do generate_gpioswitch $key; done + json_get_keys keys rssimon + for key in $keys; do generate_rssimon $key; done -json_get_keys keys led -for key in $keys; do generate_led $key; done + json_get_keys keys gpioswitch + for key in $keys; do generate_gpioswitch $key; done + json_get_keys keys led + for key in $keys; do generate_led $key; done +fi uci commit