increase video perm fix verbosity, set group rw

pull/306/head
aptalca 3 years ago
parent 194fe9085e
commit 28db793d33

@ -299,6 +299,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **04.03.22:** - Increase verbosity of video device permissions fix, attempt to fix missing group rw.
* **25.12.21:** - Install Intel drivers from the official repo. * **25.12.21:** - Install Intel drivers from the official repo.
* **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information. * **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information.
* **10.12.20:** - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu. * **10.12.20:** - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu.

@ -107,6 +107,7 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "04.03.22:", desc: "Increase verbosity of video device permissions fix, attempt to fix missing group rw." }
- { date: "25.12.21:", desc: "Install Intel drivers from the official repo." } - { date: "25.12.21:", desc: "Install Intel drivers from the official repo." }
- { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." } - { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "10.12.20:", desc: "Add latest Intel Compute packages from github repo for opencl support on latest gen igpu." } - { date: "10.12.20:", desc: "Add latest Intel Compute packages from github repo for opencl support on latest gen igpu." }

@ -4,17 +4,32 @@ FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)
for i in $FILES for i in $FILES
do do
VIDEO_GID=$(stat -c '%g' "$i") VIDEO_GID=$(stat -c '%g' "${i}")
if ! id -G abc | grep -qw "$VIDEO_GID"; then VIDEO_UID=$(stat -c '%u' "${i}")
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}') # check if user matches device
if [ -z "${VIDEO_NAME}" ]; then if id -u abc | grep -qw "${VIDEO_UID}"; then
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)" echo "**** permissions for ${i} are good ****"
groupadd "$VIDEO_NAME" else
groupmod -g "$VIDEO_GID" "$VIDEO_NAME" # check if group matches and that device has group rw
if id -G abc | grep -qw "${VIDEO_GID}" && [ $(stat -c '%A' "${i}" | cut -b 5,6) = "rw" ]; then
echo "**** permissions for ${i} are good ****"
# check if device needs to be added to video group
elif ! id -G abc | grep -qw "${VIDEO_GID}"; then
# check if video group needs to be created
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
if [ -z "${VIDEO_NAME}" ]; then
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c8)"
groupadd "${VIDEO_NAME}"
groupmod -g "${VIDEO_GID}" "${VIDEO_NAME}"
echo "**** creating video group ${VIDEO_NAME} with id ${VIDEO_GID} ****"
fi
echo "**** adding ${i} to video group ${VIDEO_NAME} with id ${VIDEO_GID} ****"
usermod -a -G "${VIDEO_NAME}" abc
fi fi
usermod -a -G "$VIDEO_NAME" abc # check if device has group rw
if [ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]; then if [ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]; then
echo -e "**** The device ${i} does not have group read/write permissions, which might prevent hardware transcode from functioning correctly. To fix it, you can run the following on your docker host: ****\nsudo chmod g+rw ${i}\n" echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container.If it doesn't work, you can run the following on your docker host: ****\nsudo chmod g+rw ${i}\n"
chmod g+rw "${i}"
fi fi
fi fi
done done

Loading…
Cancel
Save