From: Felix Abecassis Date: Mon, 19 Mar 2018 22:38:53 +0000 (-0700) Subject: hooks: implement passthrough for latest features of libnvidia-container X-Git-Tag: lxc-3.0.0.beta3~5^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89f1ef110e727919d7f2bf591732fb20d6a8951a;p=thirdparty%2Flxc.git hooks: implement passthrough for latest features of libnvidia-container The "display" driver capability will expose /dev/nvidia-modeset: https://github.com/NVIDIA/libnvidia-container/commit/9398d41d9f571578d6543703d287b014bcf1bb8c The "--ldcache" argument allows overriding the location of the DSO cache: https://github.com/NVIDIA/libnvidia-container/commit/41656bf9ed71448972f3254a10ceb3c53225a4e6 The "--root" argument allows nvidia-container-cli to execute in a different rootfs: https://github.com/NVIDIA/libnvidia-container/commit/019fdc14e325eea55fbe0397a581bda9d0c4c5b1 Signed-off-by: Felix Abecassis --- diff --git a/hooks/nvidia b/hooks/nvidia index 185b0ed4a..5b2f55c1d 100755 --- a/hooks/nvidia +++ b/hooks/nvidia @@ -58,6 +58,7 @@ capability_to_cli() { case "$1" in compute) echo "--compute";; compat32) echo "--compat32";; + display) echo "--display";; graphics) echo "--graphics";; utility) echo "--utility";; video) echo "--video";; @@ -87,12 +88,14 @@ Optional arguments: [ --no-load-kmods ]: Do not try to load the NVIDIA kernel modules. [ --disable-require ]: Disable all the constraints of the form NVIDIA_REQUIRE_*. [ --debug ]: The path to the log file. +[ --ldcache ]: The path to the host system's DSO cache. +[ --root ]: The path to the driver root directory. [ --ldconfig ]: The path to the ldconfig binary, use a '@' prefix for a host path. EOF return 0 } -options=$(getopt -o h -l help,no-load-kmods,disable-require,debug:,ldconfig: -- "$@") +options=$(getopt -o h -l help,no-load-kmods,disable-require,debug:,ldcache:,root:,ldconfig: -- "$@") if [ $? -ne 0 ]; then usage exit 1 @@ -102,6 +105,8 @@ eval set -- "$options" CLI_LOAD_KMODS="true" CLI_DISABLE_REQUIRE="false" CLI_DEBUG= +CLI_LDCACHE= +CLI_ROOT= CLI_LDCONFIG= while :; do @@ -110,6 +115,8 @@ while :; do --no-load-kmods) CLI_LOAD_KMODS="false"; shift 1;; --disable-require) CLI_DISABLE_REQUIRE="true"; shift 1;; --debug) CLI_DEBUG=$2; shift 2;; + --ldcache) CLI_LDCACHE=$2; shift 2;; + --root) CLI_ROOT=$2; shift 2;; --ldconfig) CLI_LDCONFIG=$2; shift 2;; --) shift 1; break;; *) break;; @@ -188,7 +195,7 @@ for req in $(compgen -e "NVIDIA_REQUIRE_"); do done if [ "${CLI_CAPABILITIES}" = "all" ]; then - CLI_CAPABILITIES="compute compat32 graphics utility video" + CLI_CAPABILITIES="compute compat32 display graphics utility video" fi if [ -z "${CLI_CAPABILITIES}" ]; then @@ -212,6 +219,14 @@ if [ "${USERNS}" = "yes" ]; then configure_args+=(--no-cgroups) fi +if [ -n "${CLI_LDCACHE}" ]; then + global_args+=(--ldcache="${CLI_LDCACHE}") +fi + +if [ -n "${CLI_ROOT}" ]; then + global_args+=(--root="${CLI_ROOT}") +fi + if [ -n "${CLI_LDCONFIG}" ]; then configure_args+=(--ldconfig="${CLI_LDCONFIG}") fi