mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-06-26 18:18:24 +00:00
Add envvar to control debug logging in CDI hooks
This change allows hooks to be configured with debug logging. This is currently only enabled for the hooks generated from the runtime. Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
parent
19a83e3542
commit
479df7134a
@ -70,13 +70,15 @@ func main() {
|
|||||||
Aliases: []string{"d"},
|
Aliases: []string{"d"},
|
||||||
Usage: "Enable debug-level logging",
|
Usage: "Enable debug-level logging",
|
||||||
Destination: &opts.Debug,
|
Destination: &opts.Debug,
|
||||||
EnvVars: []string{"NVIDIA_CDI_DEBUG"},
|
// TODO: Support for NVIDIA_CDI_DEBUG is deprecated and NVIDIA_CTK_DEBUG should be used instead.
|
||||||
|
EnvVars: []string{"NVIDIA_CTK_DEBUG", "NVIDIA_CDI_DEBUG"},
|
||||||
},
|
},
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: "quiet",
|
Name: "quiet",
|
||||||
Usage: "Suppress all output except for errors; overrides --debug",
|
Usage: "Suppress all output except for errors; overrides --debug",
|
||||||
Destination: &opts.Quiet,
|
Destination: &opts.Quiet,
|
||||||
EnvVars: []string{"NVIDIA_CDI_QUIET"},
|
// TODO: Support for NVIDIA_CDI_QUIET is deprecated and NVIDIA_CTK_QUIET should be used instead.
|
||||||
|
EnvVars: []string{"NVDIA_CTK_QUIET", "NVIDIA_CDI_QUIET"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -95,6 +95,8 @@ containerEdits:
|
|||||||
- create-symlinks
|
- create-symlinks
|
||||||
- --link
|
- --link
|
||||||
- libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
|
- libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
|
||||||
|
env:
|
||||||
|
- NVIDIA_CTK_DEBUG=false
|
||||||
- hookName: createContainer
|
- hookName: createContainer
|
||||||
path: {{ .toolkitRoot }}/nvidia-cdi-hook
|
path: {{ .toolkitRoot }}/nvidia-cdi-hook
|
||||||
args:
|
args:
|
||||||
@ -102,6 +104,8 @@ containerEdits:
|
|||||||
- update-ldcache
|
- update-ldcache
|
||||||
- --folder
|
- --folder
|
||||||
- /lib/x86_64-linux-gnu
|
- /lib/x86_64-linux-gnu
|
||||||
|
env:
|
||||||
|
- NVIDIA_CTK_DEBUG=false
|
||||||
mounts:
|
mounts:
|
||||||
- hostPath: /host/driver/root/lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
- hostPath: /host/driver/root/lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
||||||
containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
||||||
|
|||||||
@ -91,12 +91,16 @@ containerEdits:
|
|||||||
- create-symlinks
|
- create-symlinks
|
||||||
- --link
|
- --link
|
||||||
- libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
|
- libcuda.so.1::/lib/x86_64-linux-gnu/libcuda.so
|
||||||
|
env:
|
||||||
|
- NVIDIA_CTK_DEBUG=false
|
||||||
- hookName: createContainer
|
- hookName: createContainer
|
||||||
path: /usr/bin/nvidia-cdi-hook
|
path: /usr/bin/nvidia-cdi-hook
|
||||||
args:
|
args:
|
||||||
- nvidia-cdi-hook
|
- nvidia-cdi-hook
|
||||||
- enable-cuda-compat
|
- enable-cuda-compat
|
||||||
- --host-driver-version=999.88.77
|
- --host-driver-version=999.88.77
|
||||||
|
env:
|
||||||
|
- NVIDIA_CTK_DEBUG=false
|
||||||
- hookName: createContainer
|
- hookName: createContainer
|
||||||
path: /usr/bin/nvidia-cdi-hook
|
path: /usr/bin/nvidia-cdi-hook
|
||||||
args:
|
args:
|
||||||
@ -104,6 +108,8 @@ containerEdits:
|
|||||||
- update-ldcache
|
- update-ldcache
|
||||||
- --folder
|
- --folder
|
||||||
- /lib/x86_64-linux-gnu
|
- /lib/x86_64-linux-gnu
|
||||||
|
env:
|
||||||
|
- NVIDIA_CTK_DEBUG=false
|
||||||
mounts:
|
mounts:
|
||||||
- hostPath: {{ .driverRoot }}/lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
- hostPath: {{ .driverRoot }}/lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
||||||
containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
containerPath: /lib/x86_64-linux-gnu/libcuda.so.999.88.77
|
||||||
|
|||||||
@ -34,6 +34,7 @@ type Hook struct {
|
|||||||
Lifecycle string
|
Lifecycle string
|
||||||
Path string
|
Path string
|
||||||
Args []string
|
Args []string
|
||||||
|
Env []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Discover defines an interface for discovering the devices, mounts, and hooks available on a system
|
// Discover defines an interface for discovering the devices, mounts, and hooks available on a system
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import (
|
|||||||
|
|
||||||
func TestGraphicsLibrariesDiscoverer(t *testing.T) {
|
func TestGraphicsLibrariesDiscoverer(t *testing.T) {
|
||||||
logger, _ := testlog.NewNullLogger()
|
logger, _ := testlog.NewNullLogger()
|
||||||
hookCreator := NewHookCreator("/usr/bin/nvidia-cdi-hook")
|
hookCreator := NewHookCreator("/usr/bin/nvidia-cdi-hook", false)
|
||||||
|
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
description string
|
description string
|
||||||
@ -71,6 +71,7 @@ func TestGraphicsLibrariesDiscoverer(t *testing.T) {
|
|||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||||
"--link", "../libnvidia-allocator.so.1::/usr/lib64/gbm/nvidia-drm_gbm.so",
|
"--link", "../libnvidia-allocator.so.1::/usr/lib64/gbm/nvidia-drm_gbm.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -98,6 +99,7 @@ func TestGraphicsLibrariesDiscoverer(t *testing.T) {
|
|||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||||
"--link", "libnvidia-vulkan-producer.so.123.45.67::/usr/lib64/libnvidia-vulkan-producer.so",
|
"--link", "libnvidia-vulkan-producer.so.123.45.67::/usr/lib64/libnvidia-vulkan-producer.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -129,6 +131,7 @@ func TestGraphicsLibrariesDiscoverer(t *testing.T) {
|
|||||||
"--link", "../libnvidia-allocator.so.1::/usr/lib64/gbm/nvidia-drm_gbm.so",
|
"--link", "../libnvidia-allocator.so.1::/usr/lib64/gbm/nvidia-drm_gbm.so",
|
||||||
"--link", "libnvidia-vulkan-producer.so.123.45.67::/usr/lib64/libnvidia-vulkan-producer.so",
|
"--link", "libnvidia-vulkan-producer.so.123.45.67::/usr/lib64/libnvidia-vulkan-producer.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
package discover
|
package discover
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"tags.cncf.io/container-device-interface/pkg/cdi"
|
"tags.cncf.io/container-device-interface/pkg/cdi"
|
||||||
@ -49,15 +50,17 @@ type Option func(*CDIHook)
|
|||||||
|
|
||||||
type CDIHook struct {
|
type CDIHook struct {
|
||||||
nvidiaCDIHookPath string
|
nvidiaCDIHookPath string
|
||||||
|
debugLogging bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type HookCreator interface {
|
type HookCreator interface {
|
||||||
Create(string, ...string) *Hook
|
Create(string, ...string) *Hook
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHookCreator(nvidiaCDIHookPath string) HookCreator {
|
func NewHookCreator(nvidiaCDIHookPath string, debugLogging bool) HookCreator {
|
||||||
CDIHook := &CDIHook{
|
CDIHook := &CDIHook{
|
||||||
nvidiaCDIHookPath: nvidiaCDIHookPath,
|
nvidiaCDIHookPath: nvidiaCDIHookPath,
|
||||||
|
debugLogging: debugLogging,
|
||||||
}
|
}
|
||||||
|
|
||||||
return CDIHook
|
return CDIHook
|
||||||
@ -80,6 +83,7 @@ func (c CDIHook) Create(name string, args ...string) *Hook {
|
|||||||
Lifecycle: cdi.CreateContainerHook,
|
Lifecycle: cdi.CreateContainerHook,
|
||||||
Path: c.nvidiaCDIHookPath,
|
Path: c.nvidiaCDIHookPath,
|
||||||
Args: append(c.requiredArgs(name), args...),
|
Args: append(c.requiredArgs(name), args...),
|
||||||
|
Env: []string{fmt.Sprintf("NVIDIA_CTK_DEBUG=%v", c.debugLogging)},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ const (
|
|||||||
|
|
||||||
func TestLDCacheUpdateHook(t *testing.T) {
|
func TestLDCacheUpdateHook(t *testing.T) {
|
||||||
logger, _ := testlog.NewNullLogger()
|
logger, _ := testlog.NewNullLogger()
|
||||||
hookCreator := NewHookCreator(testNvidiaCDIHookPath)
|
hookCreator := NewHookCreator(testNvidiaCDIHookPath, false)
|
||||||
|
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
description string
|
description string
|
||||||
@ -96,6 +96,7 @@ func TestLDCacheUpdateHook(t *testing.T) {
|
|||||||
Path: testNvidiaCDIHookPath,
|
Path: testNvidiaCDIHookPath,
|
||||||
Args: tc.expectedArgs,
|
Args: tc.expectedArgs,
|
||||||
Lifecycle: "createContainer",
|
Lifecycle: "createContainer",
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
}
|
}
|
||||||
|
|
||||||
d, err := NewLDCacheUpdateHook(logger, mountMock, hookCreator, tc.ldconfigPath)
|
d, err := NewLDCacheUpdateHook(logger, mountMock, hookCreator, tc.ldconfigPath)
|
||||||
|
|||||||
@ -115,6 +115,7 @@ func TestWithWithDriverDotSoSymlinks(t *testing.T) {
|
|||||||
Lifecycle: "createContainer",
|
Lifecycle: "createContainer",
|
||||||
Path: "/path/to/nvidia-cdi-hook",
|
Path: "/path/to/nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -147,6 +148,7 @@ func TestWithWithDriverDotSoSymlinks(t *testing.T) {
|
|||||||
Lifecycle: "createContainer",
|
Lifecycle: "createContainer",
|
||||||
Path: "/path/to/nvidia-cdi-hook",
|
Path: "/path/to/nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -178,6 +180,7 @@ func TestWithWithDriverDotSoSymlinks(t *testing.T) {
|
|||||||
Lifecycle: "createContainer",
|
Lifecycle: "createContainer",
|
||||||
Path: "/path/to/nvidia-cdi-hook",
|
Path: "/path/to/nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -247,6 +250,7 @@ func TestWithWithDriverDotSoSymlinks(t *testing.T) {
|
|||||||
Lifecycle: "createContainer",
|
Lifecycle: "createContainer",
|
||||||
Path: "/path/to/nvidia-cdi-hook",
|
Path: "/path/to/nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
Args: []string{"nvidia-cdi-hook", "create-symlinks", "--link", "libcuda.so.1::/usr/lib/libcuda.so"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -301,12 +305,13 @@ func TestWithWithDriverDotSoSymlinks(t *testing.T) {
|
|||||||
"--link", "libGLX_nvidia.so.1.2.3::/usr/lib/libGLX_indirect.so.0",
|
"--link", "libGLX_nvidia.so.1.2.3::/usr/lib/libGLX_indirect.so.0",
|
||||||
"--link", "libnvidia-opticalflow.so.1::/usr/lib/libnvidia-opticalflow.so",
|
"--link", "libnvidia-opticalflow.so.1::/usr/lib/libnvidia-opticalflow.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
hookCreator := NewHookCreator("/path/to/nvidia-cdi-hook")
|
hookCreator := NewHookCreator("/path/to/nvidia-cdi-hook", false)
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.description, func(t *testing.T) {
|
t.Run(tc.description, func(t *testing.T) {
|
||||||
d := WithDriverDotSoSymlinks(
|
d := WithDriverDotSoSymlinks(
|
||||||
|
|||||||
@ -42,6 +42,7 @@ func (d hook) toSpec() *specs.Hook {
|
|||||||
HookName: d.Lifecycle,
|
HookName: d.Lifecycle,
|
||||||
Path: d.Path,
|
Path: d.Path,
|
||||||
Args: d.Args,
|
Args: d.Args,
|
||||||
|
Env: d.Env,
|
||||||
}
|
}
|
||||||
|
|
||||||
return &s
|
return &s
|
||||||
|
|||||||
@ -97,6 +97,7 @@ func TestDiscovererFromCSVFiles(t *testing.T) {
|
|||||||
"--link",
|
"--link",
|
||||||
"/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so::/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so",
|
"/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so::/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -153,6 +154,7 @@ func TestDiscovererFromCSVFiles(t *testing.T) {
|
|||||||
"--link",
|
"--link",
|
||||||
"/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so::/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so",
|
"/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so::/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so",
|
||||||
},
|
},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -181,7 +183,7 @@ func TestDiscovererFromCSVFiles(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
hookCreator := discover.NewHookCreator("/usr/bin/nvidia-cdi-hook")
|
hookCreator := discover.NewHookCreator("/usr/bin/nvidia-cdi-hook", false)
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.description, func(t *testing.T) {
|
t.Run(tc.description, func(t *testing.T) {
|
||||||
defer setGetTargetsFromCSVFiles(tc.moutSpecs)()
|
defer setGetTargetsFromCSVFiles(tc.moutSpecs)()
|
||||||
|
|||||||
@ -18,6 +18,7 @@ package runtime
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
||||||
"github.com/NVIDIA/nvidia-container-toolkit/internal/config/image"
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config/image"
|
||||||
@ -75,7 +76,10 @@ func newSpecModifier(logger logger.Interface, cfg *config.Config, ociSpec oci.Sp
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
hookCreator := discover.NewHookCreator(cfg.NVIDIACTKConfig.Path)
|
hookCreator := discover.NewHookCreator(
|
||||||
|
cfg.NVIDIACTKConfig.Path,
|
||||||
|
cfg.NVIDIAContainerRuntimeConfig.DebugFilePath == "" || cfg.NVIDIAContainerRuntimeConfig.DebugFilePath == os.DevNull,
|
||||||
|
)
|
||||||
|
|
||||||
mode := info.ResolveAutoMode(logger, cfg.NVIDIAContainerRuntimeConfig.Mode, image)
|
mode := info.ResolveAutoMode(logger, cfg.NVIDIAContainerRuntimeConfig.Mode, image)
|
||||||
// We update the mode here so that we can continue passing just the config to other functions.
|
// We update the mode here so that we can continue passing just the config to other functions.
|
||||||
|
|||||||
@ -29,7 +29,7 @@ import (
|
|||||||
|
|
||||||
func TestNvidiaSMISymlinkHook(t *testing.T) {
|
func TestNvidiaSMISymlinkHook(t *testing.T) {
|
||||||
logger, _ := testlog.NewNullLogger()
|
logger, _ := testlog.NewNullLogger()
|
||||||
hookCreator := discover.NewHookCreator("nvidia-cdi-hook")
|
hookCreator := discover.NewHookCreator("nvidia-cdi-hook", false)
|
||||||
|
|
||||||
errMounts := errors.New("mounts error")
|
errMounts := errors.New("mounts error")
|
||||||
|
|
||||||
@ -96,6 +96,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
|||||||
Path: "nvidia-cdi-hook",
|
Path: "nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||||
"--link", "nvidia-smi::/usr/bin/nvidia-smi"},
|
"--link", "nvidia-smi::/usr/bin/nvidia-smi"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -116,6 +117,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
|||||||
Path: "nvidia-cdi-hook",
|
Path: "nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||||
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -136,6 +138,7 @@ func TestNvidiaSMISymlinkHook(t *testing.T) {
|
|||||||
Path: "nvidia-cdi-hook",
|
Path: "nvidia-cdi-hook",
|
||||||
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
Args: []string{"nvidia-cdi-hook", "create-symlinks",
|
||||||
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
"--link", "/some/path/nvidia-smi::/usr/bin/nvidia-smi"},
|
||||||
|
Env: []string{"NVIDIA_CTK_DEBUG=false"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -85,7 +85,7 @@ func New(opts ...Option) (Interface, error) {
|
|||||||
l.nvidiaCDIHookPath = "/usr/bin/nvidia-cdi-hook"
|
l.nvidiaCDIHookPath = "/usr/bin/nvidia-cdi-hook"
|
||||||
}
|
}
|
||||||
// create hookCreator
|
// create hookCreator
|
||||||
l.hookCreator = discover.NewHookCreator(l.nvidiaCDIHookPath)
|
l.hookCreator = discover.NewHookCreator(l.nvidiaCDIHookPath, false)
|
||||||
|
|
||||||
if l.driverRoot == "" {
|
if l.driverRoot == "" {
|
||||||
l.driverRoot = "/"
|
l.driverRoot = "/"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user