move device managers to hooks

This commit is contained in:
illiliti
2020-07-27 11:32:22 +03:00
parent 32a38b17a5
commit 5eae5cd6a9
18 changed files with 237 additions and 125 deletions

24
hooks/eudev/eudev Normal file
View File

@@ -0,0 +1,24 @@
# vim: set ft=sh:
# shellcheck shell=sh
#
# false positive
# shellcheck disable=2154
#
# handle_eudev()
{
print "configuring eudev"
for _binary in udevd udevadm; do
copy_binary "$_binary"
done
mkdir -p "${tmpdir}/lib/udev/rules.d"
printf "%s\n" \
'SUBSYSTEMS=="block", ACTION=="add", RUN+="/bin/device-helper"' \
> "${tmpdir}/lib/udev/rules.d/device-helper.rules"
[ "$monolith" = 1 ] || printf "%s\n" \
'ENV{MODALIAS}=="?*", ACTION=="add", RUN+="/bin/modprobe %E{MODALIAS}"' \
>> "${tmpdir}/lib/udev/rules.d/device-helper.rules"
}

15
hooks/eudev/eudev.init Normal file
View File

@@ -0,0 +1,15 @@
# vim: set ft=sh:
# shellcheck shell=sh
#
# false positive
# shellcheck disable=2154,2034
#
# run_eudev()
{
[ "$break" = devmgr ] && { print "break before run_eudev()"; sh; }
udevd -N never & eudev_pid="$!"
udevadm trigger -c add -t subsystems
udevadm trigger -c add -t devices
udevadm settle
}

View File

@@ -0,0 +1,10 @@
# vim: set ft=sh:
# shellcheck shell=sh
#
# false positive
# shellcheck disable=2154
#
# stop_eudev()
{
kill "$eudev_pid"
}