diff options
Diffstat (limited to 'package/base-files/default/sbin')
| -rwxr-xr-x | package/base-files/default/sbin/backup | 32 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/halt | 3 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/hotplug | 6 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/ifdown | 9 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/ifup | 59 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/mount_root | 25 | ||||
| -rwxr-xr-x | package/base-files/default/sbin/restore | 71 | 
7 files changed, 205 insertions, 0 deletions
| diff --git a/package/base-files/default/sbin/backup b/package/base-files/default/sbin/backup new file mode 100755 index 000000000..33bad5350 --- /dev/null +++ b/package/base-files/default/sbin/backup @@ -0,0 +1,32 @@ +#!/bin/sh +for param in $*; do +	case "$param" in +		*) +			OUTPUT_FILE="$param" +			;; +	esac +done + +if [ "$OUTPUT_FILE" = "-" ]; then +	echo "Writing backup to stdout.." >&2 +elif [ "$OUTPUT_FILE" = "" ]; then +	echo "No output file." +	exit 1 +else +	echo "Writing backup to $OUTPUT_FILE" >&2 +	exec > "$OUTPUT_FILE" +fi + +echo __FILELIST__ +find /etc -type f > /tmp/.wlbackup_files +cat /tmp/.wlbackup_files + +echo __IPKG__ +cat /etc/ipkg.conf + +echo __PACKAGES__ +grep '^Package:' /usr/lib/ipkg/status | cut -d' ' -f2 + +echo __FILES__ +tar -T /tmp/.wlbackup_files -cz 2>/dev/null +rm -f /tmp/.wlbackup_files diff --git a/package/base-files/default/sbin/halt b/package/base-files/default/sbin/halt new file mode 100755 index 000000000..39eed2612 --- /dev/null +++ b/package/base-files/default/sbin/halt @@ -0,0 +1,3 @@ +#!/bin/sh +/usr/bin/killall5 -9 +#umount -ar diff --git a/package/base-files/default/sbin/hotplug b/package/base-files/default/sbin/hotplug new file mode 100755 index 000000000..74134e848 --- /dev/null +++ b/package/base-files/default/sbin/hotplug @@ -0,0 +1,6 @@ +#!/bin/ash +# $Id$ +[ "${INTERFACE%%[0-9]*}" = "wds" ] && {  +	ifconfig $INTERFACE 0.0.0.0 up +	/usr/sbin/brctl addif br0 $INTERFACE +} diff --git a/package/base-files/default/sbin/ifdown b/package/base-files/default/sbin/ifdown new file mode 100755 index 000000000..6b255cc1b --- /dev/null +++ b/package/base-files/default/sbin/ifdown @@ -0,0 +1,9 @@ +#!/bin/ash +[ $# = 0 ] && { echo "  $0 <group>"; exit; } +. /etc/functions.sh +type=$1 +debug "### ifdown $type ###" +if=$(nvram get ${type}_ifname) +if_valid $if || exit  +$DEBUG ifconfig $if down +kill $(cat /var/run/${if}.pid 2>&-) 2>&- diff --git a/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup new file mode 100755 index 000000000..3d81364d0 --- /dev/null +++ b/package/base-files/default/sbin/ifup @@ -0,0 +1,59 @@ +#!/bin/ash +[ $# = 0 ] && { echo "  $0 <group>"; exit; } +. /etc/functions.sh +type=$1 +debug "### ifup $type ###" + +if_proto=$(nvram get ${type}_proto) +if=$(nvram get ${type}_ifname) +[ "${if%%[0-9]}" = "ppp" ] && if=$(nvram get ${if_proto}_ifname) + +if_valid $if || exit  +mac=$(nvram get ${type}_hwaddr) +$DEBUG ifconfig $if down 2>&- + +if [ "${if%%[0-9]}" = "br" ]; then +	stp=$(nvram get ${type}_stp) +	$DEBUG brctl delbr $if 2>&- +	$DEBUG brctl addbr $if +	$DEBUG brctl setfd $if 0 +	$DEBUG brctl stp $if ${stp:-0} + +	for sif in $(nvram get ${type}_ifnames); do +		if_valid $sif || continue +		${mac:+$DEBUG ifconfig $sif down hw ether $mac} +		$DEBUG ifconfig $sif 0.0.0.0 up +		$DEBUG brctl addif $if $sif +	done +else +	${mac:+$DEBUG ifconfig $if down hw ether $mac} +fi + +case "$if_proto" in +	static) +		ip=$(nvram get ${type}_ipaddr) +		netmask=$(nvram get ${type}_netmask) +		gateway=$(nvram get ${type}_gateway) + +		$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up +		${gateway:+$DEBUG route add default gw $gateway} + +		[ -f /etc/resolv.conf ] && return + +		debug "# --- creating /etc/resolv.conf ---" +		for dns in $(nvram get ${type}_dns); do +			echo "nameserver $dns" >> /etc/resolv.conf +		done +	;; +	dhcp) +		ip=$(nvram get ${type}_ipaddr) +		[ -f $pidfile ] && $DEBUG kill $(cat $pidfile) +		${DEBUG:-eval} "udhcpc -R -i $if ${ip:+-r $ip} -b -p $pidfile &"  +	;; +	none|"") +	;; +	*) +		[ -x "/sbin/ifup.${if_proto}" ] && { $DEBUG /sbin/ifup.${if_proto} $*; exit; } +		echo "### ifup $type: ignored ${type}_proto=\"$if_proto\" (not supported)" +	;; +esac diff --git a/package/base-files/default/sbin/mount_root b/package/base-files/default/sbin/mount_root new file mode 100755 index 000000000..b4ec2ca56 --- /dev/null +++ b/package/base-files/default/sbin/mount_root @@ -0,0 +1,25 @@ +#!/bin/sh +if [ "$1" != "failsafe" ]; then  +	mount | grep jffs2 >&- +	if [ $? = 0 ] ; then +		if [ $(cat /proc/mtd | wc -l) = 6 ]; then +			echo 5 > /proc/sys/diag +			mtd unlock linux +			mtd erase OpenWrt +			jffs2root --move +		else +			mtd unlock rootfs +			mount -o remount,rw /dev/root / +		fi +	else +		mtd unlock OpenWrt +		mount -t jffs2 /dev/mtdblock/4 /jffs +		pivot_root /jffs /jffs/rom +		mount none /proc -t proc +		mount none /dev -t devfs +		umount /rom/proc rom/dev >&- +	fi +fi +mount none /tmp -t tmpfs -o nosuid,nodev,mode=1777,size=50% +mkdir -p /dev/pts +mount none /dev/pts -t devpts diff --git a/package/base-files/default/sbin/restore b/package/base-files/default/sbin/restore new file mode 100755 index 000000000..6b5876cc1 --- /dev/null +++ b/package/base-files/default/sbin/restore @@ -0,0 +1,71 @@ +#!/bin/sh +for param in $*; do +	case "$param" in +		*) +			INPUT_FILE="$param" +	esac +done + +if [ "$INPUT_FILE" = "-" ]; then +	echo "Reading backup from stdin..." >&2 +elif [ "$INPUT_FILE" = "" ]; then +	echo "No input file." +else +	echo "Reading backup from $INPUT_FILE" >&2 +	exec < "$INPUT_FILE" +fi + +process_line () { +	case "$SECTION" in +		ipkg) +			echo "$line" >> /etc/ipkg.conf +			;; +		nvram) +			echo nvram set "$line" +			;; +		package) +			if grep "^Package: $line" /usr/lib/ipkg/status 2>&1 > /dev/null; then +				echo Package "$line" already installed. +			else +				ipkg install "$line" +			fi +			;; +		file) +			rm -f "$line" +			;; +	esac +} + +while true; do +	read line +	case "$line" in +		__IPKG__) +			SECTION=ipkg +			echo "Restoring /etc/ipkg.conf" +			rm -f /etc/ipkg.conf +			;; +		__NVRAM__) +			SECTION=nvram +			echo "Restoring nvram" +			;; +		__PACKAGES__) +			SECTION=package +			echo "Restoring packages" +			ipkg update +			;; +		__FILELIST__) +			SECTION=file +			echo "Deleting old files" +			;; +		__FILES__) +			echo "Restoring /etc" +			tar -C / -xvz +			echo "Restore complete." +			exit 0 +			;; +		*) +			process_line; +			;; +	esac +done + | 
