summaryrefslogtreecommitdiffstats
path: root/package/base-files/files.old/lib/preinit/20_device_fs_mount
blob: 7535b3ff9da6a1f41f525c1d51625d5197160cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh
# 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 noatime,move "$mnt" /dev
}

do_mount_devfs() {
    mount -o noatime -t devfs devfs /dev
}

do_mount_hotplug() {
    mount -t tmpfs -o noatime,mode=0755,size=512K tmpfs /dev
}

do_mount_udev() {
    mount -n -t tmpfs -o noatime,mode=0755 udev /dev
}

choose_device_fs() {
    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
    elif [ -x /sbin/udevd ]; then
        do_mount_udev
    fi
}

boot_hook_add preinit_essential choose_device_fs