R.I.P. devfs
[openwrt-10.03/.git] / target / linux / generic-2.6 / files / init
index eda776c87d312f8c84ae7996f1496937f3ac5e20..292d429dcd5e1832b0ac6e40213ea488c8a332d1 100755 (executable)
@@ -3,7 +3,19 @@
 
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 mount none /proc -t proc
-mount none /dev -t devfs
+
+if grep devfs /proc/filesystems > /dev/null; then
+       mount none /dev -t devfs
+else
+       mount -t sysfs none /sys
+       mount -t tmpfs tmpfs /dev -o size=512K
+       mknod /dev/console c 5 1
+       mkdir /dev/pts
+       mkdir /dev/shm
+       /sbin/mdev -s
+fi
+
+mount none /dev/pts -t devpts
 
 # the root mount point can come from the kernel command line
 # or it can be overridden in the preinit.arch file
@@ -62,11 +74,11 @@ done
 COUNTER=0
 while [ $COUNTER -lt 10 ]; do
   sleep 1
-  [ -e /mnt/postinit ] && let COUNTER=10;
+  [ -e /mnt/etc/banner ] && let COUNTER=10;
   let COUNTER=COUNTER+1
 done
-[ -e /mnt/postinit ] || {
-  export FAILSAFE="No postinit"
+[ -e /mnt/etc/banner ] || {
+  export FAILSAFE="No Openwrt FS"
   exec /bin/busybox init
 }
 
@@ -74,7 +86,8 @@ unset rootfs
 
 mount -o move /proc /mnt/proc
 mount -o move /dev /mnt/dev
+mount -o move /dev/pts /mnt/dev/pts
 mount -o move /tmp /mnt/tmp
 mount -o move /sys /mnt/sys
-
-exec switch_root -c /dev/console /mnt /postinit
+mount none /tmp -t tmpfs
+exec switch_root -c /dev/console /mnt /sbin/init