Commit graph

232 commits

Author SHA1 Message Date
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
K900 c018561f54 nixos/amdgpu-pro: remove nixpkgs.config usage
A new X.org ABI is exceptionally unlikely at this point, and we can
add an assertion if it ever happens.
2023-09-26 18:02:00 +03: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
Pol Dellaiera f9c3e5dac1
Merge pull request #232415 from jensbin/displaylink57
displaylink: 5.6.1-59.184 -> 5.7.0-61.129
2023-06-28 08:36:14 +02:00
Jens Binkert 46336e7a53 displaylink: 5.6.1-59.184 -> 5.7.0-61.129 2023-06-26 09:43:22 +02:00
seth 18aeed351a
nixos/nvidia: fix typo in PRIME/nvidiaBusID assertion 2023-06-21 17:51:59 -04:00
Martin Weinelt 19fa5ab1e6
nixos/hardware/ipu6: Improve the enable description
The module is doing much more than just enabling the ipu6 kernel
module, so extending the enable options scope to support for these
camera modules seems a better fit.
2023-04-10 18:43:21 +02:00
betaboon e4e00d22bf nixos/hardware/ipu6: init 2023-04-09 00:41:45 +02: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
K900 4787ebf7ae nixos/hidpi: remove
The single option tries to do too much work, which just ends up confusing people.

So:
- don't force the console font, the kernel can figure this out as of #210205
- don't force the systemd-boot mode, it's an awkward mode that's not supported
  on most things and will break flicker-free boot
- add a separate option for the xorg cursor scaling trick and move it under the xorg namespace
- add a general `fonts.optimizeForVeryHighDPI` option that explicitly says what it does
- alias the old option to that
- don't set any of those automatically in nixos-generate-config
2023-03-21 13:29:57 +01:00
nicoo df4faec23b nixos/hidpi: Explicitely refer to fontconfig.nix for the choice of defaults 2023-03-12 21:33:38 +00:00
nicoo fc65af6a74 nixos/hidpi: Minor refactor 2023-03-03 12:42:55 +00:00
nicoo e1220cf121 nixos/hidpi: Don't set subpixel order
It has no effect with `subpixel.lcdfilter = "none"`.

If the user overrides the module's default, the correct subpixel order
depends on their actual monitor, and cannot be known by this module.
2023-03-03 12:42:55 +00:00
nicoo b2366655e2 nixos/hidpi: Disable font hinting
Per the documentation:
> At high resolution (> 200 dpi) hinting will do nothing (at best);
> users of such displays may want to disable this option.
2023-03-03 12:42:55 +00:00
nicoo f03716715f nixos/hidpi: Disable anti-aliasing
Per the documentation:
> At high resolution (> 200 DPI), antialiasing has no visible effect;
> users of such displays may want to disable this option.
2023-03-03 12:42:55 +00: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
Artturin 6910a4eea0 treewide: makeWrapper to nativeBuildInputs
this should be all of them other than the failed splices
found with nixpkgs-lint
2022-09-26 17:53:26 +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
pennae ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
Max Schorradt 2461a62334 nvidia: remove deleted useGlamor option 2022-08-24 21:34:42 +02:00
Christian Kögler b055aadc3d
Merge pull request #157997 from kirelagin/grayscale-antialiasing
hidpi: Use gray-scale antialiasing for fonts
2022-08-19 10:37:30 +02:00
pennae 61e93df189 nixos/*: automatically convert option docs to MD
once again using nix-doc-munge (69d080323a)
2022-08-03 22:46:41 +02:00
pennae 9c8531c8a5 nixos/*: replace <replaceable>s with «thing»
we can't embed syntactic annotations of this kind in markdown code
blocks without yet another extension. replaceable is rare enough to make
this not much worth it, so we'll go with «thing» instead. the module
system already uses this format for its placeholder names in attrsOf
paths.
2022-08-03 21:08:58 +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
linj d5a9c1dd08 nixos/nvidia: remove a useless option
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-23 05:11:26 +08:00
linj 97a855ca0e nixos/nvidia: only apply workarounds for finegrained when needed
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-05-23 05:01:40 +08:00
Rick van Schijndel 536528ede8
Merge pull request #170695 from matshch/fix/nvidia-device-minor
nixos/nvidia: fix /dev/nvidia* devices minors
2022-04-30 15:34:16 +02:00
Graham Christensen f00109472a
Merge pull request #164185 from alexshpilkin/calibration
facetimehd: support sensor calibration files
2022-04-29 15:53:30 -04:00
Artem Leshchev 4d7bc6ccc0 nixos/nvidia: fix /dev/nvidia-uvm-tools device minor 2022-04-28 13:55:53 +03:00
Artem Leshchev 73261bdc59 nixos/nvidia: make nvidia-frontend device major constant
It is assigned by https://www.kernel.org/doc/Documentation/admin-guide/devices.txt
and never changes, so we can skip grep.
2022-04-28 13:55:53 +03:00
Artem Leshchev b01be47c87 nixos/nvidia: fix /dev/nvidia* devices minors
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-28 01:18:58 +03:00
Janne Heß 4f3a868e59
Merge pull request #169049 from helsinki-systems/feat/systemd-stage-1-amdgpu-pro
nixos/amdgpu-pro: Add support for systemd stage 1
2022-04-20 11:36:53 +02:00
Janne Heß 0a60a12fae
nixos/amdgpu-pro: Add support for systemd stage 1 2022-04-17 14:00:02 +01:00
Guillaume Girol 5f95bff481 nixos/nvidia: fix type of bus ID option to accept empty string 2022-04-17 12:00:00 +00:00
polykernel 614b54d9b0 hardware/nvidia: stricter constraints on PCI bus-id.
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-04-16 15:25:37 -04:00
Alyssa Ross ae8e8aaee7 treewide: remove obsolete kernel version checks
We no longer support any Linux kernel older than 4.9.
2022-04-08 09:56:09 +00:00
Googlebot 4007aa201b Merge remote-tracking branch 'upstream/master' 2022-03-21 11:32:36 -04:00
Jonathan Ringer 0326d67a58 nixos/nvidia: add vaapi support 2022-03-14 22:35:11 -07:00
Alexander Shpilkin 0d233ebed0
nixos/facetimehd: add option hardware.facetimehd.withCalibration
The new option (disabled by default) pulls in the experimental sensor
calibration files for the Facetime HD camera. These will also be pulled
in by hardware.enableAllFirmware.
2022-03-15 03:42:49 +03:00
Googlebot b2068c1248
Merge branch 'NixOS:master' into master 2022-03-09 09:58:39 -05:00
Alyssa Ross 1176525f87 treewide: remove obsolete kernel version checks
We don't support Linux kernels older than 4.4 in Nixpkgs.
2022-02-19 21:09:19 +00:00
googlebot 125a347ae1 nvidia: Fix AMD APU for Prime Sync 2022-02-04 17:35:41 -05:00
Kirill Elagin ad735b87e4 hidpi: Use gray-scale antialiasing for fonts
For displays with high pixel density, there is no need to do subpixel
anti-aliasing (which is the default) – grayscale antialiasing is enough.

In terms of fontconfig, we keep antialiasing on, but tell it not to play
any RGB tricks.
2022-02-03 10:20:50 -05:00
Jan Tojnar e00317be13 nixos/nvidia: remove obsolete GDM on Wayland assertion
GDM enables Wayland on supported platforms automatically (see ${gnome.gdm}/lib/udev/rules.d/61-gdm.rules), so we removed the `gdm.nvidiaWayland` option.

You will still need `hardware.nvidia.modesetting.enable = true;` with `nvidia` driver, though.
2022-02-01 19:22:04 +01:00
Allen Short 9e47e60971 amdgpu-pro: 17.40 -> 21.30 2021-12-21 11:17:34 -04:00
Jan Tojnar dad4fddd52 nixos/nvidia: check modesetting for gdm-wayland only when gdm is enabled
Reported in https://github.com/NixOS/nixpkgs/pull/147153#issuecomment-982695772
2021-11-30 16:06:21 +01:00
Artturi 04a499cdde
Revert "nixos/hidpi: add xserver dpi" 2021-11-29 23:26:46 +02:00
Bernardo Meurer cf0e83f5c4
Merge pull request #137157 from rebeccaskinner/fix/nvidia-settings
nixos/modules/hardware/video/nvidia: Fix incorrect reference to 'nvid…
2021-11-16 10:18:16 -08:00
Cole Mickens 216dd5b740
nvidia: fix egl-wayland loading 2021-10-20 15:19:06 -07:00
Timothy DeHerrera 305ea3e9ed
nixos/nvidia: fix typo in PM assert 2021-10-13 09:39:35 -06:00
Naïm Favier 2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
rebecca skinner e7996ab6ce nixos/modules/hardware/video/nvidia: Fix incorrect reference to 'nvidiaSettings'
This patch fixes a bug caused by an incorrect reference to
'nvidiaSettings' rather than 'cfg.nvidiaSettings'. The bug caused
the system to not build when using the nvidia drivers.

Tested on my local machine.
2021-09-08 23:33:07 -05:00
Phillip Cloud 6aaccdcbc8
nixos/nvidia: remove extra space 2021-09-01 08:57:33 -04:00
Phillip Cloud db0560c0f2
nixos/nvidia: fix missing variable reference 2021-09-01 08:54:32 -04:00
Bernardo Meurer 7b2709f6a4
nixos/nvidia: let user choose whether to install nvidia-settings 2021-08-30 17:06:07 -07:00
Artturi bb03a951c9
Merge pull request #116290 from aaronjanse/mar2021-hidpi
nixos/hidpi: add xserver dpi
2021-08-13 01:50:36 +03:00
Edmund Wu 573aae39e2
nixos/modules: assertion for required PM files 2021-08-07 01:41:58 -04:00
Natan Lao 4d8569b173 nixos/nvidia: fix hardware.nvidia.package example 2021-06-08 19:40:27 -07:00
Jonathan Ringer ced04640c7 nixos/video: remove obsolete ati modules 2021-05-21 16:16:48 -07:00
TredwellGit 08b21db9c9 nixos/amdgpu: remove
https://github.com/NixOS/nixpkgs/pull/111551#issuecomment-802082766
2021-03-24 21:03:44 +00:00
Aaron Janse 28828c4e8f nixos/hidpi: add xserver dpi 2021-03-14 00:06:28 -08:00
Pasquale f5f9a069d9
nixos/switcheroo-control: added nixos option
node/switcheroo-control: better formatting
2021-02-05 17:39:44 +01:00
Dmitry Kalinkin 161b9b2436
Merge pull request #99323 from eadwu/nvidia/hardware.nvidia.package
nixos: hardware.nvidia.package option for selecting nvidia package
2021-01-30 22:08:37 -05:00
Svein Ove Aas c9f8884592 nVidia: Support dynamic (fine-grained) power management 2021-01-29 12:55:51 -05:00
Svein Ove Aas 6021ab7820 nvidia: Add AMD APU option for Prime 2021-01-29 12:55:51 -05:00
volth bc0d605cf1 treewide: fix double quoted strings in meta.description
Signed-off-by: Ben Siraphob <bensiraphob@gmail.com>
2021-01-24 19:56:59 +07:00
Frederik Rietdijk 450cb04f16
nixos: hardware.nvidia.package option for selecting nvidia package
Make it possible to select a derivation to use. This also moves some
logic that belongs to the derivation back into it.
2021-01-11 13:01:48 -05:00
Jonathan Ringer 5e67d80a8b nixos/nvidia: fix optionals usage 2020-10-18 11:47:34 -07:00
Edmund Wu 2e67196d79 nixos/nvidia: decouple nvidia_x11.persistenced 2020-10-18 11:24:20 -07:00
Joe Hermaszewski 99d2db8dce
nvidia-x11.vulkan_beta: init at 450.56.11 (#97882)
- This is fetched from a different URL, so allow passing that explicitly.

- There also isn't an nvidia-persistenced or nvidia-settings release for
  this version, so use 450.57 instead. Also implement passing
  persistenced and settings version explicitly.

Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
2020-09-24 10:53:05 -04:00
Gürkan Gür eb627de968 treewide: fix typo on word environment 2020-07-28 08:00:38 +02:00
Jörg Thalheim 2fb5a9999f
nixos/hidpi: init 2020-05-25 09:17:25 +01:00
Edmund Wu 9a269f555a
nixos/nvidia: include systemd power management 2020-05-10 11:25:50 -04:00
Rakesh Gupta 89a8a31bf3
nixos/nvidia : added nvidia-persistenced 2020-03-09 19:47:57 +11:00
José Romildo Malaquias 74f5358f13
Merge pull request #66601 from eadwu/nvidia/prime-render-offload
nvidia: prime render offload
2020-03-01 14:28:57 -03:00
Matthew Bauer 81daa1e5dc
Merge pull request #76546 from matthewbauer/nvidia-fix-udev-rules
nvidia: fix $ substitution in udev rules
2020-01-02 15:04:33 -05:00
Matthew Bauer b43479d49f nixos/nvidia: add nvidia-uvm-tools device
Related to https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-390/+bug/1767777
2019-12-30 13:15:10 -05:00
Matthew Bauer 6689a385d1 nvidia: fix $ substitution in udev rules
This fixes a harmless error from systemd-udevd that looks like:

  Dec 23 15:35:23 dellbook systemd-udevd[696]:
  /nix/store/iixya3ni5whybpq9zz1h7f4pyw7nhd19-udev-rules/99-local.rules:25
  Invalid value "..." for RUN (char 101: invalid substitution type),
  ignoring, but please fix it.

Using $$ fixes it using the escaping documented at https://www.freedesktop.org/software/systemd/man/udev.html.
2019-12-26 12:54:43 -05:00
Edmund Wu 026b6010ef
nixos/nvidia: implement prime render offload 2019-12-10 11:35:30 -05:00
Edmund Wu 632a8a7bb2
nixos/xserver: introduce attr display to xserver.drivers
Specifically for NVIDIA so that only the device section would be created
2019-12-10 11:35:29 -05:00
Edmund Wu e8daa1e35c
nixos/nvidia: prime.sync.{intel,nvidia}BusId -> prime.{intel,nvidia}BusId 2019-12-10 11:35:28 -05:00
Edmund Wu aca9ffe893
nixos/nvidia: optimus_prime -> prime.sync 2019-12-10 11:34:32 -05:00
Edmund Wu 5d21e8c92b
nixos/nvidia: remove lib references 2019-12-10 11:29:30 -05:00
worldofpeace 9c8181db9b nixos/nvidia: assert that gdm.nvidiaWayland needs modesetting 2019-11-19 15:34:39 -05:00
worldofpeace 7b71fb57d4 nixos/nvidia: drop gdm wayland assertion 2019-11-19 15:34:39 -05:00