diff options
author | Hilton Chain <hako@ultrarare.space> | 2024-01-07 21:24:14 +0800 |
---|---|---|
committer | John Kehayias <john.kehayias@protonmail.com> | 2024-04-24 20:06:46 -0400 |
commit | e4e34b7da49b278444360a603772c56485767900 (patch) | |
tree | fdadf04c59f7cce45d5f5e39c7b82ae72bfde35e /nongnu | |
parent | e3896f51d2d39d61fdb26585a6d992216a5d0cd5 (diff) |
services: nvidia: Create extra device nodes on boot.
* nongnu/services/nvidia.scm (nvidia-shepherd-service)
[requirement]: Add udev.
[start]: Create extra device nodes via ‘nvidia-smi’.
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
Diffstat (limited to 'nongnu')
-rw-r--r-- | nongnu/services/nvidia.scm | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index 4a604cb..e69c420 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -1,5 +1,5 @@ ;;; SPDX-License-Identifier: GPL-3.0-or-later -;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> +;;; Copyright © 2022, 2024 Hilton Chain <hako@ultrarare.space> (define-module (nongnu services nvidia) #:use-module (guix gexp) @@ -27,14 +27,20 @@ (default nvidia-module))) ; file-like (define (nvidia-shepherd-service config) - (list (shepherd-service - (documentation "Prepare system environment for NVIDIA driver.") - (provision '(nvidia)) - (requirement '(user-processes)) - (start #~(const #t)) - (stop #~(lambda _ - (let ((rmmod #$(file-append kmod "/bin/rmmod"))) - (system* rmmod "nvidia_uvm"))))))) + (let ((nvidia-driver (nvidia-configuration-driver config)) + (nvidia-smi (file-append nvidia-driver "/bin/nvidia-smi")) + (rmmod (file-append kmod "/bin/rmmod"))) + (list (shepherd-service + (documentation "Prepare system environment for NVIDIA driver.") + (provision '(nvidia)) + (requirement '(udev user-processes)) + (start + #~(lambda _ + (when (file-exists? #$nvidia-smi) + (system* #$nvidia-smi)))) + (stop + #~(lambda _ + (system* #$rmmod "nvidia_uvm"))))))) (define nvidia-service-type (service-type |