summaryrefslogtreecommitdiff
path: root/package/base-files/files/lib/preinit/30_device_fs_daemons
blob: 5b3e2ad00021c30de3291a79bf22e367eb807a41 (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
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications

init_devfs() {
    HOTPLUG=/sbin/hotplug-call
}

init_hotplug2() {
    [ -c /dev/console ] || mknod /dev/console c 5 1
    /sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --no-persistent --set-coldplug-cmd /sbin/udevtrigger
    /sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --persistent &
}

init_udev() {
    [ -d /lib/udev/devices ] && cp -af /lib/udev/devices/* /dev/
    [ -c /dev/console ] || mknod -m 0600 /dev/console c 5 1
    [ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
    /sbin/udevd --daemon --resolve-names=never
    /sbin/udevadm trigger
    /sbin/udevadm settle    
}

init_device_fs() {
    HOTPLUG=
    if grep -q devfs /proc/filesystems; then
	init_devfs
    elif [ -x /sbin/hotplug2 ]; then
	init_hotplug2
    elif [ -x /sbin/udevd ]; then
	init_udev
    fi
}

boot_hook_add preinit_essential init_device_fs