You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
genkernel_fork/defaults/initrd.d/00-devmgr.sh

45 lines
1.1 KiB

#!/bin/sh
. /etc/initrd.d/00-common.sh
is_udev() {
[ -x "${UDEVD}" ] && [ -z "${USE_MDEV}" ] && return 0
return 1
}
is_mdev() {
if [ ! -x "${UDEVD}" ] || [ -n "${USE_MDEV}" ]; then
return 0
fi
return 1
}
devmgr_init() {
if is_udev; then
good_msg "Activating udev"
echo "${UDEVD}" > /proc/sys/kernel/hotplug
echo "" > /sys/kernel/uevent_helper
"${UDEVD}" --daemon --resolve-names=never && \
udevadm trigger --action=add && \
udevadm settle || bad_msg "udevd failed to run"
elif is_mdev; then
good_msg "Activating mdev"
# Serialize hotplug events
touch /dev/mdev.seq
echo "${MDEVD}" > /proc/sys/kernel/hotplug
# Ensure that device nodes are properly configured
"${MDEVD}" -s || bad_msg "mdev -s failed"
else
bad_msg "Cannot find either udev or mdev"
fi
}
# Terminate the device manager, this happens right before pivot_root
devmgr_terminate() {
if is_udev; then
udevadm settle
udevadm control --exit || bad_msg "Unable to terminate udevd"
fi
# mdev doesn't require anything, it seems
}