diff --git a/internal/info/tegra.go b/internal/info/info.go similarity index 77% rename from internal/info/tegra.go rename to internal/info/info.go index 8a0a6687..c4f3676b 100644 --- a/internal/info/tegra.go +++ b/internal/info/info.go @@ -20,8 +20,25 @@ import ( "fmt" "os" "strings" + + "github.com/NVIDIA/go-nvml/pkg/dl" ) +// HasNVML returns true if NVML is detected on the sytems +func HasNVML() (bool, string) { + const ( + nvmlLibraryName = "libnvidia-ml.so.1" + nvmlLibraryLoadFlags = dl.RTLD_LAZY + ) + lib := dl.New(nvmlLibraryName, nvmlLibraryLoadFlags) + if err := lib.Open(); err != nil { + return false, fmt.Sprintf("could not load NVML: %v", err) + } + defer lib.Close() + + return true, "found NVML library" +} + // IsTegraSystem returns true if the system is detected as a Tegra-based system func IsTegraSystem() (bool, string) { const tegraReleaseFile = "/etc/nv_tegra_release"