From 2afc4e3e6663473610d0f46c9bae925ee2bd251d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 21 Jul 2005 14:02:53 +0000 Subject: add config file /etc/config/network, add board-specific network.overrides (instead of nvram.overrides) git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1519 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/default/bin/firstboot | 2 +- package/base-files/default/etc/config/network | 9 ++ package/base-files/default/etc/functions.sh | 16 ++-- package/base-files/default/etc/init.d/S10boot | 30 ++++--- package/base-files/default/etc/init.d/S40network | 1 + package/base-files/default/etc/init.d/S45firewall | 2 + package/base-files/default/etc/init.d/S50dnsmasq | 2 + package/base-files/default/etc/nvram.overrides | 96 -------------------- package/base-files/default/sbin/ifdown | 2 + package/base-files/default/sbin/ifup | 3 + package/ppp/files/ifup.pppoe | 2 + package/pptp/files/ifup.pptp | 2 + scripts/configtest.pl | 9 +- target/linux/package/Makefile | 3 +- target/linux/package/openwrt/Makefile | 23 +++-- .../package/openwrt/files/network.overrides.ar7 | 26 ++++++ .../package/openwrt/files/network.overrides.brcm | 100 +++++++++++++++++++++ .../package/openwrt/ipkg/base-files-arch.control | 6 ++ .../package/openwrt/ipkg/openwrt-utils.control | 9 -- 19 files changed, 206 insertions(+), 137 deletions(-) create mode 100644 package/base-files/default/etc/config/network delete mode 100644 package/base-files/default/etc/nvram.overrides create mode 100644 target/linux/package/openwrt/files/network.overrides.ar7 create mode 100644 target/linux/package/openwrt/files/network.overrides.brcm create mode 100644 target/linux/package/openwrt/ipkg/base-files-arch.control delete mode 100644 target/linux/package/openwrt/ipkg/openwrt-utils.control 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 "; 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 "; 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 "; 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 diff --git a/scripts/configtest.pl b/scripts/configtest.pl index 3ca33d86c5..709d2be74b 100755 --- a/scripts/configtest.pl +++ b/scripts/configtest.pl @@ -1,13 +1,14 @@ #!/usr/bin/perl my %change = ( - 'BUSYBOX' => 'make -C package busybox-clean', - 'OPENVPN_' => 'make -C package openvpn-clean', + 'BUSYBOX' => 'make package/busybox-clean', + 'OPENVPN_' => 'make package/openvpn-clean', + 'SYSCONF_' => 'make package/base-files-clean target_clean', '' => 'make target_clean' ); my @configfiles = ( - ['package/linux/linux.config', 'build_mipsel/linux/.config' => - 'make -C package linux-clean'] +# ['package/linux/linux.config', 'build_mipsel/linux/.config' => +# 'make -C package linux-clean'] ); diff --git a/target/linux/package/Makefile b/target/linux/package/Makefile index adce4d4eed..a08d9048ab 100644 --- a/target/linux/package/Makefile +++ b/target/linux/package/Makefile @@ -5,9 +5,10 @@ package-$(BR2_PACKAGE_KMOD_FUSE) += fuse package-$(BR2_PACKAGE_KMOD_MINI_FO) += mini_fo package-$(BR2_PACKAGE_KMOD_SHFS) += shfs package-$(BR2_PACKAGE_KMOD_OPENSWAN) += openswan +package-y += openwrt ifeq ($(BOARD),brcm) -package-y += nvram openwrt +package-y += nvram ifeq ($(LINUX_VERSION),2.4.30) package-$(BR2_PACKAGE_KMOD_WLCOMPAT) += wlcompat diff --git a/target/linux/package/openwrt/Makefile b/target/linux/package/openwrt/Makefile index ee38f75a15..5d2ea199ec 100644 --- a/target/linux/package/openwrt/Makefile +++ b/target/linux/package/openwrt/Makefile @@ -2,29 +2,38 @@ include $(TOPDIR)/rules.mk -PKG_NAME := openwrt-utils -PKG_RELEASE := 2 +PKG_NAME := base-files-arch +PKG_RELEASE := 1 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) include $(TOPDIR)/package/rules.mk BR2_PACKAGE_OPENWRT:=y # ignore menuconfig -$(eval $(call PKG_template,OPENWRT,openwrt-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) - +$(eval $(call PKG_template,OPENWRT,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(PKG_BUILD_DIR)/.prepared: mkdir -p $(PKG_BUILD_DIR) touch $@ - + +ifeq ($(BOARD),brcm) $(PKG_BUILD_DIR)/jffs2root: jffs2root.c $(TARGET_CC) -o $@ $< $(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/jffs2root - touch $@ -$(IPKG_OPENWRT): +$(IDIR_OPENWRT)/sbin/jffs2root: mkdir -p $(IDIR_OPENWRT)/sbin cp $(PKG_BUILD_DIR)/jffs2root $(IDIR_OPENWRT)/sbin + +$(IPKG_OPENWRT): $(IDIR_OPENWRT)/sbin/jffs2root +endif + +$(PKG_BUILD_DIR)/.built: + touch $@ + +$(IPKG_OPENWRT): + mkdir -p $(IDIR_OPENWRT)/etc + cp files/network.overrides.$(BOARD) $(IDIR_OPENWRT)/etc/network.overrides $(RSTRIP) $(IDIR_OPENWRT) $(IPKG_BUILD) $(IDIR_OPENWRT) $(PACKAGE_DIR) diff --git a/target/linux/package/openwrt/files/network.overrides.ar7 b/target/linux/package/openwrt/files/network.overrides.ar7 new file mode 100644 index 0000000000..dc58a7e591 --- /dev/null +++ b/target/linux/package/openwrt/files/network.overrides.ar7 @@ -0,0 +1,26 @@ +# 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 + +DEFAULT_lan_proto="static" +DEFAULT_lan_ifname="eth0" +DEFAULT_lan_ifnames="eth0" +DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"} +DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"} +DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"} + +# failsafe if reset is held +[ "$FAILSAFE" = "true" ] && { + echo "### YOU ARE IN FAILSAFE MODE ####" + lan_ifname=${DEFAULT_lan_proto} + lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}} + lan_ipaddr=$DEFAULT_lan_ipaddr + lan_netmask=$DEFAULT_lan_netmask + lan_hwaddr=$DEFAULT_lan_hwaddr + wan_ifname="none" + wifi_ifname="none" +} diff --git a/target/linux/package/openwrt/files/network.overrides.brcm b/target/linux/package/openwrt/files/network.overrides.brcm new file mode 100644 index 0000000000..9766108a96 --- /dev/null +++ b/target/linux/package/openwrt/files/network.overrides.brcm @@ -0,0 +1,100 @@ +# 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 +lan_proto="static" + +remap () { + for type in lan wifi wan pppoe + do + for s in '' s + do + eval ${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 ###" + vlan1hwname="et0" + 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 ###" + vlan0hwname="et0" + 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 ###" + lan_ifnames="eth0 eth2" + wan_ifname="none" +} + +# hacks for wap54g hardware +[ "$(nvram get boardnum)" = "2" \ +-o "$(nvram get boardnum)" = "1024" ] && { + debug "### wap54g hack ###" + 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 ###" + wan_ifname="none" + 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)" ] && { + lan_ifname="br0" + lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan2 eth1 eth2 eth3"} +} + +# defaults if wan_ifname is missing +[ -z "$(nvram get wan_ifname)" ] && { + wan_ifname="vlan1" + wan_proto="dhcp" +} + +DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"} +DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"} +DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"} + +# failsafe if reset is held +[ "$FAILSAFE" = "true" ] && { + echo "### YOU ARE IN FAILSAFE MODE ####" + lan_ifname="br0" + lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan1 eth1 eth2 eth3"} + lan_ipaddr=$DEFAULT_lan_ipaddr + lan_netmask=$DEFAULT_lan_netmask + lan_hwaddr=$DEFAULT_lan_hwaddr + wan_ifname="none" + wifi_ifname="none" +} diff --git a/target/linux/package/openwrt/ipkg/base-files-arch.control b/target/linux/package/openwrt/ipkg/base-files-arch.control new file mode 100644 index 0000000000..5396f6817a --- /dev/null +++ b/target/linux/package/openwrt/ipkg/base-files-arch.control @@ -0,0 +1,6 @@ +Package: base-files-arch +Priority: optional +Section: sys +Maintainer: Felix Fietkau +Source: buildroot internal +Description: Board/architecture specific files diff --git a/target/linux/package/openwrt/ipkg/openwrt-utils.control b/target/linux/package/openwrt/ipkg/openwrt-utils.control deleted file mode 100644 index 37ef63276b..0000000000 --- a/target/linux/package/openwrt/ipkg/openwrt-utils.control +++ /dev/null @@ -1,9 +0,0 @@ -Package: openwrt-utils -Priority: optional -Section: sys -Maintainer: Felix Fietkau -Source: buildroot internal -Description: Basic OpenWrt utilities - This package contains: - mtd: Tool for modifying the flash chip - jffs2root: Expands the jffs2 root partition -- cgit v1.2.3