eg25-manager: configure without modemmanager support
This commit is contained in:
parent
4fc59fa2ac
commit
17b90fc697
|
@ -38,6 +38,9 @@
|
||||||
|
|
||||||
sane.gui.sxmo.enable = true;
|
sane.gui.sxmo.enable = true;
|
||||||
sane.services.eg25-manager.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.guiApps.suggestedPrograms = [ "handheldGuiApps" ];
|
||||||
# sane.programs.consoleUtils.enableFor.user.colin = false;
|
# sane.programs.consoleUtils.enableFor.user.colin = false;
|
||||||
# sane.programs.guiApps.enableFor.user.colin = false;
|
# sane.programs.guiApps.enableFor.user.colin = false;
|
||||||
|
|
|
@ -12,20 +12,25 @@ let
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.sane.services.eg25-manager = {
|
options.sane.services.eg25-manager = with lib; {
|
||||||
enable = lib.mkEnableOption "Quectel EG25 modem manager service";
|
enable = mkEnableOption "Quectel EG25 modem manager service";
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.eg25-manager;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# eg25-manager package ships udev rules *and* a systemd service.
|
# eg25-manager package ships udev rules *and* a systemd service.
|
||||||
# for that reason, i think it needs to be on the system path for the systemd service to be enabled.
|
# for that reason, i think it needs to be on the system path for the systemd service to be enabled.
|
||||||
services.udev.packages = [ pkgs.eg25-manager ];
|
services.udev.packages = [ cfg.package ];
|
||||||
|
|
||||||
# but actually, let's define our own systemd service so that we can control config
|
# but actually, let's define our own systemd service so that we can control config
|
||||||
systemd.services.eg25-manager = {
|
systemd.services.eg25-manager = {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = "${pkgs.eg25-manager}/bin/eg25-manager --config ${eg25-config-toml}";
|
ExecStart = "${cfg.package}/bin/eg25-manager --config ${eg25-config-toml}";
|
||||||
ExecStartPre = pkgs.writeShellScript "unload-modem-power" ''
|
ExecStartPre = pkgs.writeShellScript "unload-modem-power" ''
|
||||||
|
# see issue: <https://gitlab.com/mobian1/eg25-manager/-/issues/38>
|
||||||
${pkgs.kmod}/bin/modprobe -r modem_power && echo "WARNING: kernel configured with CONFIG_MODEM_POWER=y, may be incompatible with eg25-manager" || true
|
${pkgs.kmod}/bin/modprobe -r modem_power && echo "WARNING: kernel configured with CONFIG_MODEM_POWER=y, may be incompatible with eg25-manager" || true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
, glib
|
, glib
|
||||||
, libgudev
|
, libgudev
|
||||||
, libusb1
|
, libusb1
|
||||||
, modemmanager
|
# if true, build with MMGLIB. if false, eg25-manager won't speak to modemmanager and will be usable standalone
|
||||||
|
, withModemManager ? true, modemmanager
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
|
||||||
libgpiod1
|
libgpiod1
|
||||||
libgudev
|
libgudev
|
||||||
libusb1
|
libusb1
|
||||||
|
] ++ lib.optionals withModemManager [
|
||||||
modemmanager
|
modemmanager
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user