Package definitions for the complete DarkForge Linux system: - core/ (67): base system, toolchain, kernel, utilities, dev tools - extra/ (26): libraries, frameworks, drivers (nvidia-open, pipewire, mesa) - desktop/ (19): Wayland stack, dwl compositor, terminals, applications - gaming/ (12): Steam, Wine, Proton, gamemode, mangohud, PrismLauncher Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
86 lines
3.5 KiB
TOML
86 lines
3.5 KiB
TOML
# DarkForge Linux — NVIDIA Open Kernel Modules + Userspace
|
|
# RTX 5090 (Blackwell, GB202) requires nvidia-open 570.86.16+
|
|
# This package builds the open-source kernel modules and installs
|
|
# the proprietary userspace libraries (Vulkan ICD, OpenGL, EGL, GBM).
|
|
#
|
|
# NOTE: This is a complex multi-step package. The kernel modules are
|
|
# built against the running kernel headers, and the userspace libraries
|
|
# come from a separate download.
|
|
|
|
[package]
|
|
name = "nvidia-open"
|
|
version = "570.133.07"
|
|
description = "NVIDIA open kernel modules and proprietary userspace (RTX 5090)"
|
|
url = "https://github.com/NVIDIA/open-gpu-kernel-modules"
|
|
license = "MIT/GPL-2.0"
|
|
|
|
[source]
|
|
url = "https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${version}.tar.gz"
|
|
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
|
|
# Additional source: the userspace driver (proprietary blob)
|
|
[[source.patches]]
|
|
url = "https://us.download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}.run"
|
|
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
strip = 0
|
|
|
|
[dependencies]
|
|
run = ["glibc", "wayland", "libdrm"]
|
|
build = ["gcc", "make", "linux"]
|
|
|
|
[build]
|
|
system = "custom"
|
|
|
|
# Prepare: extract the .run blob for userspace libraries
|
|
prepare = """chmod +x ../NVIDIA-Linux-x86_64-${version}.run && ../NVIDIA-Linux-x86_64-${version}.run --extract-only --target=nvidia-userspace"""
|
|
|
|
# Build: compile the open kernel modules against current kernel
|
|
configure = ""
|
|
make = """make -j32 modules \
|
|
KERNEL_UNAME=$(uname -r) \
|
|
SYSSRC=/usr/src/linux \
|
|
SYSOUT=/usr/src/linux"""
|
|
|
|
# Install: kernel modules + userspace libs
|
|
install = """# Install kernel modules
|
|
make modules_install DESTDIR=${PKG} KERNEL_UNAME=$(uname -r)
|
|
|
|
# Install userspace libraries from the extracted blob
|
|
cd nvidia-userspace
|
|
|
|
# GLX / OpenGL
|
|
install -Dm755 libGLX_nvidia.so.${version} ${PKG}/usr/lib/libGLX_nvidia.so.${version}
|
|
ln -sf libGLX_nvidia.so.${version} ${PKG}/usr/lib/libGLX_nvidia.so.0
|
|
|
|
# EGL
|
|
install -Dm755 libEGL_nvidia.so.${version} ${PKG}/usr/lib/libEGL_nvidia.so.${version}
|
|
ln -sf libEGL_nvidia.so.${version} ${PKG}/usr/lib/libEGL_nvidia.so.0
|
|
|
|
# GBM (for Wayland)
|
|
install -Dm755 libnvidia-egl-gbm.so.1.1.2 ${PKG}/usr/lib/libnvidia-egl-gbm.so.1.1.2
|
|
ln -sf libnvidia-egl-gbm.so.1.1.2 ${PKG}/usr/lib/libnvidia-egl-gbm.so.1
|
|
mkdir -p ${PKG}/usr/share/egl/egl_external_platform.d
|
|
install -Dm644 15_nvidia_gbm.json ${PKG}/usr/share/egl/egl_external_platform.d/
|
|
|
|
# Vulkan ICD
|
|
install -Dm755 libGLESv2_nvidia.so.${version} ${PKG}/usr/lib/libGLESv2_nvidia.so.${version}
|
|
install -Dm644 nvidia_icd.json ${PKG}/usr/share/vulkan/icd.d/nvidia_icd.json
|
|
install -Dm755 libcuda.so.${version} ${PKG}/usr/lib/libcuda.so.${version}
|
|
ln -sf libcuda.so.${version} ${PKG}/usr/lib/libcuda.so.1
|
|
ln -sf libcuda.so.1 ${PKG}/usr/lib/libcuda.so
|
|
|
|
# nvidia-drm modeset (KMS)
|
|
install -Dm755 libnvidia-drm-outputclass-helper.so.${version} ${PKG}/usr/lib/libnvidia-drm-outputclass-helper.so.${version}
|
|
|
|
# nvidia-smi and other tools
|
|
install -Dm755 nvidia-smi ${PKG}/usr/bin/nvidia-smi
|
|
install -Dm755 nvidia-settings ${PKG}/usr/bin/nvidia-settings 2>/dev/null || true
|
|
|
|
# 32-bit compatibility libraries (for Steam/Wine)
|
|
if [ -d 32 ]; then
|
|
install -Dm755 32/libGLX_nvidia.so.${version} ${PKG}/usr/lib32/libGLX_nvidia.so.${version}
|
|
ln -sf libGLX_nvidia.so.${version} ${PKG}/usr/lib32/libGLX_nvidia.so.0
|
|
install -Dm755 32/libcuda.so.${version} ${PKG}/usr/lib32/libcuda.so.${version}
|
|
ln -sf libcuda.so.${version} ${PKG}/usr/lib32/libcuda.so.1
|
|
fi"""
|