summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rwxr-xr-xpackage/base-files/default/bin/firstboot2
-rw-r--r--package/base-files/default/etc/config/network9
-rwxr-xr-xpackage/base-files/default/etc/functions.sh16
-rwxr-xr-xpackage/base-files/default/etc/init.d/S10boot30
-rwxr-xr-xpackage/base-files/default/etc/init.d/S40network1
-rwxr-xr-xpackage/base-files/default/etc/init.d/S45firewall2
-rwxr-xr-xpackage/base-files/default/etc/init.d/S50dnsmasq2
-rw-r--r--package/base-files/default/etc/nvram.overrides96
-rwxr-xr-xpackage/base-files/default/sbin/ifdown2
-rwxr-xr-xpackage/base-files/default/sbin/ifup3
-rw-r--r--package/ppp/files/ifup.pppoe2
-rw-r--r--package/pptp/files/ifup.pptp2
12 files changed, 51 insertions, 116 deletions
diff --git a/package/base-files/default/bin/firstboot b/package/base-files/default/bin/firstboot
index cef258cf39..1c3d1a7d66 100755
--- a/package/base-files/default/bin/firstboot
+++ b/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/package/base-files/default/etc/config/network b/package/base-files/default/etc/config/network
new file mode 100644
index 0000000000..049460160a
--- /dev/null
+++ b/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/package/base-files/default/etc/functions.sh b/package/base-files/default/etc/functions.sh
index 60d6231f8a..14f5011db7 100755
--- a/package/base-files/default/etc/functions.sh
+++ b/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/package/base-files/default/etc/init.d/S10boot b/package/base-files/default/etc/init.d/S10boot
index ead73521b1..d45f8e809b 100755
--- a/package/base-files/default/etc/init.d/S10boot
+++ b/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/package/base-files/default/etc/init.d/S40network b/package/base-files/default/etc/init.d/S40network
index d8b4e4125e..a5afe5266f 100755
--- a/package/base-files/default/etc/init.d/S40network
+++ b/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/package/base-files/default/etc/init.d/S45firewall b/package/base-files/default/etc/init.d/S45firewall
index cb779792d5..188b9aaa8a 100755
--- a/package/base-files/default/etc/init.d/S45firewall
+++ b/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/package/base-files/default/etc/init.d/S50dnsmasq b/package/base-files/default/etc/init.d/S50dnsmasq
index 6a5af0f05f..31d0a36976 100755
--- a/package/base-files/default/etc/init.d/S50dnsmasq
+++ b/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/package/base-files/default/etc/nvram.overrides b/package/base-files/default/etc/nvram.overrides
deleted file mode 100644
index d457af48ee..0000000000
--- a/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/package/base-files/default/sbin/ifdown b/package/base-files/default/sbin/ifdown
index 6b255cc1b8..950ee12db5 100755
--- a/package/base-files/default/sbin/ifdown
+++ b/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/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup
index 5dac3f9987..6aa998713c 100755
--- a/package/base-files/default/sbin/ifup
+++ b/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 ###"
diff --git a/package/ppp/files/ifup.pppoe b/package/ppp/files/ifup.pppoe
index 6bac6a6d15..94179a3eaa 100644
--- a/package/ppp/files/ifup.pppoe
+++ b/package/ppp/files/ifup.pppoe
@@ -1,6 +1,8 @@
#!/bin/sh
[ $# = 0 ] && { echo " $0 <group>"; exit; }
. /etc/functions.sh
+. /etc/nvram.overrides
+[ -e /etc/config/network ] && . /etc/config/network
type=$1
[ "$(nvram get ${type}_proto)" = "pppoe" ] || {
diff --git a/package/pptp/files/ifup.pptp b/package/pptp/files/ifup.pptp
index 21a574acb7..8335440777 100644
--- a/package/pptp/files/ifup.pptp
+++ b/package/pptp/files/ifup.pptp
@@ -1,5 +1,7 @@
#!/bin/sh
. /etc/functions.sh
+. /etc/nvram.overrides
+[ -e /etc/config/network ] && . /etc/config/network
type=$1
[ "$(nvram get ${type}_proto)" = "pptp" ] || exit