From 29a4b712e8658f13bf6f836943ec81d7cbcd3b73 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 21 Jul 2005 14:02:53 +0000 Subject: [PATCH] add config file /etc/config/network, add board-specific network.overrides (instead of nvram.overrides) SVN-Revision: 1519 --- .../package/base-files/default/bin/firstboot | 2 +- .../base-files/default/etc/config/network | 9 ++++ .../base-files/default/etc/functions.sh | 16 +++++-- .../base-files/default/etc/init.d/S10boot | 28 ++++++----- .../base-files/default/etc/init.d/S40network | 1 + .../base-files/default/etc/init.d/S45firewall | 2 + .../base-files/default/etc/init.d/S50dnsmasq | 2 + .../package/base-files/default/sbin/ifdown | 2 + openwrt/package/base-files/default/sbin/ifup | 3 ++ openwrt/package/ppp/files/ifup.pppoe | 2 + openwrt/package/pptp/files/ifup.pptp | 2 + openwrt/scripts/configtest.pl | 9 ++-- openwrt/target/linux/package/Makefile | 3 +- openwrt/target/linux/package/openwrt/Makefile | 23 ++++++--- .../openwrt/files/network.overrides.ar7 | 26 ++++++++++ .../openwrt/files/network.overrides.brcm} | 48 ++++++++++--------- .../openwrt/ipkg/base-files-arch.control | 6 +++ .../openwrt/ipkg/openwrt-utils.control | 9 ---- 18 files changed, 131 insertions(+), 62 deletions(-) create mode 100644 openwrt/package/base-files/default/etc/config/network create mode 100644 openwrt/target/linux/package/openwrt/files/network.overrides.ar7 rename openwrt/{package/base-files/default/etc/nvram.overrides => target/linux/package/openwrt/files/network.overrides.brcm} (67%) create mode 100644 openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control delete mode 100644 openwrt/target/linux/package/openwrt/ipkg/openwrt-utils.control 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}') -} +[ -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" + # 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/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 "; 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 "; exit; } . /etc/functions.sh +. /etc/network.overrides +[ -e /etc/config/network ] && . /etc/config/network + type=$1 debug "### ifup $type ###" diff --git a/openwrt/package/ppp/files/ifup.pppoe b/openwrt/package/ppp/files/ifup.pppoe index 6bac6a6d15..94179a3eaa 100644 --- a/openwrt/package/ppp/files/ifup.pppoe +++ b/openwrt/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/openwrt/package/pptp/files/ifup.pptp b/openwrt/package/pptp/files/ifup.pptp index 21a574acb7..8335440777 100644 --- a/openwrt/package/pptp/files/ifup.pptp +++ b/openwrt/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/openwrt/scripts/configtest.pl b/openwrt/scripts/configtest.pl index 3ca33d86c5..709d2be74b 100755 --- a/openwrt/scripts/configtest.pl +++ b/openwrt/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/openwrt/target/linux/package/Makefile b/openwrt/target/linux/package/Makefile index adce4d4eed..a08d9048ab 100644 --- a/openwrt/target/linux/package/Makefile +++ b/openwrt/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/openwrt/target/linux/package/openwrt/Makefile b/openwrt/target/linux/package/openwrt/Makefile index ee38f75a15..5d2ea199ec 100644 --- a/openwrt/target/linux/package/openwrt/Makefile +++ b/openwrt/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/openwrt/target/linux/package/openwrt/files/network.overrides.ar7 b/openwrt/target/linux/package/openwrt/files/network.overrides.ar7 new file mode 100644 index 0000000000..dc58a7e591 --- /dev/null +++ b/openwrt/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/openwrt/package/base-files/default/etc/nvram.overrides b/openwrt/target/linux/package/openwrt/files/network.overrides.brcm similarity index 67% rename from openwrt/package/base-files/default/etc/nvram.overrides rename to openwrt/target/linux/package/openwrt/files/network.overrides.brcm index d457af48ee..9766108a96 100644 --- a/openwrt/package/base-files/default/etc/nvram.overrides +++ b/openwrt/target/linux/package/openwrt/files/network.overrides.brcm @@ -7,14 +7,14 @@ [ -f /etc/sysconf ] && . /etc/sysconf # linksys bug; remove when not using static configuration for lan -NVRAM_lan_proto="static" +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)\" + eval ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" done done } @@ -23,8 +23,8 @@ remap () { [ "$(nvram get boardnum)" = "42" \ -a "$(nvram get boardtype)" = "bcm94710dev" ] && { debug "### wrt54g 1.x hack ###" - NVRAM_vlan1hwname="et0" - NVRAM_vlan2hwname="et0" + vlan1hwname="et0" + vlan2hwname="et0" FAILSAFE_ifnames="vlan1 vlan2 eth2" remap eth0 vlan2 remap eth1 vlan1 @@ -34,8 +34,8 @@ remap () { [ "$(nvram get boardtype)" = "bcm95365r" \ -a "$(nvram get boardnum)" = "45" ] && { debug "### wl-500g deluxe hacks ###" - NVRAM_vlan0hwname="et0" - NVRAM_vlan1hwname="et0" + vlan0hwname="et0" + vlan1hwname="et0" FAILSAFE_ifnames="vlan0 eth1" remap eth0.1 vlan0 remap eth0 vlan1 @@ -44,15 +44,15 @@ remap () { # hacks for asus wl-300g [ "$(nvram get productid)" = "WL300g" ] && { debug "### wl-300g hacks ###" - NVRAM_lan_ifnames="eth0 eth2" - NVRAM_wan_ifname="none" + lan_ifnames="eth0 eth2" + wan_ifname="none" } # hacks for wap54g hardware [ "$(nvram get boardnum)" = "2" \ -o "$(nvram get boardnum)" = "1024" ] && { debug "### wap54g hack ###" - NVRAM_wan_ifname="none" + wan_ifname="none" FAILSAFE_ifnames="eth0 eth1" } @@ -61,8 +61,8 @@ remap () { -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" + wan_ifname="none" + lan_ifnames="vlan0" } # hack for asus wl-500g hardware @@ -73,24 +73,28 @@ remap () { # 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"} + lan_ifname="br0" + 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" + 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 ####" - 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" + 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/openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control b/openwrt/target/linux/package/openwrt/ipkg/base-files-arch.control new file mode 100644 index 0000000000..5396f6817a --- /dev/null +++ b/openwrt/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/openwrt/target/linux/package/openwrt/ipkg/openwrt-utils.control b/openwrt/target/linux/package/openwrt/ipkg/openwrt-utils.control deleted file mode 100644 index 37ef63276b..0000000000 --- a/openwrt/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