Skip to content

Commit

Permalink
Build legacy nvidia drivers
Browse files Browse the repository at this point in the history
  • Loading branch information
themylogin committed Feb 3, 2025
1 parent d364b49 commit 860710d
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions scale_build/extensions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import errno
import functools
import logging
import os
import shutil
Expand All @@ -23,8 +24,19 @@ def build_extensions(rootfs_image, dst_dir):
os.makedirs(chroot_base)
run(["unsquashfs", "-dest", chroot_base, rootfs_image])

for klass, name in [(DevToolsExtension, "dev-tools"), (NvidiaExtension, "nvidia")]:
klass(rootfs_image, chroot_base, chroot).build(name, f"{dst_dir}/{name}.raw")
current_nvidia_version = get_manifest()["extensions"]["nvidia"]["current"]
for factory, name in [
(DevToolsExtension, "dev-tools"),
(functools.partial(NvidiaExtension, current_nvidia_version, "no-compat32"), "nvidia"),
(functools.partial(NvidiaExtension, "71.86.15", "pkg2"), "nvidia-71xx"),
(functools.partial(NvidiaExtension, "96.43.23", "pkg2"), "nvidia-96xx"),
(functools.partial(NvidiaExtension, "173.14.39", "pkg2"), "nvidia-173xx"),
(functools.partial(NvidiaExtension, "304.137", "pkg2"), "no-compat32"),
(functools.partial(NvidiaExtension, "340.108", "pkg2"), "no-compat32"),
(functools.partial(NvidiaExtension, "390.157", "pkg2"), "no-compat32"),
(functools.partial(NvidiaExtension, "470.256.02", "pkg2"), "no-compat32"),
]:
factory(rootfs_image, chroot_base, chroot).build(name, f"{dst_dir}/{name}.raw")


class Extension:
Expand Down Expand Up @@ -121,6 +133,11 @@ class NvidiaExtension(Extension):
temporary_packages = ["gcc", "make", "pkg-config"]
permanent_packages = ["libvulkan1", "nvidia-container-toolkit", "vulkan-validationlayers"]

def __init__(self, version, suffix, *args, **kwargs):
self.version = version
self.suffix = suffix
super().__init__(*args, **kwargs)

def build_impl(self):
kernel_version = get_kernel_version(self.chroot)

Expand Down Expand Up @@ -153,11 +170,10 @@ def add_nvidia_repository(self):
def download_nvidia_driver(self):
prefix = "https://us.download.nvidia.com/XFree86/Linux-x86_64"

version = get_manifest()["extensions"]["nvidia"]["current"]
filename = f"NVIDIA-Linux-x86_64-{version}-no-compat32.run"
filename = f"NVIDIA-Linux-x86_64-{self.version}-{self.suffix}.run"
result = f"{self.chroot}/{filename}"

self.run(["wget", "-c", "-O", f"/{filename}", f"{prefix}/{version}/{filename}"])
self.run(["wget", "-c", "-O", f"/{filename}", f"{prefix}/{self.version}/{filename}"])

os.chmod(result, 0o755)
return result
Expand Down

0 comments on commit 860710d

Please sign in to comment.