diff options
Diffstat (limited to 'openwrt/package/base-files')
10 files changed, 47 insertions, 116 deletions
diff --git a/openwrt/package/base-files/default/bin/firstboot b/openwrt/package/base-files/default/bin/firstboot index cef258cf39..1c3d1a7d66 100755 --- a/openwrt/package/base-files/default/bin/firstboot +++ b/openwrt/package/base-files/default/bin/firstboot @@ -42,7 +42,7 @@ echo "done" echo -n "setting up symlinks... " for file in $(cd /rom; find * -type f; find * -type l;) do { - [ "${file%/*}" = "usr/lib/ipkg/info" ] && { + [ "${file%/*}" = "usr/lib/ipkg/info" -o "${file%/*}" = "etc/config" ] && { cp -f /rom/$file $file } || { ln -sf /rom/$file $file diff --git a/openwrt/package/base-files/default/etc/config/network b/openwrt/package/base-files/default/etc/config/network new file mode 100644 index 0000000000..049460160a --- /dev/null +++ b/openwrt/package/base-files/default/etc/config/network @@ -0,0 +1,9 @@ +# Network configuration file + +# Uncomment the following statements to override the default or nvram config +# lan_ifame="br0" +# lan_proto="static" +# lan_ipaddr="192.168.1.1" +# lan_netmask="255.255.255.0" +# lan_gateway="" +# lan_dns="" diff --git a/openwrt/package/base-files/default/etc/functions.sh b/openwrt/package/base-files/default/etc/functions.sh index 60d6231f8a..14f5011db7 100755 --- a/openwrt/package/base-files/default/etc/functions.sh +++ b/openwrt/package/base-files/default/etc/functions.sh @@ -4,12 +4,18 @@ alias debug=${DEBUG:-:} # allow env to override nvram nvram () { - case $1 in - get) eval "echo \${NVRAM_$2:-\$(command nvram get $2)}";; - *) command nvram $*;; - esac + if [ -x /usr/sbin/nvram ]; then + case $1 in + get) eval "echo \${$2:-\$(command nvram get $2)}";; + *) command nvram $*;; + esac + else + case $1 in + get) eval "echo \${$2:-\${DEFAULT_$2}}";; + *);; + esac + fi } -. /etc/nvram.overrides # valid interface? if_valid () ( diff --git a/openwrt/package/base-files/default/etc/init.d/S10boot b/openwrt/package/base-files/default/etc/init.d/S10boot index ead73521b1..d45f8e809b 100755 --- a/openwrt/package/base-files/default/etc/init.d/S10boot +++ b/openwrt/package/base-files/default/etc/init.d/S10boot @@ -6,20 +6,22 @@ mkdir -p /var/log touch /var/log/wtmp touch /var/log/lastlog -[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && { - # if default wifi mac, set two higher than the lan mac - nvram set il0macaddr=$(nvram get et0macaddr| - awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}') -} - -# set up the vlan*ports variables for the asus wl-500g deluxe -# if they don't already exist -[ "$(nvram get boardtype)" = "bcm95365r" \ --a "$(nvram get boardnum)" = "45" \ --a -z "$(nvram get vlan0ports)" --a -z "$(nvram get vlan1ports)" ] && { - nvram set vlan0ports="1 2 3 4 5*" - nvram set vlan1ports="0 5" +[ -x /usr/sbin/nvram ] && { + [ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && { + # if default wifi mac, set two higher than the lan mac + nvram set il0macaddr=$(nvram get et0macaddr| + awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}') + } + + # set up the vlan*ports variables for the asus wl-500g deluxe + # if they don't already exist + [ "$(nvram get boardtype)" = "bcm95365r" \ + -a "$(nvram get boardnum)" = "45" \ + -a -z "$(nvram get vlan0ports)" + -a -z "$(nvram get vlan1ports)" ] && { + nvram set vlan0ports="1 2 3 4 5*" + nvram set vlan1ports="0 5" + } } sed 's/^[^#]/insmod &/' /etc/modules /etc/modules.d/* 2>&-|ash diff --git a/openwrt/package/base-files/default/etc/init.d/S40network b/openwrt/package/base-files/default/etc/init.d/S40network index d8b4e4125e..a5afe5266f 100755 --- a/openwrt/package/base-files/default/etc/init.d/S40network +++ b/openwrt/package/base-files/default/etc/init.d/S40network @@ -1,4 +1,5 @@ #!/bin/sh +[ -e /etc/config/network] && . /etc/config/network case "$1" in start|restart) ifup lan diff --git a/openwrt/package/base-files/default/etc/init.d/S45firewall b/openwrt/package/base-files/default/etc/init.d/S45firewall index cb779792d5..188b9aaa8a 100755 --- a/openwrt/package/base-files/default/etc/init.d/S45firewall +++ b/openwrt/package/base-files/default/etc/init.d/S45firewall @@ -4,6 +4,8 @@ ${FAILSAFE:+exit} . /etc/functions.sh +. /etc/network.overrides +[ -e /etc/config/network] && . /etc/config/network WAN=$(nvram get wan_ifname) LAN=$(nvram get lan_ifname) diff --git a/openwrt/package/base-files/default/etc/init.d/S50dnsmasq b/openwrt/package/base-files/default/etc/init.d/S50dnsmasq index 6a5af0f05f..31d0a36976 100755 --- a/openwrt/package/base-files/default/etc/init.d/S50dnsmasq +++ b/openwrt/package/base-files/default/etc/init.d/S50dnsmasq @@ -1,5 +1,7 @@ #!/bin/sh . /etc/functions.sh +. /etc/network.overrides +[ -e /etc/config/network] && . /etc/config/network # interface to use for DHCP iface=lan diff --git a/openwrt/package/base-files/default/etc/nvram.overrides b/openwrt/package/base-files/default/etc/nvram.overrides deleted file mode 100644 index d457af48ee..0000000000 --- a/openwrt/package/base-files/default/etc/nvram.overrides +++ /dev/null @@ -1,96 +0,0 @@ -# NVRAM overrides -# -# This file handles the NVRAM quirks of various hardware. -# THIS FILE IS NOT A REPLACEMENT FOR NVRAM - -# Load sysconf defaults -[ -f /etc/sysconf ] && . /etc/sysconf - -# linksys bug; remove when not using static configuration for lan -NVRAM_lan_proto="static" - -remap () { - for type in lan wifi wan pppoe - do - for s in '' s - do - eval NVRAM_${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" - done - done -} - -# hacks for wrt54g 1.x hardware -[ "$(nvram get boardnum)" = "42" \ --a "$(nvram get boardtype)" = "bcm94710dev" ] && { - debug "### wrt54g 1.x hack ###" - NVRAM_vlan1hwname="et0" - NVRAM_vlan2hwname="et0" - FAILSAFE_ifnames="vlan1 vlan2 eth2" - remap eth0 vlan2 - remap eth1 vlan1 -} - -# hacks for asus wl-500g deluxe -[ "$(nvram get boardtype)" = "bcm95365r" \ --a "$(nvram get boardnum)" = "45" ] && { - debug "### wl-500g deluxe hacks ###" - NVRAM_vlan0hwname="et0" - NVRAM_vlan1hwname="et0" - FAILSAFE_ifnames="vlan0 eth1" - remap eth0.1 vlan0 - remap eth0 vlan1 -} - -# hacks for asus wl-300g -[ "$(nvram get productid)" = "WL300g" ] && { - debug "### wl-300g hacks ###" - NVRAM_lan_ifnames="eth0 eth2" - NVRAM_wan_ifname="none" -} - -# hacks for wap54g hardware -[ "$(nvram get boardnum)" = "2" \ --o "$(nvram get boardnum)" = "1024" ] && { - debug "### wap54g hack ###" - NVRAM_wan_ifname="none" - FAILSAFE_ifnames="eth0 eth1" -} - -# hacks for buffalo wla2-g54l -[ "$(nvram get boardnum)" = "00" \ --a "$(nvram get product_name)" = "Product_name" \ --o "$(nvram get product_name)" = "WLA2-G54L" ] && { - debug "### wla2-g54l hacks ###" - NVRAM_wan_ifname="none" - NVRAM_lan_ifnames="vlan0" -} - -# hack for asus wl-500g hardware -[ "$(nvram get boardnum)" = "asusX" \ --a "$(nvram get boardtype)" = "bcm94710dev" ] && { - FAILSAFE_ifnames="eth0 eth2" -} - -# defaults if lan_ifname is missing -[ -z "$(nvram get lan_ifname)" ] && { - NVRAM_lan_ifname="br0" - NVRAM_lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan2 eth1 eth2 eth3"} -} - -# defaults if wan_ifname is missing -[ -z "$(nvram get wan_ifname)" ] && { - NVRAM_wan_ifname="vlan1" - NVRAM_wan_proto="dhcp" -} - -# failsafe if reset is held -[ "$FAILSAFE" = "true" ] && { - echo "### YOU ARE IN FAILSAFE MODE ####" - NVRAM_lan_ifname="br0" - NVRAM_lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan1 eth1 eth2 eth3"} - NVRAM_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"} - NVRAM_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"} - NVRAM_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"} - NVRAM_wan_ifname="none" - NVRAM_wifi_ifname="none" -} diff --git a/openwrt/package/base-files/default/sbin/ifdown b/openwrt/package/base-files/default/sbin/ifdown index 6b255cc1b8..950ee12db5 100755 --- a/openwrt/package/base-files/default/sbin/ifdown +++ b/openwrt/package/base-files/default/sbin/ifdown @@ -1,6 +1,8 @@ #!/bin/ash [ $# = 0 ] && { echo " $0 <group>"; exit; } . /etc/functions.sh +. /etc/network.overrides +[ -e /etc/config/network ] && . /etc/config/network type=$1 debug "### ifdown $type ###" if=$(nvram get ${type}_ifname) diff --git a/openwrt/package/base-files/default/sbin/ifup b/openwrt/package/base-files/default/sbin/ifup index 5dac3f9987..6aa998713c 100755 --- a/openwrt/package/base-files/default/sbin/ifup +++ b/openwrt/package/base-files/default/sbin/ifup @@ -1,6 +1,9 @@ #!/bin/ash [ $# = 0 ] && { echo " $0 <group>"; exit; } . /etc/functions.sh +. /etc/network.overrides +[ -e /etc/config/network ] && . /etc/config/network + type=$1 debug "### ifup $type ###" |