summaryrefslogtreecommitdiff
path: root/package/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files')
-rw-r--r--package/base-files/Config.in16
-rw-r--r--package/base-files/Config.in.manual10
-rw-r--r--package/base-files/Makefile35
-rw-r--r--package/base-files/files/base-files.conffiles1
-rw-r--r--package/base-files/src/etc/banner (renamed from package/base-files/extra/etc/banner)0
-rw-r--r--package/base-files/src/etc/functions.sh (renamed from package/base-files/extra/etc/functions.sh)4
-rw-r--r--package/base-files/src/etc/group (renamed from package/base-files/extra/etc/group)0
-rw-r--r--package/base-files/src/etc/hosts (renamed from package/base-files/extra/etc/hosts)0
-rw-r--r--package/base-files/src/etc/init.d/boot (renamed from package/base-files/extra/etc/init.d/boot)2
-rw-r--r--package/base-files/src/etc/init.d/done (renamed from package/base-files/extra/etc/init.d/done)0
-rwxr-xr-xpackage/base-files/src/etc/init.d/rcK (renamed from package/base-files/extra/etc/init.d/rcK)0
-rwxr-xr-xpackage/base-files/src/etc/init.d/rcS (renamed from package/base-files/extra/etc/init.d/rcS)0
-rw-r--r--package/base-files/src/etc/inittab (renamed from package/base-files/extra/etc/inittab)0
-rw-r--r--package/base-files/src/etc/ipkg.conf (renamed from package/base-files/extra/etc/ipkg.conf)0
-rw-r--r--package/base-files/src/etc/mdev.conf (renamed from package/base-files/extra/etc/mdev.conf)0
-rw-r--r--package/base-files/src/etc/modules (renamed from package/base-files/extra/etc/modules)0
-rwxr-xr-xpackage/base-files/src/etc/network/if-post-down.d/01-bridge26
-rwxr-xr-xpackage/base-files/src/etc/network/if-post-down.d/02-vlan10
-rwxr-xr-xpackage/base-files/src/etc/network/if-post-down.d/03-wireless21
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/01-atm41
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/02-vlan36
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/03-bridge29
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/04-wireless104
-rwxr-xr-xpackage/base-files/src/etc/network/if-up.d/01-bridge4
-rwxr-xr-xpackage/base-files/src/etc/network/if-up.d/02-wireless15
-rw-r--r--package/base-files/src/etc/network/interfaces (renamed from package/base-files/extra/etc/network/interfaces)0
-rw-r--r--package/base-files/src/etc/passwd (renamed from package/base-files/extra/etc/passwd)0
-rw-r--r--package/base-files/src/etc/profile (renamed from package/base-files/extra/etc/profile)6
-rw-r--r--package/base-files/src/etc/protocols (renamed from package/base-files/extra/etc/protocols)0
-rw-r--r--package/base-files/src/etc/rc.conf (renamed from package/base-files/extra/etc/rc.conf)0
-rw-r--r--package/base-files/src/etc/shadow (renamed from package/base-files/extra/etc/shadow)0
-rw-r--r--package/base-files/src/etc/sysctl.conf (renamed from package/base-files/extra/etc/sysctl.conf)0
-rwxr-xr-xpackage/base-files/src/init (renamed from package/base-files/extra/init)5
-rw-r--r--package/base-files/src/lib/mdev/init (renamed from package/base-files/extra/lib/mdev/init)5
-rwxr-xr-xpackage/base-files/src/sbin/adkupdate96
-rwxr-xr-xpackage/base-files/src/usr/share/udhcpc/default.script (renamed from package/base-files/extra/usr/share/udhcpc/default.script)0
36 files changed, 425 insertions, 41 deletions
diff --git a/package/base-files/Config.in b/package/base-files/Config.in
deleted file mode 100644
index f58cbd63c..000000000
--- a/package/base-files/Config.in
+++ /dev/null
@@ -1,16 +0,0 @@
-config ADK_PACKAGE_BASE_FILES
- prompt "base-files........................... basic filesystem layout"
- bool
- default y if !ADK_TOOLCHAIN_ONLY
- help
- Basic filesystem layout.
-
-config ADK_PACKAGE_CONFIG_IN_ETC
- prompt ".config in /etc...................... include gzipped version of .config in image"
- bool
- default y if !ADK_TOOLCHAIN_ONLY
- help
- Copy the configuration file (.config) to the image. The
- file will be found in /etc/adkconfig.gz. This takes about
- 7kBytes of file system space. From this file you can always rebuild
- the image from source.
diff --git a/package/base-files/Config.in.manual b/package/base-files/Config.in.manual
new file mode 100644
index 000000000..d750ff3ef
--- /dev/null
+++ b/package/base-files/Config.in.manual
@@ -0,0 +1,10 @@
+config ADK_PACKAGE_CONFIG_IN_ETC
+ prompt ".config in /etc.................. include buildsystem configuration in image"
+ bool
+ depends on ADK_PACKAGE_BASE_FILES
+ default y if !ADK_TOOLCHAIN_ONLY
+ help
+ Copy the configuration file (.config) to the image. The
+ file will be found in /etc/adkconfig.gz. This takes about
+ 7kBytes of file system space. From this file you can always rebuild
+ the image from source.
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 52130bf10..3f63df3e6 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,28 +6,37 @@ include $(TOPDIR)/mk/rootfs.mk
PKG_NAME:= base-files
PKG_VERSION:= 1.0
-PKG_RELEASE:= 6
+PKG_RELEASE:= 10
PKG_DESCR:= basic filesystem structure and scripts
PKG_SECTION:= base
WRKDIST= ${WRKDIR}/base-files
NO_DISTFILES:= 1
-ifeq ($(CPU_ARCH),x86_64)
-PKG_ID= x86-64-${FS}
-else
-PKG_ID= ${DEVICE}-${FS}
-endif
-WRKDIR= ${WRKDIR_BASE}/w-${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}-${PKG_ID}
include $(TOPDIR)/mk/package.mk
-$(eval $(call PKG_template,BASE_FILES,base-files-${PKG_ID},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+PKGDFLT_BASE_FILES= y if !ADK_TOOLCHAIN_ONLY
+CFLINE_BASE_FILES:= depends on !ADK_TOOLCHAIN_ONLY
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
do-install:
- $(CP) ./extra/* $(IDIR_BASE_FILES)
- $(CP) $(TOPDIR)/target/$(DEVICE)/files/* $(IDIR_BASE_FILES)
- $(SED) 's,@TARGET@,$(DEVICE),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+ $(CP) ./src/* $(IDIR_BASE_FILES)
+ # allow this to fail, as there might be no target-specific files to copy
+ -$(CP) $(TOPDIR)/target/$(ADK_TARGET)/files/* $(IDIR_BASE_FILES)
+ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
+ @-rm $(IDIR_BASE_FILES)/etc/network/interfaces
+endif
+ifeq (${ADK_TARGET_PACKAGE_IPKG},y)
+ $(SED) 's,@TARGET@,$(ADK_TARGET),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
$(SED) 's,@VERSION@,$(ADK_VERSION),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+else
+ @-rm $(IDIR_BASE_FILES)/etc/ipkg.conf
+endif
echo /bin/sh >${IDIR_BASE_FILES}/etc/shells
echo /bin/ash >>${IDIR_BASE_FILES}/etc/shells
ifneq (${ADK_PACKAGE_BASH},)
@@ -44,6 +53,10 @@ endif
mkdir -p $(IDIR_BASE_FILES)/root
mkdir -p $(IDIR_BASE_FILES)/sys
mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
+ mkdir -p $(IDIR_BASE_FILES)/etc/network/if-pre-up.d
+ mkdir -p $(IDIR_BASE_FILES)/etc/network/if-up.d
+ mkdir -p $(IDIR_BASE_FILES)/etc/network/if-down.d
+ mkdir -p $(IDIR_BASE_FILES)/etc/network/if-post-down.d
mkdir -p $(IDIR_BASE_FILES)/mnt
mkdir -p $(IDIR_BASE_FILES)/proc
mkdir -p $(IDIR_BASE_FILES)/tmp
diff --git a/package/base-files/files/base-files.conffiles b/package/base-files/files/base-files.conffiles
index 2495e2ee4..b2f9597a8 100644
--- a/package/base-files/files/base-files.conffiles
+++ b/package/base-files/files/base-files.conffiles
@@ -7,7 +7,6 @@
/etc/profile
/etc/protocols
/etc/sysctl.conf
-/etc/network/interfaces
/etc/rc.conf
/etc/sysctl.conf
/etc/shadow
diff --git a/package/base-files/extra/etc/banner b/package/base-files/src/etc/banner
index 49dbb9685..49dbb9685 100644
--- a/package/base-files/extra/etc/banner
+++ b/package/base-files/src/etc/banner
diff --git a/package/base-files/extra/etc/functions.sh b/package/base-files/src/etc/functions.sh
index 6563c1d0e..5d76f4843 100644
--- a/package/base-files/extra/etc/functions.sh
+++ b/package/base-files/src/etc/functions.sh
@@ -64,7 +64,7 @@ get_next_uid() {
uid=1
while grep "^[^:]*:[^:]*:$uid:" $IPKG_INSTROOT/etc/passwd \
>/dev/null 2>&1; do
- let uid++
+ uid=$(($uid+1))
done
echo $uid
}
@@ -73,7 +73,7 @@ get_next_gid() {
gid=1
while grep "^[^:]*:[^:]*:$gid:" $IPKG_INSTROOT/etc/group \
>/dev/null 2>&1; do
- let gid++
+ gid=$(($gid+1))
done
echo $gid
}
diff --git a/package/base-files/extra/etc/group b/package/base-files/src/etc/group
index c4e77f316..c4e77f316 100644
--- a/package/base-files/extra/etc/group
+++ b/package/base-files/src/etc/group
diff --git a/package/base-files/extra/etc/hosts b/package/base-files/src/etc/hosts
index 87d837fc7..87d837fc7 100644
--- a/package/base-files/extra/etc/hosts
+++ b/package/base-files/src/etc/hosts
diff --git a/package/base-files/extra/etc/init.d/boot b/package/base-files/src/etc/init.d/boot
index f71e46240..2ef6538e0 100644
--- a/package/base-files/extra/etc/init.d/boot
+++ b/package/base-files/src/etc/init.d/boot
@@ -24,4 +24,6 @@ for f in /etc/modules.d/*; do
[[ -e $f ]] && load_modules /etc/modules.d/*
break
done
+# settle down, after module load
+sleep 2
exit 0
diff --git a/package/base-files/extra/etc/init.d/done b/package/base-files/src/etc/init.d/done
index e5b655bb6..e5b655bb6 100644
--- a/package/base-files/extra/etc/init.d/done
+++ b/package/base-files/src/etc/init.d/done
diff --git a/package/base-files/extra/etc/init.d/rcK b/package/base-files/src/etc/init.d/rcK
index e94d1a296..e94d1a296 100755
--- a/package/base-files/extra/etc/init.d/rcK
+++ b/package/base-files/src/etc/init.d/rcK
diff --git a/package/base-files/extra/etc/init.d/rcS b/package/base-files/src/etc/init.d/rcS
index fd56feebf..fd56feebf 100755
--- a/package/base-files/extra/etc/init.d/rcS
+++ b/package/base-files/src/etc/init.d/rcS
diff --git a/package/base-files/extra/etc/inittab b/package/base-files/src/etc/inittab
index 960ea77d8..960ea77d8 100644
--- a/package/base-files/extra/etc/inittab
+++ b/package/base-files/src/etc/inittab
diff --git a/package/base-files/extra/etc/ipkg.conf b/package/base-files/src/etc/ipkg.conf
index 6c9242620..6c9242620 100644
--- a/package/base-files/extra/etc/ipkg.conf
+++ b/package/base-files/src/etc/ipkg.conf
diff --git a/package/base-files/extra/etc/mdev.conf b/package/base-files/src/etc/mdev.conf
index 99c910d0b..99c910d0b 100644
--- a/package/base-files/extra/etc/mdev.conf
+++ b/package/base-files/src/etc/mdev.conf
diff --git a/package/base-files/extra/etc/modules b/package/base-files/src/etc/modules
index 014f40f2b..014f40f2b 100644
--- a/package/base-files/extra/etc/modules
+++ b/package/base-files/src/etc/modules
diff --git a/package/base-files/src/etc/network/if-post-down.d/01-bridge b/package/base-files/src/etc/network/if-post-down.d/01-bridge
new file mode 100755
index 000000000..47f3c976b
--- /dev/null
+++ b/package/base-files/src/etc/network/if-post-down.d/01-bridge
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+if [ ! -x /usr/sbin/brctl ]
+then
+ exit 0
+fi
+
+case "$IF_BRIDGE_PORTS" in
+ "")
+ exit 0
+ ;;
+ none)
+ INTERFACES=""
+ ;;
+ *)
+ INTERFACES="$IF_BRIDGE_PORTS"
+ ;;
+esac
+
+for IF in $INTERFACES; do
+ ip link set down dev $IF && brctl delif $IFACE $IF
+done
+
+ip link set down dev $IFACE || exit 1
+brctl delbr $IFACE
+exit 0
diff --git a/package/base-files/src/etc/network/if-post-down.d/02-vlan b/package/base-files/src/etc/network/if-post-down.d/02-vlan
new file mode 100755
index 000000000..e448a7641
--- /dev/null
+++ b/package/base-files/src/etc/network/if-post-down.d/02-vlan
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+[ -x /sbin/vconfig ] || exit 0
+
+[ -e /proc/net/vlan/$IFACE ] && (
+ ip link set down dev $IFACE
+ vconfig rem $IFACE
+)
+
+exit 0
diff --git a/package/base-files/src/etc/network/if-post-down.d/03-wireless b/package/base-files/src/etc/network/if-post-down.d/03-wireless
new file mode 100755
index 000000000..86e0c73e1
--- /dev/null
+++ b/package/base-files/src/etc/network/if-post-down.d/03-wireless
@@ -0,0 +1,21 @@
+#!/bin/sh
+set -e
+
+[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
+
+case "$IF_WIRELESS_MODE" in
+ ap)
+ logger -t hostap "Killing hostapd"
+ pkill hostapd
+ ;;
+ sta)
+ [ "$IF_WIRELESS_SECURITY" != "none" ] && {
+ logger -t wireless "Killing wpa_supplicant"
+ pkill wpa_supplicant
+ }
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+exit 0
diff --git a/package/base-files/src/etc/network/if-pre-up.d/01-atm b/package/base-files/src/etc/network/if-pre-up.d/01-atm
new file mode 100755
index 000000000..5c168c001
--- /dev/null
+++ b/package/base-files/src/etc/network/if-pre-up.d/01-atm
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+[ -x /usr/sbin/br2684ctl ] || exit 0
+
+[ "${IFACE%%[0-9]*}" = "nas" ] || exit 0
+
+[ "$IF_ATM_ENCAPS" ] || encap=0
+[ "$IF_ATM_PAYLOAD" ] || payload=1
+[ "$IF_ATM_VPI" ] || IF_ATM_VPI=1
+[ "$IF_ATM_VCI" ] || IF_ATM_VCI=32
+
+[ "$IF_ATM_PAYLOAD" ] && case "$IF_ATM_PAYLOAD" in
+bridged)
+ payload=1
+ ;;
+routed)
+ payload=0
+ ;;
+*)
+ echo "Wrong payload, use either bridged or routed"
+ exit 1
+ ;;
+esac
+
+[ "$IF_ATM_ENCAPS" ] && case "$IF_ATM_ENCAPS" in
+llc)
+ encap=0
+ ;;
+vc)
+ encap=1
+ ;;
+*)
+ echo "Wrong Encapsulation use either llc or vc"
+ exit 1
+ ;;
+esac
+
+br2684ctl -b -c ${IFACE##*[a-z]} -e $encap -p $payload -a $IF_ATM_VPI.$IF_ATM_VCI
+ifconfig nas${IFACE##*[a-z]} up
+
+exit 0
diff --git a/package/base-files/src/etc/network/if-pre-up.d/02-vlan b/package/base-files/src/etc/network/if-pre-up.d/02-vlan
new file mode 100755
index 000000000..35b7fca59
--- /dev/null
+++ b/package/base-files/src/etc/network/if-pre-up.d/02-vlan
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+[ -x /sbin/vconfig ] || exit 0
+[ -d /proc/net/vlan ] || exit 0
+
+case "$IFACE" in
+ vlan*)
+ vconfig set_name_type VLAN_PLUS_VID_NO_PAD
+ VLANID=`echo $IFACE|sed "s/vlan*//"`
+ ;;
+ eth*.*)
+ vconfig set_name_type DEV_PLUS_VID_NO_PAD
+ VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.*//g"`
+ IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/"`
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+
+if [ "$IF_VLAN_RAW_DEVICE" != "" ]; then
+ if ! grep -q "$IF_VLAN_RAW_DEVICE" /proc/net/dev
+ then
+ echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE"
+ exit 1
+ fi
+ ip link set up dev $IF_VLAN_RAW_DEVICE
+ vconfig add $IF_VLAN_RAW_DEVICE $VLANID
+ if [ "$IF_MAC_ADDRESS" != "" ]
+ then
+ ip link set $IF_VLAN_RAW_DEVICE.$VLANID address $IF_MAC_ADDRESS
+ fi
+ ip link set up dev $IF_VLAN_RAW_DEVICE.$VLANID
+fi
+
+exit 0
diff --git a/package/base-files/src/etc/network/if-pre-up.d/03-bridge b/package/base-files/src/etc/network/if-pre-up.d/03-bridge
new file mode 100755
index 000000000..41ddb2b58
--- /dev/null
+++ b/package/base-files/src/etc/network/if-pre-up.d/03-bridge
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+[ -x /usr/sbin/brctl ] || exit 0
+
+case "$IF_BRIDGE_PORTS" in
+ "")
+ exit 0
+ ;;
+ none)
+ INTERFACES=""
+ ;;
+ *)
+ INTERFACES="$IF_BRIDGE_PORTS"
+ ;;
+esac
+
+brctl addbr $IFACE || exit 1
+
+for IF in $INTERFACES; do
+ if ! grep -q $IF /proc/net/dev; then
+ echo "Error: interface '$IF' does not exist!"
+ brctl delbr $IFACE
+ exit 1
+ fi
+ brctl addif $IFACE $IF
+ ip link set up dev $IF
+done
+
+exit 0
diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless
new file mode 100755
index 000000000..1898de4d4
--- /dev/null
+++ b/package/base-files/src/etc/network/if-pre-up.d/04-wireless
@@ -0,0 +1,104 @@
+#!/bin/sh
+#set -x
+set -e
+
+[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
+
+[ "$IF_WIRELESS_SSID" ] || exit 1
+[ "$IF_WIRELESS_CHANNEL" ] || exit 1
+[ "$IF_WIRELESS_HWMODE" ] || IF_WIRELESS_HWMODE=g
+
+wpa=0
+wpa1=0
+wpa2=0
+
+case "$IF_WIRELESS_SECURITY" in
+ none)
+ sec=1
+ ;;
+ wep)
+ sec=2
+ ;;
+ wpa)
+ sec=1
+ wpa1=1
+ ;;
+ wpa2)
+ sec=1
+ wpa2=1
+ ;;
+ wpa+wpa2)
+ sec=1
+ wpa=1
+ ;;
+ *)
+ sec=1
+ ;;
+esac
+
+case "$IF_WIRELESS_MODE" in
+ ap)
+ logger -t hostap "Creating hostapd configuration"
+ cat /etc/hostapd.conf > /tmp/hostapd.conf
+ chmod 600 /tmp/hostapd.conf
+ echo "interface=${IFACE}" >> /tmp/hostapd.conf
+ echo "ssid=$IF_WIRELESS_SSID" >> /tmp/hostapd.conf
+ echo "channel=$IF_WIRELESS_CHANNEL" >> /tmp/hostapd.conf
+ echo "hw_mode=$IF_WIRELESS_HWMODE" >> /tmp/hostapd.conf
+ echo "auth_algs=$sec" >> /tmp/hostapd.conf
+ [ $wpa -eq 0 ] && {
+ logger -t hostap "using no security mechanism"
+ echo "wpa=0" >> /tmp/hostapd.conf
+ }
+ [ $wpa1 -eq 1 ] && {
+ logger -t hostap "using WPA for security"
+ echo "wpa=1" >> /tmp/hostapd.conf
+ echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+ echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf
+ echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+ }
+ [ $wpa2 -eq 1 ] && {
+ logger -t hostap "using WPA2 for security"
+ echo "wpa=2" >> /tmp/hostapd.conf
+ echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+ echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf
+ echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+ }
+ [ $wpa -eq 1 ] && {
+ logger -t hostap "using WPA and WPA2 for security"
+ echo "wpa=3" >> /tmp/hostapd.conf
+ echo "wpa_key_mgmt=WPA-PSK" >> /tmp/hostapd.conf
+ echo "wpa_pairwise=TKIP" >> /tmp/hostapd.conf
+ echo "rsn_pairwise=CCMP" >> /tmp/hostapd.conf
+ echo "wpa_passphrase=$IF_WIRELESS_PASSPHRASE" >> /tmp/hostapd.conf
+ }
+ ;;
+ sta)
+ [ -x /usr/sbin/iw ] || {
+ logger -t wireless "No iw utility found"
+ exit 1
+ }
+ ip link set up dev ${IFACE}
+ iw dev ${IFACE} set channel $IF_WIRELESS_CHANNEL
+ iw dev ${IFACE} connect $IF_WIRELESS_SSID
+ [ $wpa2 -eq 1 ] && {
+ [ -x /usr/sbin/wpa_supplicant ] || {
+ logger -t wireless "No wpa_supplicant found"
+ exit 1
+ }
+ touch /tmp/wpa_supplicant.conf
+ chmod 600 /tmp/wpa_supplicant.conf
+ echo "network={" > /tmp/wpa_supplicant.conf
+ echo " ssid=\"$IF_WIRELESS_SSID\"" >> /tmp/wpa_supplicant.conf
+ echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf
+ echo " priority=5" >> /tmp/wpa_supplicant.conf
+ echo "}" >> /tmp/wpa_supplicant.conf
+ wpa_supplicant -B -Dnl80211 -i${IFACE} -c/tmp/wpa_supplicant.conf
+ }
+ ;;
+ *)
+ echo "Unknown operation mode $IF_WIRELESS_MODE given!"
+ exit 1
+ ;;
+esac
+exit 0
diff --git a/package/base-files/src/etc/network/if-up.d/01-bridge b/package/base-files/src/etc/network/if-up.d/01-bridge
new file mode 100755
index 000000000..e5962f12f
--- /dev/null
+++ b/package/base-files/src/etc/network/if-up.d/01-bridge
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+[ "${IFACE%%[0-9]*}" = "br" ] && ip link set up dev $IFACE
+exit 0
diff --git a/package/base-files/src/etc/network/if-up.d/02-wireless b/package/base-files/src/etc/network/if-up.d/02-wireless
new file mode 100755
index 000000000..cd9d2af3f
--- /dev/null
+++ b/package/base-files/src/etc/network/if-up.d/02-wireless
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
+
+case "$IF_WIRELESS_MODE" in
+ ap)
+ [ -x /usr/sbin/hostapd ] || {
+ logger -t hostap "No hostapd program found"
+ exit 1
+ }
+ logger -t hostap "Starting hostapd"
+ hostapd -B /tmp/hostapd.conf
+ ;;
+esac
diff --git a/package/base-files/extra/etc/network/interfaces b/package/base-files/src/etc/network/interfaces
index f1bd92ed2..f1bd92ed2 100644
--- a/package/base-files/extra/etc/network/interfaces
+++ b/package/base-files/src/etc/network/interfaces
diff --git a/package/base-files/extra/etc/passwd b/package/base-files/src/etc/passwd
index 32531eb92..32531eb92 100644
--- a/package/base-files/extra/etc/passwd
+++ b/package/base-files/src/etc/passwd
diff --git a/package/base-files/extra/etc/profile b/package/base-files/src/etc/profile
index 798548a46..1b8f4a6a6 100644
--- a/package/base-files/extra/etc/profile
+++ b/package/base-files/src/etc/profile
@@ -1,12 +1,12 @@
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
+export TERM=vt220
if [[ $(id -u) = 0 ]]; then
export PS1='# '
else
export PS1='$ '
+ export HOME=/tmp
fi
-export HOME=/tmp
cat /etc/banner 2>&-
-[ -x /usr/bin/less ] || alias less=more
-[ -x /usr/bin/vim ] || alias vim=vi
+[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 "$@"; }
diff --git a/package/base-files/extra/etc/protocols b/package/base-files/src/etc/protocols
index dfe58ed22..dfe58ed22 100644
--- a/package/base-files/extra/etc/protocols
+++ b/package/base-files/src/etc/protocols
diff --git a/package/base-files/extra/etc/rc.conf b/package/base-files/src/etc/rc.conf
index 024007589..024007589 100644
--- a/package/base-files/extra/etc/rc.conf
+++ b/package/base-files/src/etc/rc.conf
diff --git a/package/base-files/extra/etc/shadow b/package/base-files/src/etc/shadow
index 3683d71ea..3683d71ea 100644
--- a/package/base-files/extra/etc/shadow
+++ b/package/base-files/src/etc/shadow
diff --git a/package/base-files/extra/etc/sysctl.conf b/package/base-files/src/etc/sysctl.conf
index 73260cf9d..73260cf9d 100644
--- a/package/base-files/extra/etc/sysctl.conf
+++ b/package/base-files/src/etc/sysctl.conf
diff --git a/package/base-files/extra/init b/package/base-files/src/init
index 9013065d0..618547693 100755
--- a/package/base-files/extra/init
+++ b/package/base-files/src/init
@@ -1,5 +1,5 @@
#!/bin/sh
-echo "Pre-boot initializing"
+echo "System initialization ..."
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount -nt proc proc /proc
mount -o nosuid,nodev,noexec -t sysfs sysfs /sys
@@ -8,7 +8,7 @@ mount -o nosuid,nodev,noexec -t sysfs sysfs /sys
mount none /tmp -t tmpfs -o size=${size}k
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
}
-mount -o nosuid,size=64k,mode=0755 -t tmpfs mdev /dev
+mount -o nosuid,size=128k,mode=0755 -t tmpfs mdev /dev
mkdir /dev/pts /dev/shm
mount -o nosuid,noexec -t devpts devpts /dev/pts
exec 0<>/dev/console >&0 2>&0
@@ -19,5 +19,4 @@ mount -o remount,rw /
cat /etc/.rnd >/dev/urandom 2>&1
[ -f /etc/fstab ] && mount -a
[ -x /sbin/cfgfs ] && { cfgfs setup; mount -o remount,ro /;}
-echo "Starting system"
exec /sbin/init
diff --git a/package/base-files/extra/lib/mdev/init b/package/base-files/src/lib/mdev/init
index d2ae13e9c..de368c80c 100644
--- a/package/base-files/extra/lib/mdev/init
+++ b/package/base-files/src/lib/mdev/init
@@ -1,9 +1,4 @@
#!/bin/sh
-if [ "$ACTION" == "add" ];then
- if [ "$DEVPATH" == "/bus/usb" ];then
- mount -t usbfs usbfs /proc/bus/usb
- fi
-fi
if [ "$SUBSYSTEM" == "firmware" ];then
logger "Firmware load for $FIRMWARE requested"
if [ "$ACTION" == "add" ];then
diff --git a/package/base-files/src/sbin/adkupdate b/package/base-files/src/sbin/adkupdate
new file mode 100755
index 000000000..1af188b41
--- /dev/null
+++ b/package/base-files/src/sbin/adkupdate
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+who=$(id -u)
+if [ $who -ne 0 ]; then
+ echo 'Exit. System update must be run as root.'
+ exit 1
+fi
+
+system=$(awk '/system type/ { print $5 }' /proc/cpuinfo 2>/dev/null)
+
+if [ -x /sbin/mtd ];then
+ if [ "$system" == "AR7" ];then
+ updatecmd="dd bs=16 skip=3 | mtd -r write - linux"
+ else
+ updatecmd="mtd -r write - linux"
+ fi
+else
+ updatecmd="gunzip -c | tar -xf -"
+fi
+
+
+check_exit() {
+ if [ $? -ne 0 ];then
+ echo "Update failed."
+ exit 1
+ fi
+}
+
+prepare() {
+ cd /
+ if [ -x /sbin/cfgfs ];then
+ umount -f /etc
+ fi
+ mount -o remount,rw /
+ if [ "$system" == "RB532" ];then
+ mount -t yaffs2 /dev/mtdblock0 /boot
+ elif [ "$system" == "FOXG20" ];then
+ mount -t vfat /dev/mmcblk0p1 /boot
+ fi
+}
+
+extract_from_file() {
+ prepare
+ cat $1 | eval $updatecmd
+ check_exit
+}
+
+extract_from_ssh() {
+ prepare
+ ssh $1 "cat $2" | eval $updatecmd
+ check_exit
+}
+
+extract_from_http() {
+ prepare
+ wget -O - $1 | eval $updatecmd
+ check_exit
+}
+
+case $1 in
+ file://*|/*)
+ url=$(echo $1|sed -e "s#file://##")
+ echo "Updating system from $1"
+ extract_from_file $url
+ ;;
+ ssh://*)
+ host=$(echo $1|sed -e "s#ssh://\(.*\):.*#\1#")
+ file=$(echo $1|sed -e "s#ssh://.*:\(.*\)#\1#")
+ echo "Updating system from $1"
+ extract_from_ssh $host $file
+ ;;
+ http://*|ftp://*)
+ echo "Updating system from $1"
+ extract_from_http $1
+ ;;
+ *)
+ echo "No or wrong uri given. exit."
+ echo "Use one of the following uri:"
+ echo "http://myserver/myupdate.tar.gz"
+ echo "ssh://myuser@myserver:/my/path/myupdate.tar.gz"
+ echo "file:///mypath/myupdate.tar.gz"
+ exit 1
+ ;;
+esac
+
+sync
+if [ -x /sbin/cfgfs ];then
+ mount -o bind /etc /tmp/.cfgfs/root
+fi
+if [ "$system" == "RB532" ];then
+ umount -f /boot
+elif [ "$system" == "FOXG20" ];then
+ umount -f /boot
+fi
+
+echo "Update sucessful. You should reboot now."
diff --git a/package/base-files/extra/usr/share/udhcpc/default.script b/package/base-files/src/usr/share/udhcpc/default.script
index 02e4a7a3c..02e4a7a3c 100755
--- a/package/base-files/extra/usr/share/udhcpc/default.script
+++ b/package/base-files/src/usr/share/udhcpc/default.script