about summary refs log tree commit diff
path: root/nixos/modules/hardware/video/nvidia.nix
AgeCommit message (Collapse)AuthorFilesLines
11 daysMerge pull request #320830 from ↵Someone1-5/+8
philiptaron/nixos-nvidia-change-datacenter-defaults nixos/nvidia: move TOPOLOGY_FILE_PATH and DATABASE_PATH into nvidia-fabricmanager service definition
2024-06-18nixos/nvidia: move the TOPOLOGY_FILE_PATH and DATABASE_PATH keys from ↵Philip Taron1-5/+8
hardware.nvidia.datacenter.settings default into the service file
2024-06-16treewide: big opengl cleanupK9001-2/+2
- rename hardware.opengl to hardware.graphics - remove hardware.opengl.driSupport, which does nothing - remove hardware.opengl.setLdLibraryPath, which should never be done - rename hardware.opengl.driSupport32Bit to hardware.graphics.enable32Bit - lost of small docs / formatting cleanups
2024-06-11nixos/nvidia: fix eval with virtualisation.docker.enableNvidia enabledSandro Jäckel1-1/+1
2024-06-10nixos/nvidia: optionally disable setup commands for reverse sync (#318521)Emmanuel Rosa1-5/+20
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2024-06-10nixos/nvidia: minor cleanupsSandro Jäckel1-7/+5
2024-06-08nixos/nvidia: revert libXNVCtrl changesAidan Gauland1-1/+1
This library does not actually need to match the Nvidia driver version, so we do not need to make it available impurely. This reverts the following commits. 9b3461e7ae40cfab93ff21e5ca263b97fa05888e 4e353b67f667766b1c6489f23c20b920ab0c82f5
2024-06-02nixos/nvidia: add missing check for nvidia settings enabledAidan Gauland1-1/+1
2024-05-24nixos/nvidia: make libXNVCtrl available on nvidia systemsAidan Gauland1-1/+1
2024-05-22nixos/nvidia: apply nixfmt-rfc-styleKiskae1-439/+437
2024-05-21nixos/nvidia: enable firmware for new beta driverKiskae1-1/+6
2024-04-13nixos: remove all uses of lib.mdDocstuebinm1-34/+34
these changes were generated with nixq 0.0.2, by running nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix two mentions of the mdDoc function remain in nixos/, both of which are inside of comments. Since lib.mdDoc is already defined as just id, this commit is a no-op as far as Nix (and the built manual) is concerned.
2024-03-19nixos/nvidia: Set SidebandSocketPath to a user-writable path in `/run`Philip Taron1-2/+11
The NVIDIA X driver uses a UNIX domain socket to pass information to other driver components. If unable to connect to this socket, some driver features, such as G-Sync, may not work correctly. The socket will be bound to a file with a name unique to the X server instance created in the directory specified by this option. Note that on Linux, an additional abstract socket (not associated with a file) will also be created, with this pathname socket serving as a fallback if connecting to the abstract socket fails. The default, which was in effect prior to this change, was `/var/run`. The effect of not setting this option was that GDM X sessions (and other non-root sessions) would see this warning in the log files: ``` (WW) NVIDIA: Failed to bind sideband socket to (WW) NVIDIA: '/var/run/nvidia-xdriver-b4f69129' Permission denied ``` I don't see any security implications of turning this on universally, since there already was an abstract socket created according to the docs. Documentation: 1. [NVIDIA X Config Options](https://download.nvidia.com/XFree86/Linux-x86_64/440.82/README/xconfigoptions.html#SidebandSocketPath) Diagnosis: 1. [Arch Linux BBS post](https://bbs.archlinux.org/viewtopic.php?pid=1909115#p1909115)
2023-12-15nvidia_x11.dc_535: 535.129.03timothy1-22/+50
2023-11-23nixos/nvidia: load `nvidia-uvm` kernel module via `softdep` (#267335)Yang, Bo1-1/+10
2023-10-24Merge pull request #262135 from Kiskae/nvidia-udev-fixTimothy DeHerrera1-3/+3
nixos/nvidia: partially revert #181674
2023-10-20nixos: fix bad mkEnableOption descriptionsBjørn Forsman1-13/+13
Fix descriptions that don't account for (1) the "Whether to enable" prefix or (2) the automatically added trailing dot.
2023-10-19nixos/nvidia: partially revert #181674Kiskae1-3/+3
nvidia has changed the name of the chardev in the latest beta driver. Match the behavior of `nvidia-modprobe` and hardcode the major number.
2023-09-14nixos/nvidia: don't assume x11 is used..Edward Tjörnhammar1-5/+4
2023-09-12nvidia,nixos/nvidia: add datacenter drivers compatible with default cudaPkgsEdward Tjörnhammar1-222/+328
For NVLink topology systems we need fabricmanager. Fabricmanager itself is dependent on the datacenter driver set and not the regular x11 ones, it is also tightly tied to the driver version. Furhtermore the current cudaPackages defaults to version 11.8, which corresponds to the 520 datacenter drivers. Future improvement should be to switch the main nvidia datacenter driver version on the `config.cudaVersion` since these are well known from: > https://docs.nvidia.com/deploy/cuda-compatibility/index.html#use-the-right-compat-package This adds nixos configuration options `hardware.nvidia.datacenter.enable` and `hardware.nvidia.datacenter.settings` (the settings configure fabricmanager) Other interesting external links related to this commit are: * Fabricmanager download site: - https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/linux-x86_64/ * Data Center drivers: - https://www.nvidia.com/Download/driverResults.aspx/193711/en-us/ Implementation specific details: * Fabricmanager is added as a passthru package, similar to settings and presistenced. * Adds `use{Settings,Persistenced,Fabricmanager}` with defaults to preserve x11 expressions. * Utilizes mkMerge to split the `hardware.nvidia` module into three comment delimited sections: 1. Common 2. X11/xorg 3. Data Center * Uses asserts to make the configurations mutualy exclusive. Notes: * Data Center Drivers are `x86_64` only. * Reuses the `nvidia_x11` attribute in nixpkgs on enable, e.g. doesn't change it to `nvidia_driver` and sets that to either `nvidia_x11` or `nvidia_dc`. * Should have a helper function which is switched on `config.cudaVersion` like `selectHighestVersion` but rather `selectCudaCompatibleVersion`.
2023-08-03nixos/nvidia: add Dynamic Boost supportGerg-L1-0/+27
2023-07-18nixos/nvidia: cleaned up reorganized and reformattedGerg-L1-398/+357
2023-06-21nixos/nvidia: fix typo in PRIME/nvidiaBusID assertionseth1-1/+1
2023-04-01nixos/nvidia: use correct attributeKiskae1-1/+1
2023-04-01nixos/nvidia: allow package to override IBT supportKiskae1-1/+3
2023-03-24nixos/nvidia: re-enable IBT for newer driversKiskae1-2/+1
2023-02-22linuxPackages_6_2.nvidia_x11: disable ibtKiskae1-1/+3
2023-02-07fix logicGooglebot1-1/+1
2023-02-06nvidia: Reverse Prime SyncGooglebot1-21/+100
2022-10-10treewide: optional -> optionals where the argument is a listArtturin1-1/+1
the argument to optional should not be list
2022-09-03nixos/nvidia: replace IFD based assertion on power management support with ↵Nick Cao1-5/+2
version constraint
2022-08-24nvidia: remove deleted useGlamor optionMax Schorradt1-2/+0
2022-07-30treewide: automatically md-convert option descriptionspennae1-22/+22
the conversion procedure is simple: - find all things that look like options, ie calls to either `mkOption` or `lib.mkOption` that take an attrset. remember the attrset as the option - for all options, find a `description` attribute who's value is not a call to `mdDoc` or `lib.mdDoc` - textually convert the entire value of the attribute to MD with a few simple regexes (the set from mdize-module.sh) - if the change produced a change in the manual output, discard - if the change kept the manual unchanged, add some text to the description to make sure we've actually found an option. if the manual changes this time, keep the converted description this procedure converts 80% of nixos options to markdown. around 2000 options remain to be inspected, but most of those fail the "does not change the manual output check": currently the MD conversion process does not faithfully convert docbook tags like <code> and <package>, so any option using such tags will not be converted at all.
2022-07-15nvidia: improve robustness of udev rulesTimothy DeHerrera1-4/+3
fixes #165719
2022-07-10hardware/nvidia: add @ to constraint on busIDTypeyuu1-1/+1
On some configurations, the only known syntax that works requires the `@` character, such as `intelBusId = "0@0:2:0";` and `nvidiaBusId = "1@1:0:0";` [1]. [1]. https://discourse.nixos.org/t/struggling-with-nvidia-prime/13794/4
2022-06-03nixos/nvidia: add option hardware.nvidia.open for selecting the opensource ↵Nick Cao1-2/+12
kernel driver
2022-06-03nvidia_x11: init opensource kernel driverNick Cao1-0/+5
2022-06-02Merge pull request #174058 from ↵Thiago Kenji Okada1-3/+4
jian-lin/fix-nvidia.powerManagement.finegrained-only-apply-workarounds-when-needed nixos/nvidia: only apply workarounds for finegrained when needed
2022-06-02Merge pull request #174259 from ↵Thiago Kenji Okada1-3/+20
schuelermine/add-nixos-option/hardware.nvidia.forceFullCompositionPipeline nixos/nvidia: add hardware.nvidia.forceFullCompositionPipeline
2022-05-24nixos/nvidia: add hardware.nvidia.forceFullCompositionPipelineAnselm Schüler1-3/+20
2022-05-23nixos/nvidia: remove a useless optionlinj1-1/+0
According to the doc[1], NVreg_DynamicPowerManagement is a kernel module parameter, which it is already set as. So it should not be set as an xorg option. [1]: https://download.nvidia.com/XFree86/Linux-x86_64/515.43.04/README/dynamicpowermanagement.html#DriverSettingsfe624
2022-05-23nixos/nvidia: only apply workarounds for finegrained when neededlinj1-3/+4
Accoriding to the doc[1], these workarounds is no needed for kernel 5.5 and newer. [1]: https://download.nvidia.com/XFree86/Linux-x86_64/515.43.04/README/dynamicpowermanagement.html#KnownIssuesAndW6426e
2022-04-28nixos/nvidia: fix /dev/nvidia-uvm-tools device minorArtem Leshchev1-1/+1
2022-04-28nixos/nvidia: make nvidia-frontend device major constantArtem Leshchev1-3/+3
It is assigned by https://www.kernel.org/doc/Documentation/admin-guide/devices.txt and never changes, so we can skip grep.
2022-04-28nixos/nvidia: fix /dev/nvidia* devices minorsArtem Leshchev1-1/+2
We can't assume that DRI card minor is the same as NVidia GPU device minor, because some DRI minors could be taken by GPUs of other vendors. Fixes #87788, #98942.
2022-04-17nixos/nvidia: fix type of bus ID option to accept empty stringGuillaume Girol1-3/+4
2022-04-16hardware/nvidia: stricter constraints on PCI bus-id.polykernel1-3/+3
The current type for the busId options are too relaxed, a stricter constraint should be imposed to guard against typos which result in Xorg unable to start. This commit restricts the type to adhere to the B/D/F notation[1] for addressing devices as expected by the module option. [1] - https://wiki.osdev.org/PCI#Configuration_Space_Access_Mechanism_.231
2022-03-21Merge remote-tracking branch 'upstream/master'Googlebot1-2/+8
2022-03-14nixos/nvidia: add vaapi supportJonathan Ringer1-2/+6
2022-02-04nvidia: Fix AMD APU for Prime Syncgooglebot1-7/+11