Port https://github.com/GoogleCloudPlatform/cos-gpu-installer/pull/43/ to v2 installer
BUG=b/159475619
TEST=presbumit
RELEASE_NOTE=Pass x11 specific args
Change-Id: Ia565e748191ee1fe7a00d8266fbc5f4c8df7aec1
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/20070
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Reviewed-by: Roy Yang <royyang@google.com>
Reviewed-by: Arnav Kansal <rnv@google.com>
Reviewed-by: Ke Wu <mikewu@google.com>
Tested-by: Arnav Kansal <rnv@google.com>
diff --git a/src/cmd/cos_gpu_installer/internal/installer/installer.go b/src/cmd/cos_gpu_installer/internal/installer/installer.go
index 3b8b007..cc793f2 100644
--- a/src/cmd/cos_gpu_installer/internal/installer/installer.go
+++ b/src/cmd/cos_gpu_installer/internal/installer/installer.go
@@ -40,7 +40,7 @@
}
// Create unified memory device file.
- if err := utils.RunCommandAndLogOutput(exec.Command("nvidia-modprobe", "-c0", "-u"), false); err != nil {
+ if err := utils.RunCommandAndLogOutput(exec.Command("nvidia-modprobe", "-c0", "-u", "-m"), false); err != nil {
return errors.Wrap(err, "failed to create unified memory device file")
}
@@ -131,6 +131,8 @@
cmd = exec.Command(filepath.Join(extractDir, "nvidia-installer"),
"--utility-prefix="+gpuInstallDirContainer,
"--opengl-prefix="+gpuInstallDirContainer,
+ "--x-prefix="+gpuInstallDirContainer,
+ "--install-libglvnd",
"--no-install-compat32-libs",
"--log-file-name="+filepath.Join(gpuInstallDirContainer, "nvidia-installer.log"),
"--silent",
@@ -299,12 +301,13 @@
}
}
gpuModules := map[string]string{
- "nvidia": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia.ko"),
- "nvidia_uvm": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia-uvm.ko"),
- "nvidia_drm": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia-drm.ko"),
+ "nvidia": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia.ko"),
+ "nvidia_uvm": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia-uvm.ko"),
+ "nvidia_drm": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia-drm.ko"),
+ "nvidia_modeset": filepath.Join(gpuInstallDirContainer, "drivers", "nvidia-modeset.ko"),
}
// Need to load modules in order due to module dependency.
- moduleNames := []string{"nvidia", "nvidia_uvm", "nvidia_drm"}
+ moduleNames := []string{"nvidia", "nvidia_uvm", "nvidia_drm", "nvidia_modeset"}
for _, moduleName := range moduleNames {
modulePath := gpuModules[moduleName]
if err := modules.LoadModule(moduleName, modulePath); err != nil {