]> code.ossystems Code Review - meta-freescale.git/blob
6a4464c
[meta-freescale.git] /
1 #!/bin/sh -e
2
3 ### BEGIN INIT INFO
4 # Provides:          udev
5 # Required-Start:    mountvirtfs
6 # Required-Stop:     
7 # Default-Start:     S
8 # Default-Stop:
9 # Short-Description: Start udevd, populate /dev and load drivers.
10 ### END INIT INFO
11
12 export TZ=/etc/localtime
13
14 [ -d /sys/class ] || exit 1
15 [ -r /proc/mounts ] || exit 1
16 [ -x /sbin/udevd ] || exit 1
17 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
18
19 kill_udevd() {
20         if [ -x /sbin/pidof ]; then
21                 pid=`/sbin/pidof -x udevd`
22                 [ -n "$pid" ] && kill $pid
23         fi
24 }
25
26 export ACTION=add
27 # propagate /dev from /sys
28 echo "Starting udev"
29
30 # mount the tmpfs on /dev, if not already done
31 LANG=C awk '$2 == "/dev" && ($3 == "tmpfs" || $3 == "devtmpfs") { exit 1 }' /proc/mounts && {
32         mount -n -o mode=0755 -t tmpfs none "/dev"
33 }
34 [ -e /dev/pts ] || mkdir -m 0755 /dev/pts
35 [ -e /dev/shm ] || mkdir -m 1777 /dev/shm
36
37
38 if [ -e /etc/dev.tar ]; then
39         (cd /; tar xf /etc/dev.tar 2>&1 | grep -v 'time stamp' || true)
40         not_first_boot=1
41 fi
42
43 # make_extra_nodes
44 kill_udevd > "/dev/null" 2>&1
45
46 # trigger the sorted events
47 echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
48 /sbin/udevd -d
49
50 /sbin/udevadm control --env=STARTUP=1
51 if [ "$not_first_boot" != "" ];then
52         /sbin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus  --subsystem-nomatch=graphics      --subsystem-nomatch=backlight --subsystem-nomatch=video4linux  --subsystem-nomatch=platform
53         (/sbin/udevadm settle --timeout=3; /sbin/udevadm control --env=STARTUP=)&
54 else
55         /sbin/udevadm trigger --action=add
56         /sbin/udevadm settle
57 fi
58
59 exit 0