#!/bin/sh
-. /etc/nvram.sh
-if [ "$(uname -r|grep 2.4)" = "0" ];do
- echo "S" > /proc/jffs2_bbc
-done
+# Copyright (C) 2006 OpenWrt.org
+
+. /etc/functions.sh
+
+[ -f /proc/mounts ] || /sbin/mount_root
+[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
+vconfig set_name_type DEV_PLUS_VID_NO_PAD
+
+HOSTNAME=${wan_hostname%%.*}
+echo ${HOSTNAME:=OpenWrt}>/proc/sys/kernel/hostname
mkdir -p /var/run
mkdir -p /var/log
+mkdir -p /var/lock
touch /var/log/wtmp
touch /var/log/lastlog
+[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
-[ -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
-
-ifconfig lo 127.0.0.1 up
-ifconfig eth0 promisc
-
-HOSTNAME=$(nvram get wan_hostname)
-HOSTNAME=${HOSTNAME%%.*}
-echo ${HOSTNAME:=OpenWrt}>/proc/sys/kernel/hostname
-
-vconfig set_name_type VLAN_PLUS_VID_NO_PAD
+# manually trigger hotplug before loading modules
+for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do
+ /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug net
+done
-# automagically run firstboot
-[ -z "$FAILSAFE" -a -z "$(nvram get no_root_swap)" ] && {
- { mount|grep "on / type jffs2" 1>&-; } || firstboot
-}
+load_modules /etc/modules /etc/modules.d/*