summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2022-11-20 22:11:18 +0800
committerJonathan Brielmaier <jonathan.brielmaier@web.de>2022-12-18 13:25:37 +0100
commitfe9813a3ee74742001796b4a79229db262e1960d (patch)
tree91cbc34a93558d57da4b377434f186942e83dc88
parent9f4e8e82f1f5f9e6875900ad248b44af06692f61 (diff)
nongnu: nvidia-driver: Simplify udev rules creation.
* nongnu/packages/nvidia.scm (nvidia-driver)[arguments]<#:phases>: Simplify udev rules creation. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
-rw-r--r--nongnu/packages/nvidia.scm28
1 files changed, 11 insertions, 17 deletions
diff --git a/nongnu/packages/nvidia.scm b/nongnu/packages/nvidia.scm
index 57ac739..695c4b3 100644
--- a/nongnu/packages/nvidia.scm
+++ b/nongnu/packages/nvidia.scm
@@ -135,26 +135,20 @@
;; Add udev rules for nvidia
(let ((rulesdir (string-append #$output "/lib/udev/rules.d/"))
- (rules (string-append #$output "/lib/udev/rules.d/90-nvidia.rules"))
- (sh (search-input-file inputs "/bin/sh"))
- (mknod (search-input-file inputs "/bin/mknod"))
- (cut (search-input-file inputs "/bin/cut"))
- (grep (search-input-file inputs "/bin/grep")))
+ (rules (string-append #$output "/lib/udev/rules.d/90-nvidia.rules")))
(mkdir-p rulesdir)
(call-with-output-file rules
(lambda (port)
- (put-string port
- (string-append
- "KERNEL==\"nvidia\", "
- "RUN+=\"" sh " -c '" mknod " -m 666 /dev/nvidiactl c $$(" grep " nvidia-frontend /proc/devices | " cut " -d \\ -f 1) 255'\"" "\n"
- "KERNEL==\"nvidia_modeset\", "
- "RUN+=\"" sh " -c '" mknod " -m 666 /dev/nvidia-modeset c $$(" grep " nvidia-frontend /proc/devices | " cut " -d \\ -f 1) 254'\"" "\n"
- "KERNEL==\"card*\", SUBSYSTEM==\"drm\", DRIVERS==\"nvidia\", "
- "RUN+=\"" sh " -c '" mknod " -m 666 /dev/nvidia0 c $$(" grep " nvidia-frontend /proc/devices | " cut " -d \\ -f 1) 0'\"" "\n"
- "KERNEL==\"nvidia_uvm\", "
- "RUN+=\"" sh " -c '" mknod " -m 666 /dev/nvidia-uvm c $$(" grep " nvidia-uvm /proc/devices | " cut " -d \\ -f 1) 0'\"" "\n"
- "KERNEL==\"nvidia_uvm\", "
- "RUN+=\"" sh " -c '" mknod " -m 666 /dev/nvidia-uvm-tools c $$(" grep " nvidia-uvm /proc/devices | " cut " -d \\ -f 1) 0'\"" "\n" )))))
+ (put-string port (format #f "~
+KERNEL==\"nvidia\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidiactl c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 255'\"
+KERNEL==\"nvidia_modeset\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-modeset c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 254'\"
+KERNEL==\"card*\", SUBSYSTEM==\"drm\", DRIVERS==\"nvidia\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia0 c $$(@grep@ nvidia-frontend /proc/devices | @cut@ -d \\ -f 1) 0'\"
+KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm c $$(@grep@ nvidia-uvm /proc/devices | @cut@ -d \\ -f 1) 0'\"
+KERNEL==\"nvidia_uvm\", RUN+=\"@sh@ -c '@mknod@ -m 666 /dev/nvidia-uvm-tools c $$(@grep@ nvidia-uvm /proc/devices | @cut@ -d \\ -f 1) 0'\"
+"))))
+ (substitute* rules
+ (("@\\<(sh|grep|mknod|cut)\\>@" all cmd)
+ (search-input-file inputs (string-append "/bin/" cmd)))))
;; ------------------------------
;; Add a file to load nvidia drivers