1
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-30 13:05:15 +03:00
Commit graph

127 commits

Author SHA1 Message Date
seth
43764ae2c3
nixos/nvidia: assert open option is manually set on drivers >= 560
This requirement was introduced in
https://github.com/NixOS/nixpkgs/pull/337289 as a way to make sure users
"explicitly pick which version of the driver they want since nvidia
recommends the open one, but that is incompatible with older drivers".
This is reasonable, however the user isn't informed in any real way
aside from the upcoming release notes

This has caused a
[good](https://github.com/NixOS/nixpkgs/pull/337289#issuecomment-2313802016)
[amount](https://github.com/NixOS/nixpkgs/pull/337289#issuecomment-2318571311)
[of](https://github.com/NixOS/nixpkgs/issues/338196)
[confusion](https://github.com/NixOS/nixos-hardware/issues/1092) amongst
users. By introducing this assertion and using a new `useOpenModules`
local variable, we can have the same behavior but display a proper error
message to hopefully clear things up until we can safely make this a
default
2024-09-16 13:04:39 -04:00
Kiskae
ef3b6ad33d nixos/nvidia: allow the gsp to be toggled independently from open source driver
fixes #323886
2024-08-25 21:51:17 +02:00
Kiskae
20c5d0adfb nixos/nvidia: make the nvidia driver variant a mandatory user choice
fixes #329450
2024-08-25 21:47:29 +02:00
eljamm
4548c39286
nixos/nvidia: fix CUDA for open driver
For the open driver, the `nvidia-uvm` module does not auto-load after
`nvidia`, which makes CUDA not work.

In this case, we need to add it to `boot.kernelModules` for it to work
again.
2024-08-13 11:56:10 +01:00
Franz Pletz
1e00e90307
Merge pull request #329450 from Kiskae/nvidia/560.28.03 2024-07-29 09:19:52 +02:00
oddlama
c15eea348d
nixos/nvidia: fix potential null value in versionOlder check 2024-07-29 01:58:55 +02:00
Sandro Jäckel
83c0ed1fe8
nixos/nvidia: drop nvidia-vaapi-driver from 32bit drivers
nvidia-vaapi-driver is designed to work with firefox which is 64bit
only. On my system this adds almost 600 MiB closure size.
2024-07-27 18:31:03 +02:00
Kiskae
bfeb6e74cf nixos/nvidia: default open for version 560+ 2024-07-23 22:41:30 +02:00
seth
e708e7a14d
nixos/nvidia: enable modesetting by default on driver versions >= 535 2024-07-11 15:14:28 -04:00
Charles Hall
142c8ab9a4
nixos/nvidia: enable fbdev when available
In my experience this is required to get Plasma 6 Wayland to work on
my GTX 1080 with the proprietary driver. Otherwise, I get errors in my
`journalctl --user` about "MESA-LOADER: failed to open simpledrm" (among
many other things) and Plasma just presents a black screen with a cursor
and nothing else.

I discovered this by searching the aforementioned error and found
[this Arch Linux forum post][0] and some further clicking around led
me to [this section on the ArchWiki][1], which is where I got the
`versionAtLeast` value from.

Tested with `nvidia-x11-555.58-6.9.7`.

[0]: https://bbs.archlinux.org/viewtopic.php?id=293741
[1]: https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting
2024-07-05 16:24:12 -07:00
Someone
35a472db57
Merge pull request #320830 from philiptaron/nixos-nvidia-change-datacenter-defaults
nixos/nvidia: move TOPOLOGY_FILE_PATH and DATABASE_PATH into nvidia-fabricmanager service definition
2024-06-27 15:56:29 +00:00
Philip Taron
70ff215449
nixos/nvidia: move the TOPOLOGY_FILE_PATH and DATABASE_PATH keys from hardware.nvidia.datacenter.settings default into the service file 2024-06-18 10:01:20 -07:00
K900
98cef4c273 treewide: big opengl cleanup
- 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-16 14:11:33 +03:00
Sandro Jäckel
319c97cfcb
nixos/nvidia: fix eval with virtualisation.docker.enableNvidia enabled 2024-06-11 16:02:24 +02:00
Emmanuel Rosa
f06a960824
nixos/nvidia: optionally disable setup commands for reverse sync (#318521)
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2024-06-10 16:57:45 +02:00
Sandro Jäckel
e40abba1ed
nixos/nvidia: minor cleanups 2024-06-10 12:06:42 +02:00
Aidan Gauland
19960c426d
nixos/nvidia: revert libXNVCtrl changes
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.
9b3461e7ae
4e353b67f6
2024-06-08 08:00:55 +12:00
Aidan Gauland
9b3461e7ae
nixos/nvidia: add missing check for nvidia settings enabled 2024-06-02 09:08:22 +12:00
Aidan Gauland
4e353b67f6
nixos/nvidia: make libXNVCtrl available on nvidia systems 2024-05-24 15:54:18 +12:00
Kiskae
fbdcdde04a nixos/nvidia: apply nixfmt-rfc-style 2024-05-22 13:46:52 +02:00
Kiskae
a4cbb24e12 nixos/nvidia: enable firmware for new beta driver 2024-05-21 20:39:00 +02:00
stuebinm
6afb255d97 nixos: remove all uses of lib.mdDoc
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-04-13 10:07:35 -07:00
Philip Taron
29a46d2802
nixos/nvidia: Set SidebandSocketPath to a user-writable path in /run
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)
2024-03-19 16:34:41 -07:00
timothy
6e4d90f0b0 nvidia_x11.dc_535: 535.129.03 2023-12-15 18:20:42 +07:00
Yang, Bo
932441c86d
nixos/nvidia: load nvidia-uvm kernel module via softdep (#267335) 2023-11-23 16:19:27 +01:00
Timothy DeHerrera
f06b975898
Merge pull request #262135 from Kiskae/nvidia-udev-fix
nixos/nvidia: partially revert #181674
2023-10-24 13:58:22 -06:00
Bjørn Forsman
142074c2a8 nixos: fix bad mkEnableOption descriptions
Fix descriptions that don't account for (1) the "Whether to enable"
prefix or (2) the automatically added trailing dot.
2023-10-20 16:22:40 +01:00
Kiskae
e24d43a18c nixos/nvidia: partially revert #181674
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-10-19 21:57:35 +02:00
Edward Tjörnhammar
903ebdc0a0 nixos/nvidia: don't assume x11 is used.. 2023-09-14 18:19:15 +02:00
Edward Tjörnhammar
9b95f21cdb nvidia,nixos/nvidia: add datacenter drivers compatible with default cudaPkgs
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-09-12 07:17:33 +02:00
Gerg-L
4ca2a16390 nixos/nvidia: add Dynamic Boost support 2023-08-03 09:32:14 -04:00
Gerg-L
a5ccd2c5c8 nixos/nvidia: cleaned up reorganized and reformatted 2023-07-18 16:50:42 -04:00
seth
18aeed351a
nixos/nvidia: fix typo in PRIME/nvidiaBusID assertion 2023-06-21 17:51:59 -04:00
Kiskae
0491659cd0
nixos/nvidia: use correct attribute 2023-04-01 20:24:02 +02:00
Kiskae
ea126529eb nixos/nvidia: allow package to override IBT support 2023-04-01 14:44:43 +02:00
Kiskae
c3ce711249 nixos/nvidia: re-enable IBT for newer drivers 2023-03-24 11:37:35 +01:00
Kiskae
d120c53077 linuxPackages_6_2.nvidia_x11: disable ibt 2023-02-22 18:08:41 +01:00
Googlebot
458c1628ee fix logic 2023-02-07 00:51:39 -05:00
Googlebot
2a7130d13a nvidia: Reverse Prime Sync 2023-02-06 22:46:56 +00:00
Artturin
7e49471316 treewide: optional -> optionals where the argument is a list
the argument to optional should not be list
2022-10-10 15:40:21 +03:00
Nick Cao
81b615ea51
nixos/nvidia: replace IFD based assertion on power management support with version constraint 2022-09-03 19:38:23 +08:00
Max Schorradt
2461a62334 nvidia: remove deleted useGlamor option 2022-08-24 21:34:42 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
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-30 15:16:34 +02:00
Timothy DeHerrera
371db36e56
nvidia: improve robustness of udev rules
fixes #165719
2022-07-15 19:37:13 -07:00
yuu
ce2e4707b7
hardware/nvidia: add @ to constraint on busIDType
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-07-10 02:48:40 -03:00
Nick Cao
e84828b973
nixos/nvidia: add option hardware.nvidia.open for selecting the opensource kernel driver 2022-06-03 10:50:33 +08:00
Nick Cao
94f5bd2051
nvidia_x11: init opensource kernel driver 2022-06-03 10:50:33 +08:00
Thiago Kenji Okada
679197e9ff
Merge pull request #174058 from jian-lin/fix-nvidia.powerManagement.finegrained-only-apply-workarounds-when-needed
nixos/nvidia: only apply workarounds for finegrained when needed
2022-06-02 17:55:23 +01:00
Thiago Kenji Okada
64870a0c57
Merge pull request #174259 from schuelermine/add-nixos-option/hardware.nvidia.forceFullCompositionPipeline
nixos/nvidia: add hardware.nvidia.forceFullCompositionPipeline
2022-06-02 17:50:50 +01:00
Anselm Schüler
446d2cb021 nixos/nvidia: add hardware.nvidia.forceFullCompositionPipeline 2022-05-24 11:46:50 +02:00