sys-fs/udev-init-scripts: перенесены правила настройки контейнера CCG

akrasnyh 2967
Alexander Tratsevskiy 2 years ago
parent 876346ba32
commit d5eb23c1af

@ -0,0 +1,23 @@
# Calculate comment=# ini(container.type)==host path=/lib/udev/rules.d
# VirtualBox
ACTION=="add|remove", DEVPATH=="/devices/virtual/misc/vbox*", ENV{ID_LXC}="all"
# PS/2 keyboard and mouse
ACTION=="add|remove", DEVPATH=="/devices/platform/i8042/*", ENV{ID_LXC}="all"
# USB devices
ACTION=="add|remove", ENV{ID_BUS}=="usb", ENV{ID_LXC}="all"
# Audio devices
ACTION=="add|remove", SUBSYSTEM=="sound", ENV{ID_LXC}="all"
# tty0 for chvt and lightdm
ACTION=="add|remove", KERNEL=="tty0", ENV{ID_LXC}="all"
# tty7-10 for xorg-server
ACTION=="add|remove", KERNEL=="tty7", ENV{ID_LXC}="all"
ACTION=="add|remove", KERNEL=="tty8", ENV{ID_LXC}="all"
ACTION=="add|remove", KERNEL=="tty9", ENV{ID_LXC}="all"
ACTION=="add|remove", KERNEL=="tty10", ENV{ID_LXC}="all"
# Video devices
ACTION=="add|remove", SUBSYSTEM=="drm", ENV{ID_LXC}="all"

@ -0,0 +1,8 @@
# Calculate comment=# ini(container.type)==host path=/lib/udev/rules.d
ENV{ID_LXC}=="", GOTO="lxc_end"
ACTION=="add", PROGRAM="/bin/bash /usr/libexec/lxc-udev-trigger add '$env{DEVNAME}' '$env{MAJOR}' '$env{MINOR}' '$env{SUBSYSTEM}' '$env{ID_LXC}'"
ACTION=="remove", PROGRAM="/bin/bash /usr/libexec/lxc-udev-trigger remove $env{DEVNAME} $env{MAJOR} $env{MINOR} $env{SUBSYSTEM} $env{ID_LXC}"
LABEL="lxc_end"

@ -0,0 +1,61 @@
# Calculate comment=# ini(container.type)==host path=/usr/libexec chmod=0755
#!/bin/bash
ACTION="$1"
DEVNAME="$2"
MAJOR="$3"
MINOR="$4"
SUBSYSTEM="$5"
if [[ -z $MINOR ]] || [[ -z $DEVNAME ]]
then
exit 0
fi
shift 5
COMPS="$*"
process_device() {
local comp=$1
if [[ "$ACTION" == "add" ]]
then
lxc-device -n ${comp} -- add $DEVNAME
lxc-attach -n ${comp} $(stat -L -c "chmod %a %n" $DEVNAME)
lxc-attach -n ${comp} $(stat -L -c "chown %u:%g %n" $DEVNAME)
udevadm trigger --action=change --name-match=$DEVNAME
fi
if [[ "$ACTION" == "remove" ]]
then
lxc-attach -n ${comp} -- rm $DEVNAME
if [[ -n $MAJOR ]] && [[ -n $MINOR ]]
then
if [[ $SUBSYSTEM == "block" ]]
then
lxc-cgroup -n ${comp} devices.deny "b $MAJOR:$MINOR rwm"
else
lxc-cgroup -n ${comp} devices.deny "c $MAJOR:$MINOR rwm"
fi
fi
udevadm trigger --action=remove --name-match=$DEVNAME
fi
}
if [[ $COMPS == "all" ]]
then
for COMP in $(lxc-ls -1q 2>/dev/null)
do
if lxc-info -n $COMP -c lxc.environment | grep LXC_DESKTOP=1 &>/dev/null
then
process_device $COMP
fi
done
else
for COMP in $COMPS
do
if [[ -n $(lxc-info -pH -n $COMP) ]]
then
process_device $COMP
fi
done
fi
Loading…
Cancel
Save