Skip to content

Commit c58cb4c

Browse files
authored
Update Nvidia busid check (#388892)
2 parents d3689dd + 72ffdcd commit c58cb4c

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

nixos/modules/hardware/video/nvidia.nix

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ let
1717
offloadCfg = pCfg.offload;
1818
reverseSyncCfg = pCfg.reverseSync;
1919
primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable;
20-
busIDType = lib.types.strMatching "([[:print:]]+[:@][0-9]{1,3}:[0-9]{1,2}:[0-9])?";
20+
busIDType = lib.types.strMatching "([[:print:]]+:[0-9]{1,3}(@[0-9]{1,10})?:[0-9]{1,2}:[0-9])?";
2121
ibtSupport = useOpenModules || (nvidia_x11.ibtSupport or false);
2222
settingsFormat = pkgs.formats.keyValue { };
2323
in
@@ -120,30 +120,48 @@ in
120120
prime.nvidiaBusId = lib.mkOption {
121121
type = busIDType;
122122
default = "";
123-
example = "PCI:1:0:0";
123+
example = "PCI:1@0:0:0";
124124
description = ''
125125
Bus ID of the NVIDIA GPU. You can find it using lspci; for example if lspci
126-
shows the NVIDIA GPU at "01:00.0", set this option to "PCI:1:0:0".
126+
shows the NVIDIA GPU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
127+
128+
lspci might omit the PCI domain (0001 in above example) if it is zero.
129+
In which case, use "@0" instead.
130+
131+
Please be aware that this option takes decimal address while lspci reports
132+
hexadecimal address. So for device at domain "10000", use "@65536".
127133
'';
128134
};
129135

130136
prime.intelBusId = lib.mkOption {
131137
type = busIDType;
132138
default = "";
133-
example = "PCI:0:2:0";
139+
example = "PCI:0@0:2:0";
134140
description = ''
135141
Bus ID of the Intel GPU. You can find it using lspci; for example if lspci
136-
shows the Intel GPU at "00:02.0", set this option to "PCI:0:2:0".
142+
shows the Intel GPU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
143+
144+
lspci might omit the PCI domain (0001 in above example) if it is zero.
145+
In which case, use "@0" instead.
146+
147+
Please be aware that this option takes decimal address while lspci reports
148+
hexadecimal address. So for device at domain "10000", use "@65536".
137149
'';
138150
};
139151

140152
prime.amdgpuBusId = lib.mkOption {
141153
type = busIDType;
142154
default = "";
143-
example = "PCI:4:0:0";
155+
example = "PCI:4@0:0:0";
144156
description = ''
145157
Bus ID of the AMD APU. You can find it using lspci; for example if lspci
146-
shows the AMD APU at "04:00.0", set this option to "PCI:4:0:0".
158+
shows the AMD APU at "0001:02:03.4", set this option to "PCI:2@1:3:4".
159+
160+
lspci might omit the PCI domain (0001 in above example) if it is zero.
161+
In which case, use "@0" instead.
162+
163+
Please be aware that this option takes decimal address while lspci reports
164+
hexadecimal address. So for device at domain "10000", use "@65536".
147165
'';
148166
};
149167

0 commit comments

Comments
 (0)