From 5d349ce042bb602e2b67797fa4d7b19afe222290 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 22 Aug 2023 04:53:40 +0000 Subject: [PATCH] moby: init GPS during boot --- hosts/by-name/moby/default.nix | 4 ---- hosts/by-name/moby/gps.nix | 2 +- modules/services/default.nix | 1 + modules/services/eg25-control.nix | 27 +++++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 modules/services/eg25-control.nix diff --git a/hosts/by-name/moby/default.nix b/hosts/by-name/moby/default.nix index c0b8e3f5..65244730 100644 --- a/hosts/by-name/moby/default.nix +++ b/hosts/by-name/moby/default.nix @@ -37,10 +37,6 @@ ]; sane.gui.sxmo.enable = true; - # sane.services.eg25-manager.enable = true; - # i only need eg25-manager for GPS purposes; - # but modemmanager outright fails -- blocking eg25-manager -- unless i provide it a sim. - sane.services.eg25-manager.package = pkgs.eg25-manager.override { withModemManager = false; }; sane.programs.guiApps.suggestedPrograms = [ "handheldGuiApps" ]; # sane.programs.consoleUtils.enableFor.user.colin = false; # sane.programs.guiApps.enableFor.user.colin = false; diff --git a/hosts/by-name/moby/gps.nix b/hosts/by-name/moby/gps.nix index 474c6ccb..f3bc8b97 100644 --- a/hosts/by-name/moby/gps.nix +++ b/hosts/by-name/moby/gps.nix @@ -20,5 +20,5 @@ services.gpsd.enable = true; services.gpsd.devices = [ "/dev/ttyUSB1" ]; - # TODO: enable eg25-manager, and bring online both the modem and GPS on boot + sane.services.eg25-control.enable = true; } diff --git a/modules/services/default.nix b/modules/services/default.nix index 31bd23d8..556901bf 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -2,6 +2,7 @@ { imports = [ ./dyn-dns.nix + ./eg25-control.nix ./eg25-manager.nix ./kiwix-serve.nix ./mautrix-signal.nix diff --git a/modules/services/eg25-control.nix b/modules/services/eg25-control.nix new file mode 100644 index 00000000..178d3207 --- /dev/null +++ b/modules/services/eg25-control.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.sane.services.eg25-control; +in +{ + options.sane.services.eg25-control = with lib; { + enable = mkEnableOption "Quectel EG25 modem configuration scripts. alternative to eg25-manager"; + package = mkOption { + type = types.package; + default = pkgs.eg25-control; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.eg25-control-defaults = { + serviceConfig = { + Type = "simple"; + ExecStart = "${cfg.package}/bin/eg25-control --power-on --enable-gps --dump-debug-info --verbose"; + Restart = "on-failure"; + RestartSec = "60s"; + }; + after = [ "ModemManager.service" ]; + wants = [ "ModemManager.service" ]; + wantedBy = [ "multi-user.target" ]; + }; + }; +}