diff options
Diffstat (limited to 'package/base-files/files/etc')
20 files changed, 131 insertions, 79 deletions
diff --git a/package/base-files/files/etc/config/network b/package/base-files/files/etc/config/network index a35fd2ef9..87b124aa3 100644 --- a/package/base-files/files/etc/config/network +++ b/package/base-files/files/etc/config/network @@ -12,3 +12,11 @@ config interface lan option proto static option ipaddr 192.168.1.1 option netmask 255.255.255.0 + option ip6assign 60 + +config interface wan6 + option ifname @wan + option proto dhcpv6 + +config globals globals + option ula_prefix auto diff --git a/package/base-files/files/etc/functions.sh b/package/base-files/files/etc/functions.sh deleted file mode 120000 index 13b3190e7..000000000 --- a/package/base-files/files/etc/functions.sh +++ /dev/null @@ -1 +0,0 @@ -../lib/functions.sh
\ No newline at end of file diff --git a/package/base-files/files/etc/hotplug.d/net/00-sysctl b/package/base-files/files/etc/hotplug.d/net/00-sysctl new file mode 100644 index 000000000..5d9da8ac0 --- /dev/null +++ b/package/base-files/files/etc/hotplug.d/net/00-sysctl @@ -0,0 +1,6 @@ +#!/bin/sh + +if [ -f /etc/sysctl.conf ] && [ "$ACTION" = add ]; then + sed -ne "/^[[:space:]]*net\..*\.$DEVICENAME\./p" /etc/sysctl.conf | \ + sysctl -e -p - | logger -t sysctl +fi diff --git a/package/base-files/files/etc/hotplug2-init.rules b/package/base-files/files/etc/hotplug2-init.rules deleted file mode 100644 index f01169776..000000000 --- a/package/base-files/files/etc/hotplug2-init.rules +++ /dev/null @@ -1,5 +0,0 @@ -$include /etc/hotplug2-common.rules - -SUBSYSTEM == button { - exec kill -USR1 1 -} diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot index 43837a80f..4f35eac7b 100755 --- a/package/base-files/files/etc/init.d/boot +++ b/package/base-files/files/etc/init.d/boot @@ -24,27 +24,6 @@ system_config() { # apply timezone to kernel date -k - - if [ -x /sbin/syslogd ]; then - local args log_ip log_size log_port log_type log_file - config_get log_ip "$cfg" log_ip - config_get log_size "$cfg" log_size 16 - config_get log_port "$cfg" log_port 514 - config_get log_type "$cfg" log_type circular - config_get log_file "$cfg" log_file "/var/log/messages" - args="${log_ip:+-L -R ${log_ip}:${log_port}} ${conloglevel:+-l $conloglevel}" - if [ "$log_type" = "file" ]; then - args="$args -s $log_size -O $log_file -S" - else - args="$args -C${log_size}" - fi - service_start /sbin/syslogd $args - fi - if [ -x /sbin/klogd ]; then - config_get klogconloglevel "$cfg" klogconloglevel - args="${klogconloglevel:+-c $klogconloglevel}" - service_start /sbin/klogd $args - fi } apply_uci_config() { @@ -66,10 +45,14 @@ start() { touch /var/log/lastlog touch /tmp/resolv.conf.auto ln -sf /tmp/resolv.conf.auto /tmp/resolv.conf - grep -q debugfs /proc/filesystems && mount -t debugfs debugfs /sys/kernel/debug + grep -q debugfs /proc/filesystems && mount -o noatime -t debugfs debugfs /sys/kernel/debug [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe - load_modules /etc/modules.d/* + if [ -f /sbin/kmodloader ]; then + /sbin/kmodloader + else + load_modules /etc/modules.d/* + fi # allow wifi modules time to settle sleep 1 @@ -84,20 +67,16 @@ start() { config_load system config_foreach system_config system - killall -q hotplug2 - [ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \ - --set-rules-file /etc/hotplug2.rules \ - --set-coldplug-cmd /sbin/udevtrigger \ - --max-children 1 >/dev/null 2>&1 & - # create /dev/root if it doesn't exist [ -e /dev/root -o -h /dev/root ] || { rootdev=$(awk 'BEGIN { RS=" "; FS="="; } $1 == "root" { print $2 }' < /proc/cmdline) [ -n "$rootdev" ] && ln -s "$rootdev" /dev/root } -} -stop() { - service_stop /sbin/klogd - service_stop /sbin/syslogd + # early sysctl to avoid networking races + if [ -d /proc/sys/net/ipv6/conf ]; then + for i in /proc/sys/net/ipv6/conf/*/accept_ra; do + echo 0 > $i + done + fi } diff --git a/package/base-files/files/etc/init.d/done b/package/base-files/files/etc/init.d/done index 827866912..8040766dc 100755 --- a/package/base-files/files/etc/init.d/done +++ b/package/base-files/files/etc/init.d/done @@ -5,7 +5,7 @@ START=95 boot() { [ -d /tmp/root ] && { lock /tmp/.switch2jffs - firstboot switch2jffs + switch2jffs lock -u /tmp/.switch2jffs } diff --git a/package/base-files/files/etc/init.d/rcS b/package/base-files/files/etc/init.d/rcS index 3ec9bfef6..9599bbf32 100755 --- a/package/base-files/files/etc/init.d/rcS +++ b/package/base-files/files/etc/init.d/rcS @@ -1,26 +1,9 @@ #!/bin/sh # Copyright (C) 2006 OpenWrt.org -run_scripts() { - for i in /etc/rc.d/$1*; do - [ -x $i ] && $i $2 2>&1 - done | $LOGGER -} - -system_config() { - config_get_bool foreground $1 foreground 0 -} - LOGGER="cat" -[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t sysinit" - -. /lib/functions.sh - -config_load system -config_foreach system_config system +[ -x /usr/bin/logger ] && LOGGER="logger -p 6 -t sysinit" -if [ "$1" = "S" -a "$foreground" != "1" ]; then - run_scripts "$1" "$2" & -else - run_scripts "$1" "$2" -fi +for i in /etc/rc.d/$1*; do + [ -x $i ] && $i $2 2>&1 +done | $LOGGER diff --git a/package/base-files/files/etc/init.d/sysctl b/package/base-files/files/etc/init.d/sysctl index 239779055..3480d6641 100755 --- a/package/base-files/files/etc/init.d/sysctl +++ b/package/base-files/files/etc/init.d/sysctl @@ -1,7 +1,7 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org -START=99 +START=11 start() { [ -f /etc/sysctl.conf ] && sysctl -p -e >&- } diff --git a/package/base-files/files/etc/init.d/usb b/package/base-files/files/etc/init.d/usb index 7b443b651..43cdfd9a9 100755 --- a/package/base-files/files/etc/init.d/usb +++ b/package/base-files/files/etc/init.d/usb @@ -4,6 +4,6 @@ START=39 start() { [ -d /proc/bus/usb ] && { - /bin/mount -t usbfs none /proc/bus/usb + mount -o noatime -t usbfs none /proc/bus/usb } } diff --git a/package/base-files/files/etc/init.d/watchdog b/package/base-files/files/etc/init.d/watchdog deleted file mode 100755 index 299c89142..000000000 --- a/package/base-files/files/etc/init.d/watchdog +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2008-2011 OpenWrt.org - -START=97 - -start() { - [ -c /dev/watchdog ] || return 1 - [ -x /sbin/watchdog ] || return 1 - service_start /sbin/watchdog -t 5 /dev/watchdog -} -stop() { - service_stop /sbin/watchdog -} diff --git a/package/base-files/files/etc/inittab b/package/base-files/files/etc/inittab index ca90fd8a2..781718593 100644 --- a/package/base-files/files/etc/inittab +++ b/package/base-files/files/etc/inittab @@ -1,4 +1,3 @@ ::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K shutdown -ttyS0::askfirst:/bin/ash --login -tty1::askfirst:/bin/ash --login +::askconsole:/bin/ash --login diff --git a/package/base-files/files/etc/preinit b/package/base-files/files/etc/preinit index 0fdfa8cf8..ff26f96d6 100755 --- a/package/base-files/files/etc/preinit +++ b/package/base-files/files/etc/preinit @@ -2,6 +2,8 @@ # Copyright (C) 2006 OpenWrt.org # Copyright (C) 2010 Vertical Communications +[ -z "$PREINIT" ] && exec /sbin/init + export PATH=/bin:/sbin:/usr/bin:/usr/sbin pi_ifname= @@ -22,7 +24,6 @@ pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin" pi_init_cmd="/sbin/init" . /lib/functions.sh -. /lib/functions/boot.sh boot_hook_init preinit_essential boot_hook_init preinit_main diff --git a/package/base-files/files/etc/rc.button/failsafe b/package/base-files/files/etc/rc.button/failsafe new file mode 100755 index 000000000..dcdf7de80 --- /dev/null +++ b/package/base-files/files/etc/rc.button/failsafe @@ -0,0 +1,2 @@ +#!/bin/sh +touch /tmp/failsafe_button diff --git a/package/base-files/files/etc/rc.button/reset b/package/base-files/files/etc/rc.button/reset new file mode 100755 index 000000000..229b503a6 --- /dev/null +++ b/package/base-files/files/etc/rc.button/reset @@ -0,0 +1,18 @@ +#!/bin/sh + +[ "${ACTION}" = "released" ] || exit 0 + +. /lib/functions.sh + +logger "$BUTTON pressed for $SEEN seconds" + +if [ "$SEEN" -lt 1 ] +then + echo "REBOOT" > /dev/console + sync + reboot +elif [ "$SEEN" -gt 5 ] +then + echo "FACTORY RESET" > /dev/console + jffs2reset -y && reboot & +fi diff --git a/package/base-files/files/etc/rc.button/rfkill b/package/base-files/files/etc/rc.button/rfkill new file mode 100755 index 000000000..7a8cfe91b --- /dev/null +++ b/package/base-files/files/etc/rc.button/rfkill @@ -0,0 +1,23 @@ +#!/bin/sh + +[ "${ACTION}" = "released" ] || exit 0 + +. /lib/functions.sh + +local rfkill_state=0 + +wifi_rfkill_set() { + uci set wireless.$1.disabled=$rfkill_state +} + +wifi_rfkill_check() { + local disabled + config_get disabled $1 disabled + [ "$disabled" = "1" ] || rfkill_state=1 +} + +config_load wireless +config_foreach wifi_rfkill_check wifi-device +config_foreach wifi_rfkill_set wifi-device +uci commit wireless +wifi up diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common index fa2df6cd2..78e2dd494 100755 --- a/package/base-files/files/etc/rc.common +++ b/package/base-files/files/etc/rc.common @@ -75,10 +75,41 @@ $EXTRA_HELP EOF } +# for procd +start_service() { + return 0 +} + +stop_service() { + return 0 +} + ${INIT_TRACE:+set -x} . "$initscript" +[ -n "$USE_PROCD" ] && { + . $IPKG_INSTROOT/lib/functions/procd.sh + + rc_procd() { + procd_open_service "$(basename "$initscript")" "$initscript" + "$@" + procd_close_service + } + + start() { + rc_procd start_service "$@" + } + + stop() { + procd_kill "$(basename "$initscript")" "$1" + } + + reload() { + start + } +} + ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}" list_contains ALL_COMMANDS "$action" || action=help [ "$action" = "reload" ] && action='eval reload "$@" || restart "$@" && :' diff --git a/package/base-files/files/etc/sysctl.conf b/package/base-files/files/etc/sysctl.conf index ef3db4ec5..890e77af8 100644 --- a/package/base-files/files/etc/sysctl.conf +++ b/package/base-files/files/etc/sysctl.conf @@ -12,6 +12,9 @@ net.ipv4.tcp_timestamps=1 net.ipv4.tcp_sack=1 net.ipv4.tcp_dsack=1 +net.ipv6.conf.default.forwarding=2 +net.ipv6.conf.all.forwarding=2 + net.netfilter.nf_conntrack_acct=1 net.netfilter.nf_conntrack_checksum=0 net.netfilter.nf_conntrack_max=16384 diff --git a/package/base-files/files/etc/uci-defaults/migrate-shadow b/package/base-files/files/etc/uci-defaults/10_migrate-shadow index b7ea5718c..b7ea5718c 100644 --- a/package/base-files/files/etc/uci-defaults/migrate-shadow +++ b/package/base-files/files/etc/uci-defaults/10_migrate-shadow diff --git a/package/base-files/files/etc/uci-defaults/migrate-sysctl b/package/base-files/files/etc/uci-defaults/11_migrate-sysctl index b3796a4d2..b3796a4d2 100644 --- a/package/base-files/files/etc/uci-defaults/migrate-sysctl +++ b/package/base-files/files/etc/uci-defaults/11_migrate-sysctl diff --git a/package/base-files/files/etc/uci-defaults/12_network-generate-ula b/package/base-files/files/etc/uci-defaults/12_network-generate-ula new file mode 100644 index 000000000..f3e493145 --- /dev/null +++ b/package/base-files/files/etc/uci-defaults/12_network-generate-ula @@ -0,0 +1,18 @@ +#!/bin/sh + +[ "$(uci get network.globals.ula_prefix)" != "auto" ] && exit 0 +# Sometimes results are empty, therefore try until it works... +local r1 r2 r3 +while [ -z "$r1" -o -z "$r2" -o -z "$r3" ]; do + r1=$(printf "%02x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 256))) + r2=$(printf "%01x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 65536))) + r3=$(printf "%01x" $(($(</dev/urandom tr -dc 0-9 | dd bs=9 count=1) % 65536))) +done + +uci -q batch <<-EOF >/dev/null + set network.globals.ula_prefix=fd$r1:$r2:$r3::/48 + commit network +EOF + +exit 0 + |