summary refs log tree commit diff
path: root/nixos/modules/services/misc/sdrplay.nix
diff options
context:
space:
mode:
authorpmenke <nixos@pmenke.de>2021-05-24 17:12:31 +0200
committerpmenke <nixos@pmenke.de>2021-05-28 15:40:04 +0200
commit9e0ed182aa86add5fecf6d575405687eb7c61f70 (patch)
treec1b1efeb65067033c61f2e8a9cb3613c9f396ef6 /nixos/modules/services/misc/sdrplay.nix
parentb2f86e66629d1d05a7da7dfff5bf18353bf7968e (diff)
downloadnixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar.gz
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar.bz2
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar.lz
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar.xz
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.tar.zst
nixpkgs-9e0ed182aa86add5fecf6d575405687eb7c61f70.zip
sdrplay: init at 3.07.1
this adds support for software defined radio (SDR) devices by SDRplay.
SDRplay provides an unfree binary library and api-service as well
as a MIT licensed adapter library for SoapySDR for integration
with many popular SDR applications.
Diffstat (limited to 'nixos/modules/services/misc/sdrplay.nix')
-rw-r--r--nixos/modules/services/misc/sdrplay.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/nixos/modules/services/misc/sdrplay.nix b/nixos/modules/services/misc/sdrplay.nix
new file mode 100644
index 00000000000..2801108f082
--- /dev/null
+++ b/nixos/modules/services/misc/sdrplay.nix
@@ -0,0 +1,35 @@
+{ config, lib, pkgs, ... }:
+with lib;
+{
+  options.services.sdrplayApi = {
+    enable = mkOption {
+      default = false;
+      example = true;
+      description = ''
+        Whether to enable the SDRplay API service and udev rules.
+
+        <note><para>
+          To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
+          <literal>soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };</literal>
+        </para></note>
+      '';
+      type = lib.types.bool;
+    };
+  };
+
+  config = mkIf config.services.sdrplayApi.enable {
+    systemd.services.sdrplayApi = {
+      description = "SDRplay API Service";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.sdrplay}/bin/sdrplay_apiService";
+        DynamicUser = true;
+        Restart = "on-failure";
+        RestartSec = "1s";
+      };
+    };
+    services.udev.packages = [ pkgs.sdrplay ];
+
+  };
+}