16 |
version=$(/lib/udev/udevd --version) |
version=$(/lib/udev/udevd --version) |
17 |
elif [[ -x /usr/lib/systemd/systemd-udevd ]] |
elif [[ -x /usr/lib/systemd/systemd-udevd ]] |
18 |
then |
then |
19 |
version=$(/usr/lib/systemd/systemd-udev --version) |
version=$(/usr/lib/systemd/systemd-udevd --version) |
20 |
fi |
fi |
21 |
|
|
22 |
# We need it without a leading '0', else bash do the wrong thing |
# We need it without a leading '0', else bash do the wrong thing |
31 |
{ |
{ |
32 |
local opts |
local opts |
33 |
|
|
|
# tell modprobe.sh to be verbose to $CONSOLE |
|
|
echo CONSOLE=${CONSOLE} > /dev/.udev_populate |
|
|
|
|
34 |
# populate /dev with devices already found by the kernel |
# populate /dev with devices already found by the kernel |
35 |
rc_print " Populating /dev with existing devices through uevents ..." |
rc_print " Populating /dev with existing devices through uevents ..." |
36 |
if [[ ${RC_COLDPLUG} = yes ]] |
if [[ ${RC_COLDPLUG} = yes ]] |
38 |
udevadm trigger |
udevadm trigger |
39 |
else |
else |
40 |
# do not run any init-scripts |
# do not run any init-scripts |
41 |
udevadm control --env do_not_run_plug_service=1 |
udevadm control --property=do_not_run_plug_service=1 |
|
|
|
|
# only create device nodes |
|
|
udevadm trigger --attr-match=dev |
|
42 |
|
|
43 |
# run persistent-net stuff |
udevadm trigger --type=subsystems --action=add |
44 |
udevadm trigger --subsystem-match=net |
udevadm trigger --type=devices --action=add |
45 |
fi |
fi |
46 |
evaluate_retval |
evaluate_retval |
47 |
|
|
|
# loop until everything is finished |
|
|
rc_print " Letting udev process events ..." |
|
|
udevadm settle --timeout=60 |
|
|
evaluate_retval |
|
|
|
|
48 |
# unset this variable |
# unset this variable |
49 |
udevadm control --env do_not_run_plug_service= |
udevadm control --property=do_not_run_plug_service= |
50 |
|
|
|
rm -f /dev/.udev_populate |
|
51 |
return 0 |
return 0 |
52 |
} |
} |
53 |
|
|
56 |
# seed /dev with some things that we know we need |
# seed /dev with some things that we know we need |
57 |
rc_print " Seeding /dev with needed nodes ..." |
rc_print " Seeding /dev with needed nodes ..." |
58 |
( |
( |
59 |
[ ! -c /dev/console ] && mknod /dev/console c 5 1 |
[ ! -c /dev/console ] && mknod -m 600 /dev/console c 5 1 |
60 |
[ ! -c /dev/tty1 ] && mknod /dev/tty1 c 4 1 |
[ ! -c /dev/tty1 ] && mknod -m 620 /dev/tty1 c 4 1 |
61 |
[ ! -c /dev/null ] && mknod /dev/null c 1 3 |
[ ! -c /dev/tty ] && mknod -m 666 /dev/tty c 5 0 |
62 |
|
[ ! -c /dev/null ] && mknod -m 666 /dev/null c 1 3 |
63 |
|
|
64 |
# create kmsg too, so udev can add its start-message to dmesg |
# create kmsg too, so udev can add its start-message to dmesg |
65 |
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 |
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 |
66 |
|
|
|
# copy over any persistant things |
|
|
if [[ -d /lib/udev/devices ]] |
|
|
then |
|
|
cp -RPp /lib/udev/devices/* /dev 2>/dev/null |
|
|
fi |
|
|
|
|
|
# not provided by sysfs but needed |
|
|
ln -snf /proc/self/fd /dev/fd |
|
|
ln -snf fd/0 /dev/stdin |
|
|
ln -snf fd/1 /dev/stdout |
|
|
ln -snf fd/2 /dev/stderr |
|
|
[[ -e /proc/kcore ]] && ln -snf /proc/kcore /dev/core |
|
|
|
|
67 |
# create problematic directories |
# create problematic directories |
68 |
mkdir -p /dev/pts /dev/shm |
mkdir -p /dev/pts /dev/shm |
69 |
) |
) |
95 |
[ -c /dev/console ] ; need_redirect=$? |
[ -c /dev/console ] ; need_redirect=$? |
96 |
|
|
97 |
# create a ramdisk for populating udev |
# create a ramdisk for populating udev |
98 |
if [[ -z $(grep '[[:space:]]/dev[[:space:]]' /proc/mounts | cut -d ' ' -f2) ]] |
if [[ -z $(grep '[[:space:]]/dev[[:space:]]' /proc/self/mountinfo) ]] |
99 |
then |
then |
100 |
rc_print "Mounting udev at /dev ..." |
rc_print "Mounting udev at /dev ..." |
101 |
# many video drivers needed exec access |
# many video drivers needed exec access |