[package] base-files: do not assume that "top" is busybox' top, but try to call the...
[openwrt.git] / package / base-files / files / lib / preinit / 20_device_fs_mount
index 6b2a6e8..832b1cf 100644 (file)
@@ -2,12 +2,19 @@
 # Copyright (C) 2006 OpenWrt.org
 # Copyright (C) 2010 Vertical Communications
 
+do_move_devtmpfs() {
+    local mnt="$(grep devtmpfs /proc/mounts)"
+          mnt="${mnt#* }"; mnt="${mnt%% *}"
+
+    [ "$mnt" = "/dev" ] || mount -o move "$mnt" /dev
+}
+
 do_mount_devfs() {
     mount devfs /dev -t devfs
 }
 
 do_mount_hotplug() {
-    mount -t tmpfs tmpfs /dev -o size=512K
+    mount -t tmpfs tmpfs /dev -o mode=0755,size=512K
 }
 
 do_mount_udev() {
@@ -15,7 +22,9 @@ do_mount_udev() {
 }
 
 choose_device_fs() {
-    if grep devfs /proc/filesystems > /dev/null; then
+    if grep -q devtmpfs /proc/mounts; then
+       do_move_devtmpfs
+    elif grep -q devfs /proc/filesystems; then
         do_mount_devfs
     elif [ -x /sbin/hotplug2 ]; then
         do_mount_hotplug