diff --git a/nongnu/services/nvidia.scm b/nongnu/services/nvidia.scm index 985e12b..4a604cb 100644 --- a/nongnu/services/nvidia.scm +++ b/nongnu/services/nvidia.scm @@ -2,14 +2,14 @@ ;;; Copyright © 2022 Hilton Chain (define-module (nongnu services nvidia) + #:use-module (guix gexp) + #:use-module (guix records) #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services linux) #:use-module (gnu services shepherd) - #:use-module (guix gexp) - #:use-module (guix records) #:use-module (nongnu packages nvidia) #:export (nvidia-configuration nvidia-configuration? @@ -19,24 +19,22 @@ (define-record-type* nvidia-configuration make-nvidia-configuration nvidia-configuration? - (nvidia-driver nvidia-configuration-nvidia-driver - (default (list nvidia-driver))) ; list of file-like - (nvidia-firmware nvidia-configuration-nvidia-firmware - (default (list nvidia-firmware))) ; list of file-like - (nvidia-module nvidia-configuration-nvidia-module - (default (list nvidia-module))) ; list of file-like - (modules nvidia-configuration-modules - (default (list "nvidia-uvm")))) ; list of string + (driver nvidia-configuration-driver + (default nvda)) ; file-like + (firmware nvidia-configuration-firmware + (default nvidia-firmware)) ; file-like + (module nvidia-configuration-module + (default nvidia-module))) ; file-like (define (nvidia-shepherd-service config) (list (shepherd-service - (documentation "Unload nvidia-uvm module on powering off.") + (documentation "Prepare system environment for NVIDIA driver.") (provision '(nvidia)) (requirement '(user-processes)) (start #~(const #t)) (stop #~(lambda _ (let ((rmmod #$(file-append kmod "/bin/rmmod"))) - (zero? (system* rmmod "nvidia-uvm")))))))) + (system* rmmod "nvidia_uvm"))))))) (define nvidia-service-type (service-type @@ -44,13 +42,15 @@ (extensions (list (service-extension shepherd-root-service-type nvidia-shepherd-service) + (service-extension profile-service-type + (compose list nvidia-configuration-driver)) (service-extension udev-service-type - nvidia-configuration-nvidia-driver) + (compose list nvidia-configuration-driver)) (service-extension firmware-service-type - nvidia-configuration-nvidia-firmware) + (compose list nvidia-configuration-firmware)) (service-extension linux-loadable-module-service-type - nvidia-configuration-nvidia-module) + (compose list nvidia-configuration-module)) (service-extension kernel-module-loader-service-type - nvidia-configuration-modules))) + (const '("nvidia_uvm"))))) (default-value (nvidia-configuration)) - (description "Load NVIDIA modules."))) + (description "Prepare system environment for NVIDIA driver.")))