#!/bin/sh

mount -a
mkdir -p /var/run
mkdir root

#Linux2.6 uses udev instead of devfs, we have to create static dev node by myself.
mount -t ramfs mdev /dev
mkdir /dev/pts
mount -t devpts devpts /dev/pts
mdev -s

#mknod   /dev/spiS0       c       217     0
#mknod   /dev/i2cM0       c       218     0
mknod   /dev/rdm0        c       254     0
mknod   /dev/flash0      c       200     0
#mknod   /dev/swnat0      c       210     0
#mknod   /dev/hwnat0      c       220     0
mknod   /dev/acl0        c       230     0
mknod   /dev/ac0         c       240     0
mknod   /dev/mtr0        c       250     0
mknod   /dev/gpio        c       252     0
#mknod   /dev/PCM         c       233     0
#mknod   /dev/I2S         c       234     0

mkdir	/dev/net
mknod 	dev/tun0 	c 	90 	0
mknod 	dev/tun1 	c 	90 	1
mknod 	dev/tun2 	c 	90 	2
mknod 	dev/tap0 	c 	90 	128
mknod 	dev/tap1 	c 	90 	129
mknod 	dev/tap2 	c 	90 	130
mknod 	dev/net/tun c 	10 	200

echo "# <device regex> <uid>:<gid> <octal permissions> [<@|$|*> <command>]" > /etc/mdev.conf
echo "# The special characters have the meaning:" >> /etc/mdev.conf
echo "# @ Run after creating the device." >> /etc/mdev.conf
echo "# $ Run before removing the device." >> /etc/mdev.conf
echo "# * Run both after creating and before removing the device." >> /etc/mdev.conf
echo "sd[a-z][1-9] 0:0 0660 */sbin/automount.sh \$MDEV" >> /etc/mdev.conf

echo "[SYSTEM]Enable Hardware WatchDog"
insmod watch_dog
insmod raeth
insmod eth_led

#enable usb hot-plug feature
#echo "/sbin/mdev" > /proc/sys/kernel/hotplug

echo "[SYSTEM] Clear fail_cnt to zero"
cfg_flash -s -n fail_cnt -v 0

#for telnet debugging
#telnetd

#for syslogd
mkdir -p /var/log

ifconfig eth2 0.0.0.0 mtu 1500
vconfig add eth2 1
vconfig add eth2 2
vconfig add eth2 3

# Setup a temp address
ifconfig eth2.1 hw ether 00:1e:6b:de:ad:02 mtu 1500
ifconfig eth2.2 hw ether 00:1e:6b:22:22:22 mtu 1500
ifconfig eth2.3 hw ether 00:1E:6B:DE:AD:01 mtu 1500
#ifconfig eth2.3 hw ether 00:0f:3d:de:ad:77
ifconfig eth2.1 0.0.0.0
ifconfig eth2.2 0.0.0.0
ifconfig eth2.3 0.0.0.0
ifconfig lo 127.0.0.1
brctl addbr br0
brctl setfd br0 1
ifconfig br0 0.0.0.0 mtu 1500


echo 1 > /proc/sys/net/ipv4/ip_forward
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
#echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 660 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

#echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

echo "[SYSTEM] Insert the kernel mode dhcpd and Qos module"
insmod dhcpd.ko

echo "[SYSTEM] Start software watchdog"
#soft_wd -t 5 -p config_server -p soap_server -p gpio_task@"gpio_task -n" -p port_detector
soft_wd -t 5 -p config_server -p gpio_task@"gpio_task -n" -p port_detector
#soft_wd -t 5 -p config_server -p port_detector

boot_pico.sh &

echo "############################################################"
echo "[SYSTEM] Show Firmware Version"
cat /etc_ro/version
echo "############################################################"


echo "[SYSTEM] Enable config_server"
config_server

echo "[SYSTEM] Enable gpio_task"
gpio_task -n

echo "[SYSTEM] enable port_detector"
port_detector

#echo "[SYSTEM] Enable soap"
#soap_server

#echo "[SYSTEM] Enable socket ipc"
#ipc_server 192.168.157.185
echo "[SYSTEM] Check boot_loc..."
check_bootloc.sh&
