freebsd.nvidia-drm-kmod{,-firmware}: init
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
fetchurl,
|
||||
sys,
|
||||
drm-kmod,
|
||||
xargs-j,
|
||||
}:
|
||||
mkDerivation rec {
|
||||
path = "...";
|
||||
pname = "nvidia-driver";
|
||||
version = "570.124.04";
|
||||
src = fetchurl {
|
||||
url = "https://us.download.nvidia.com/XFree86/FreeBSD-x86_64/${version}/NVIDIA-FreeBSD-x86_64-${version}.tar.xz";
|
||||
hash = "sha256-3FNJPZWg23H/YiUdIfO4KOUZ7BrJ2/xw8LD6MMSEICY=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"debug"
|
||||
];
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
xargs-j
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd src
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"BSDSRCTOP=${sys.src}"
|
||||
"SYSDIR=${sys.src}/sys"
|
||||
"DRMKMODDIR=${drm-kmod.src}"
|
||||
"KMODDIR=${builtins.placeholder "out"}/kernel"
|
||||
"NO_XREF=1"
|
||||
"DEBUG_FLAGS=-g"
|
||||
];
|
||||
|
||||
hardeningDisable = [
|
||||
"pic" # generates relocations the linker can't handle
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE_AFTER = "-O0"; # XXX REMOVE
|
||||
|
||||
meta.platforms = [ "x86_64-freebsd" ];
|
||||
meta.license = lib.licenses.unfree;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
sys,
|
||||
xargs-j,
|
||||
kldxref,
|
||||
nvidia-drm-kmod,
|
||||
}:
|
||||
mkDerivation {
|
||||
path = "...";
|
||||
pname = "nvidia-drm-kmod-firmware";
|
||||
inherit (nvidia-drm-kmod) version src;
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
xargs-j
|
||||
kldxref
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"SYSDIR=${sys.src}/sys"
|
||||
"KMODDIR=${builtins.placeholder "out"}/kernel"
|
||||
"NO_XREF=1"
|
||||
];
|
||||
|
||||
hardeningDisable = [
|
||||
"pic" # generates relocations the linker can't handle
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd firmware
|
||||
'';
|
||||
|
||||
meta.platforms = [ "x86_64-freebsd" ];
|
||||
meta.license = lib.licenses.unfreeRedistributableFirmware;
|
||||
meta.sourceProvenance = [ lib.sourceTypes.binaryFirmware ];
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
mkDerivation,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
sys,
|
||||
drm-kmod,
|
||||
xargs-j,
|
||||
nvidia-driver,
|
||||
}:
|
||||
mkDerivation rec {
|
||||
path = "...";
|
||||
pname = "nvidia-drm-kmod";
|
||||
inherit (nvidia-driver) version src;
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"debug"
|
||||
];
|
||||
|
||||
patches = lib.optionals (lib.versionOlder version "565") [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/d07cdab9108a8cf6ab66aa1ff834339f8695f457/graphics/nvidia-drm-61-kmod/files/extra-patch-nvidia-drm-conftest.h";
|
||||
extraPrefix = "a/src/nvidia-drm";
|
||||
hash = "sha256-EgzEx1VxQyoNpnY0MnNVa08A0ENSyU/rdRM2hOwUE2g=";
|
||||
})
|
||||
] ++ lib.optionals (lib.versionOlder version "555") [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/d07cdab9108a8cf6ab66aa1ff834339f8695f457/graphics/nvidia-drm-61-kmod/files/extra-patch-nvidia-drm-freebsd-lkpi.c";
|
||||
extraPrefix = "a/src/nvidia-drm";
|
||||
hash = "sha256-aFOs811J5e9Nu8Kwd6dImiSefEOlKlnRp3kg7DTIccg=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString (lib.versionAtLeast version "570") ''
|
||||
sed -E -i -e 's:\&nv_drm_fbdev_module_param\, 1\,:\&nv_drm_fbdev_module_param\, 0\,:' src/nvidia-drm/nvidia-drm-freebsd-lkpi.c
|
||||
sed -E -i -e 's:bool nv_drm_fbdev_module_param = true;:bool nv_drm_fbdev_module_param = false;:' src/nvidia-drm/nvidia-drm-os-interface.c
|
||||
'' + ''
|
||||
sed -E -i -e '/DRMKMODDIR.*\/linuxkpi\/dummy\/include/d' src/nvidia-drm/Makefile
|
||||
|
||||
mkdir -p $TMP/bin
|
||||
ln -s ${stdenv.cc}/bin/${stdenv.cc.targetPrefix}nm $TMP/bin/nm
|
||||
export PATH=$PATH:$TMP/bin
|
||||
'';
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration"; # conftests rely on this
|
||||
env.CONFTEST_BSD_KMODPATHS = "${sys}/kernel ${drm-kmod}/kernel";
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
xargs-j
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd src/nvidia-drm
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"BSDSRCTOP=${sys.src}"
|
||||
"SYSDIR=${sys.src}/sys"
|
||||
"DRMKMODDIR=${drm-kmod.src}"
|
||||
"NO_XREF=1"
|
||||
"DEBUG_FLAGS=-g"
|
||||
];
|
||||
|
||||
KMODDIR = "${builtins.placeholder "out"}/kernel";
|
||||
KERN_DEBUGDIR = "${builtins.placeholder "debug"}/lib/debug";
|
||||
KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
|
||||
KERN_DEBUGDIR_KMODDIR = "${KERN_DEBUGDIR}/kernel";
|
||||
|
||||
hardeningDisable = [
|
||||
"pic" # generates relocations the linker can't handle
|
||||
];
|
||||
|
||||
meta.platforms = [ "x86_64-freebsd" ];
|
||||
meta.license = lib.licenses.unfree;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
mkDerivation,
|
||||
nvidia-driver,
|
||||
autoPatchelfHook,
|
||||
xorg,
|
||||
freetype,
|
||||
gtk2,
|
||||
gtk3,
|
||||
cairo,
|
||||
pango,
|
||||
fontconfig,
|
||||
glib,
|
||||
libintl,
|
||||
libdrm,
|
||||
libgbm,
|
||||
}:
|
||||
mkDerivation {
|
||||
path = "...";
|
||||
pname = "nvidia-libs";
|
||||
inherit (nvidia-driver) src version;
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
buildInputs = [
|
||||
libdrm
|
||||
libgbm
|
||||
gtk2
|
||||
gtk3
|
||||
cairo
|
||||
pango
|
||||
fontconfig
|
||||
glib
|
||||
libintl
|
||||
freetype
|
||||
xorg.libXext
|
||||
xorg.libX11
|
||||
];
|
||||
|
||||
env.LOCALBASE = "${builtins.placeholder "out"}";
|
||||
env.VKICD_PATH = "${builtins.placeholder "out"}/share/vulkan/icd.d";
|
||||
env.VKLAYERS_PATH = "${builtins.placeholder "out"}/share/vulkan/implicit_layer.d";
|
||||
env.EGL_GLVND_JSON_PATH = "${builtins.placeholder "out"}/share/glvnd/egl_vendor.d";
|
||||
env.EGL_EXTERNAL_PLATFORM_JSON_PATH = "${builtins.placeholder "out"}/share/egl/egl_external_platform.d";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace lib/libGLX_nvidia/Makefile \
|
||||
--replace-fail /usr/share/nvidia $out/share/nvidia \
|
||||
--replace-fail " '''" ""
|
||||
'';
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
make -C lib install
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
nvidia-driver,
|
||||
nvidia-libs,
|
||||
autoPatchelfHook,
|
||||
}:
|
||||
mkDerivation {
|
||||
path = "...";
|
||||
pname = "nvidia-nvml";
|
||||
inherit (nvidia-driver) src version;
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
runtimeDependencies = [ nvidia-libs ];
|
||||
buildInputs = [ nvidia-libs ];
|
||||
|
||||
env.LOCALBASE = "${builtins.placeholder "out"}";
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
make -C nvml install
|
||||
'';
|
||||
|
||||
meta.platforms = [ "x86_64-freebsd" ];
|
||||
meta.license = lib.licenses.unfree;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
nvidia-driver,
|
||||
nvidia-libs,
|
||||
autoPatchelfHook,
|
||||
}:
|
||||
mkDerivation {
|
||||
path = "...";
|
||||
pname = "nvidia-x11";
|
||||
inherit (nvidia-driver) src version;
|
||||
|
||||
extraNativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nvidia-libs
|
||||
];
|
||||
|
||||
env.LOCALBASE = "${builtins.placeholder "out"}";
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
make -C x11 install
|
||||
'';
|
||||
|
||||
meta.platforms = [ "x86_64-freebsd" ];
|
||||
meta.license = lib.licenses.unfree;
|
||||
}
|
||||
Reference in New Issue
Block a user