Updated to latest xe-solutions
Signed-off-by: James P. Ketrenos <james.p.ketrenos@intel.com>
This commit is contained in:
parent
4eabf2ccd3
commit
56da84f3ec
95
scripts/intel-docker
Executable file
95
scripts/intel-docker
Executable file
@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
|
||||
function fail {
|
||||
>&2 echo "$*"
|
||||
exit -1
|
||||
}
|
||||
|
||||
PRE_RUN=()
|
||||
POST_RUN=()
|
||||
RUN=
|
||||
for arg in "${@}"; do
|
||||
[[ "${arg}" == "run" ]] && {
|
||||
RUN=1
|
||||
continue
|
||||
}
|
||||
(( ! RUN )) && {
|
||||
PRE_RUN+=("${arg}")
|
||||
} || {
|
||||
POST_RUN+=("${arg}")
|
||||
}
|
||||
done
|
||||
|
||||
function usage {
|
||||
cat << EOF
|
||||
usage: scripts/intel-docker [DOCKER-OPTIONS]
|
||||
|
||||
intel-docker adds the following docker parameters to your
|
||||
DOCKER-OPTIONS, based on the host configuration:
|
||||
|
||||
--device=/dev/dri
|
||||
--group-add \${VIDEO}
|
||||
--group-add \${RENDER}
|
||||
|
||||
The group id used for VIDEO and RENDER is
|
||||
based on the 'video' and 'render' group definitions used
|
||||
for ownership of /dev/dri/* entries. Typically card* is
|
||||
owned by 'video' and render* is owned by 'render'. To
|
||||
find the group id, 'stat' is used:
|
||||
|
||||
VIDEO=\$(stat -c '%g' /dev/dri/card*)
|
||||
RENDER=\$(stat -c '%g' /dev/dri/render*)
|
||||
|
||||
If /dev/dri entries do not exist, no group add lines are added to
|
||||
the docker option.
|
||||
EOF
|
||||
}
|
||||
|
||||
if test -e /dev/dri/card*; then
|
||||
VIDEO=$(stat -c '%g' /dev/dri/card*)
|
||||
fi
|
||||
if test -e /dev/dri/render*; then
|
||||
RENDER=$(stat -c '%g' /dev/dri/render*)
|
||||
fi
|
||||
if [ "${RENDER}" == "${VIDEO}" ]; then
|
||||
unset RENDER
|
||||
fi
|
||||
if [ "${RENDER}" == "" ] && [ "${VIDEO}" == "" ]; then
|
||||
fail "No /dev/dri/* entries found on host. Does your kernel have the GPU driver loaded?"
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
-------------------------------------------------------------------------------
|
||||
Intel Xe graphics container script
|
||||
EOF
|
||||
|
||||
(( RUN )) && {
|
||||
PRE_RUN+=("run")
|
||||
POST_RUN=(--device=/dev/dri ${POST_RUN[@]})
|
||||
|
||||
[[ "${VIDEO}" != "" ]] || fail "No group ownership of /dev/dri/card* found."
|
||||
POST_RUN=("--group-add ${VIDEO}" ${POST_RUN[@]})
|
||||
|
||||
[[ "${RENDER}" != "" ]] && POST_RUN=("--group-add ${RENDER}" ${POST_RUN[@]})
|
||||
true
|
||||
} || {
|
||||
cat << EOF
|
||||
|
||||
NOTE: intel-docker is intended to be executed with the same arguments as you
|
||||
would pass to docker, including the 'run' command.
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
cat << EOF
|
||||
Adding the following options to the docker command line after 'run' and before
|
||||
user options:
|
||||
|
||||
--device=/dev/dri
|
||||
--group-add ${VIDEO}$( [[ "${RENDER}" != "" ]] && echo -e "\n --group-add ${RENDER}\n" )
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
EOF
|
||||
|
||||
echo -e "Running:\ndocker ${PRE_RUN[@]} ${POST_RUN[@]}"
|
||||
docker ${PRE_RUN[@]} ${POST_RUN[@]}
|
Loading…
x
Reference in New Issue
Block a user