Files
poky/meta/packages/udev/udev-124/init

1.7 KiB

#!/bin/sh -e

BEGIN INIT INFO

Provides: udev

Required-Start: mountvirtfs

Required-Stop:

Default-Start: S

Default-Stop:

Short-Description: Start udevd, populate /dev and load drivers.

END INIT INFO

export TZ=/etc/localtime

[ -d /sys/class ] || exit 1 [ -r /proc/mounts ] || exit 1 [ -x /sbin/udevd ] || exit 1 [ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf

kill_udevd() { if [ -x /sbin/pidof ]; then pid=/sbin/pidof -x udevd [ -n "$pid" ] && kill $pid fi }

export ACTION=add

propagate /dev from /sys

echo -n "Starting udev"

mount the tmpfs on /dev, if not already done

LANG=C awk "$2 == "/dev" && $4 == "tmpfs" { exit 1 }" /proc/mounts && { mount -n -o mode=0755 -t tmpfs none "/dev" mkdir -m 0755 /dev/pts mkdir -m 0755 /dev/shm }

if [ -e /etc/dev.tar ]; then (cd /; tar xf /etc/dev.tar) not_first_boot=1 fi

make_extra_nodes

kill_udevd > "/dev/null" 2>&1

    # trigger the sorted events
    echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
    /sbin/udevd -d

    /sbin/udevadm control env STARTUP=1
	if [ "$not_first_boot" != "" ];then
		/sbin/udevadm trigger --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
		(/sbin/udevadm settle --timeout=3; /sbin/udevadm control env STARTUP=)&
	else
		/sbin/udevadm trigger
		/sbin/udevadm settle
		(cd /; tar cf /etc/dev.tar /dev)
	fi

echo exit 0