Skip to content

Commit ed2bea8

Browse files
authored
feat(nvidia): update to 610.57.04 and ship its missing data files (#1277)
1 parent 220b83e commit ed2bea8

1 file changed

Lines changed: 69 additions & 4 deletions

File tree

elements/bluefin-nvidia/nvidia-drivers.bst

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ depends:
4040

4141
sources:
4242
- kind: remote
43-
url: nvidia:XFree86/Linux-x86_64/610.43.02/NVIDIA-Linux-x86_64-610.43.02.run
44-
ref: 3034a054bb4cdf7752ff8dc272564cb105513804bff53538945901b16ca77463
45-
filename: NVIDIA-Linux-x86_64-610.43.02.run
43+
url: nvidia:XFree86/Linux-x86_64/610.57.04/NVIDIA-Linux-x86_64-610.57.04.run
44+
ref: b2e935c66b83bb00c0c857bc8e0ee0fd52de9286b40c9cc1eec29a7ce7eb116d
45+
filename: NVIDIA-Linux-x86_64-610.57.04.run
4646

4747
variables:
48-
nvidia-version: '610.43.02'
48+
nvidia-version: '610.57.04'
4949
strip-binaries: ''
5050

5151
config:
@@ -257,6 +257,51 @@ config:
257257
fi
258258
done
259259
260+
# Per-application quirk database. libnvidia-glcore has the path
261+
# compiled in version-stamped, so it cannot be relocated.
262+
awk '$3 == "APPLICATION_PROFILE" { print $1 }' .manifest | \
263+
while read -r f; do
264+
if [ ! -f "$f" ]; then
265+
echo "ERROR: .manifest lists $f but it is not in the payload" >&2
266+
exit 1
267+
fi
268+
install -Dm644 "$f" "%{install-root}%{datadir}/nvidia/$f"
269+
done
270+
# Vacuous if the manifest stops declaring these rows, and the loss
271+
# would be silent.
272+
if [ ! -f "%{install-root}%{datadir}/nvidia/nvidia-application-profiles-%{nvidia-version}-rc" ]; then
273+
echo "ERROR: application profiles were not installed" >&2
274+
exit 1
275+
fi
276+
277+
# OptiX data blob; libnvoptix.so (OPENGL_LIB, above) fails at init
278+
# without it.
279+
if [ ! -f nvoptix.bin ]; then
280+
echo "ERROR: nvoptix.bin missing from driver payload" >&2
281+
exit 1
282+
fi
283+
install -Dm644 nvoptix.bin "%{install-root}%{datadir}/nvidia/nvoptix.bin"
284+
285+
# DLSS/frame-gen under Proton: the PE halves dxvk-nvapi loads, to
286+
# nvidia-installer's default <opengl-libdir>/nvidia/wine. The ELF
287+
# half (libnvidia-ngx.so) comes from TYPE selection above.
288+
WINEDIR="$LIBDIR/nvidia/wine"
289+
install -d "$WINEDIR"
290+
awk '$3 == "WINE_LIB" && $4 == "NATIVE" { print $1 }' .manifest | \
291+
while read -r f; do
292+
if [ ! -f "$f" ]; then
293+
echo "ERROR: .manifest lists $f but it is not in the payload" >&2
294+
exit 1
295+
fi
296+
install -Dm755 "$f" "$WINEDIR/$f"
297+
done
298+
for f in nvngx.dll _nvngx.dll; do
299+
if [ ! -f "$WINEDIR/$f" ]; then
300+
echo "ERROR: expected NGX Wine library $f was not installed" >&2
301+
exit 1
302+
fi
303+
done
304+
260305
# GSP firmware: Turing+ offloads work to a chip-internal RISC-V
261306
# core; nvidia.ko loads the firmware at probe time.
262307
if [ -d firmware ]; then
@@ -314,6 +359,26 @@ config:
314359
"$SYSTEMD_DIR/system/$(basename "$d")/nvidia-suspend-nofreeze.conf"
315360
done
316361
362+
# nvidia-powerd (Dynamic Boost) is inert without all three: unit,
363+
# D-Bus policy to own nvidia.powerd.server, and its data table.
364+
# nvidia-dbus.conf is typed DOCUMENTATION, so TYPE selection above
365+
# can never pick it up. Absent from the preset below but still
366+
# enabled: no catch-all preset rule exists, so systemd's default
367+
# policy enables anything with [Install]. That's fine - it exits 0
368+
# on hardware without Dynamic Boost, so nothing lands in failed.
369+
for f in systemd/system/nvidia-powerd.service nvidia-dbus.conf dlsnetparams.csv; do
370+
if [ ! -f "$f" ]; then
371+
echo "ERROR: $f missing from driver payload" >&2
372+
exit 1
373+
fi
374+
done
375+
install -Dm644 systemd/system/nvidia-powerd.service \
376+
"$SYSTEMD_DIR/system/nvidia-powerd.service"
377+
install -Dm644 nvidia-dbus.conf \
378+
"%{install-root}%{datadir}/dbus-1/system.d/nvidia-dbus.conf"
379+
install -Dm644 dlsnetparams.csv \
380+
"%{install-root}%{datadir}/nvidia/nvidia-powerd/dlsnetparams.csv"
381+
317382
# NVIDIA's SLA permits redistribution of the userspace libs only if
318383
# the EULA travels with them.
319384
if [ -f LICENSE ]; then

0 commit comments

Comments
 (0)