summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2019-02-10 15:13:10 -0500
committerPatrick Griffis <tingping@tingping.se>2019-02-10 15:27:47 -0500
commit6955c1fee6dd6ceb6f87691aa2f175b468a95b69 (patch)
tree4571ec6cec3a40e289104d367b1fa91d2845a8f4
parent61f44231fed99d3ce47dd5f119b1d9d18af691f1 (diff)
downloadflatpak-wip/tingping/nvidia-multiple-devices.tar.gz
Support multiple nvidia cardswip/tingping/nvidia-multiple-devices
-rw-r--r--common/flatpak-run.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/common/flatpak-run.c b/common/flatpak-run.c
index e967c836..dabb0087 100644
--- a/common/flatpak-run.c
+++ b/common/flatpak-run.c
@@ -1076,7 +1076,6 @@ flatpak_run_add_environment_args (FlatpakBwrap *bwrap,
"/dev/umplock",
/* nvidia */
"/dev/nvidiactl",
- "/dev/nvidia0",
"/dev/nvidia-modeset",
/* nvidia OpenCL/CUDA */
"/dev/nvidia-uvm",
@@ -1088,6 +1087,16 @@ flatpak_run_add_environment_args (FlatpakBwrap *bwrap,
if (g_file_test (dri_devices[i], G_FILE_TEST_EXISTS))
flatpak_bwrap_add_args (bwrap, "--dev-bind", dri_devices[i], dri_devices[i], NULL);
}
+
+ /* Each Nvidia card gets its own device.
+ This is a fairly arbitrary limit but ASUS sells mining boards supporting 20 in theory. */
+ char nvidia_dev[14]; /* /dev/nvidia plus up to 2 digits */
+ for (i = 0; i < 20; i++)
+ {
+ g_snprintf (nvidia_dev, sizeof (nvidia_dev), "/dev/nvidia%d", i);
+ if (g_file_test (nvidia_dev, G_FILE_TEST_EXISTS))
+ flatpak_bwrap_add_args (bwrap, "--dev-bind", nvidia_dev, nvidia_dev, NULL);
+ }
}
if (context->devices & FLATPAK_CONTEXT_DEVICE_KVM)