refactor: split modemmanager stuff into own file
This commit is contained in:
parent
2389757581
commit
1f2bbd4aec
|
@ -116,14 +116,6 @@
|
||||||
# enable rotation sensor
|
# enable rotation sensor
|
||||||
hardware.sensor.iio.enable = true;
|
hardware.sensor.iio.enable = true;
|
||||||
|
|
||||||
# TODO: move elsewhere...
|
|
||||||
systemd.services.ModemManager.serviceConfig = {
|
|
||||||
# N.B.: the extra "" in ExecStart serves to force upstream ExecStart to be ignored
|
|
||||||
ExecStart = [ "" "${pkgs.modemmanager}/bin/ModemManager --debug" ];
|
|
||||||
# --debug sets DEBUG level logging: so reset
|
|
||||||
ExecStartPost = [ "${pkgs.modemmanager}/bin/mmcli --set-logging=INFO" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udev.extraRules = let
|
services.udev.extraRules = let
|
||||||
chmod = "${pkgs.coreutils}/bin/chmod";
|
chmod = "${pkgs.coreutils}/bin/chmod";
|
||||||
chown = "${pkgs.coreutils}/bin/chown";
|
chown = "${pkgs.coreutils}/bin/chown";
|
||||||
|
@ -134,8 +126,5 @@
|
||||||
|
|
||||||
# make Pinephone front LEDs writable by user.
|
# make Pinephone front LEDs writable by user.
|
||||||
SUBSYSTEM=="leds", DEVPATH=="*/*:indicator", RUN+="${chmod} g+w /sys%p/brightness", RUN+="${chown} :video /sys%p/brightness"
|
SUBSYSTEM=="leds", DEVPATH=="*/*:indicator", RUN+="${chmod} g+w /sys%p/brightness", RUN+="${chown} :video /sys%p/brightness"
|
||||||
|
|
||||||
# make Modem controllable by user
|
|
||||||
DRIVER=="modem-power", RUN+="${chmod} g+w /sys%p/powered", RUN+="${chown} :networkmanager /sys%p/powered"
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
./megapixels.nix
|
./megapixels.nix
|
||||||
./mepo.nix
|
./mepo.nix
|
||||||
./mimeo
|
./mimeo
|
||||||
|
./modemmanager.nix
|
||||||
./mopidy.nix
|
./mopidy.nix
|
||||||
./mpv
|
./mpv
|
||||||
./msmtp.nix
|
./msmtp.nix
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.sane.programs.eg25-control;
|
cfg = config.sane.programs.eg25-control;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
sane.programs.eg25-control = {
|
sane.programs.eg25-control = {
|
||||||
|
suggestedPrograms = [ "modemmanager" ];
|
||||||
|
|
||||||
services.eg25-control-powered = {
|
services.eg25-control-powered = {
|
||||||
description = "eg25-control-powered: power to the Qualcomm eg25 modem used by PinePhone";
|
description = "eg25-control-powered: power to the Qualcomm eg25 modem used by PinePhone";
|
||||||
startCommand = "eg25-control --power-on --verbose";
|
startCommand = "eg25-control --power-on --verbose";
|
||||||
|
@ -45,6 +47,7 @@ in
|
||||||
requires = [ "network-online.target" ];
|
requires = [ "network-online.target" ];
|
||||||
# wantedBy = [ "network-online.target" ]; # auto-start immediately after boot
|
# wantedBy = [ "network-online.target" ]; # auto-start immediately after boot
|
||||||
};
|
};
|
||||||
|
|
||||||
users = lib.mkIf cfg.enabled {
|
users = lib.mkIf cfg.enabled {
|
||||||
groups.eg25-control = {};
|
groups.eg25-control = {};
|
||||||
users.eg25-control = {
|
users.eg25-control = {
|
||||||
|
@ -61,4 +64,11 @@ in
|
||||||
# to persist agps data, i think.
|
# to persist agps data, i think.
|
||||||
{ user = "eg25-control"; group = "eg25-control"; path = "/var/lib/eg25-control"; }
|
{ user = "eg25-control"; group = "eg25-control"; path = "/var/lib/eg25-control"; }
|
||||||
];
|
];
|
||||||
|
services.udev.extraRules = let
|
||||||
|
chmod = "${pkgs.coreutils}/bin/chmod";
|
||||||
|
chown = "${pkgs.coreutils}/bin/chown";
|
||||||
|
in ''
|
||||||
|
# make Modem controllable by user
|
||||||
|
DRIVER=="modem-power", RUN+="${chmod} g+w /sys%p/powered", RUN+="${chown} :networkmanager /sys%p/powered"
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
18
hosts/common/programs/modemmanager.nix
Normal file
18
hosts/common/programs/modemmanager.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.sane.programs.modemmanager;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sane.programs.modemmanager = {};
|
||||||
|
|
||||||
|
systemd.services.ModemManager = lib.mkIf cfg.enabled {
|
||||||
|
serviceConfig = {
|
||||||
|
# only if started with `--debug` does mmcli let us issue AT commands like
|
||||||
|
# `mmcli --modem any --command=<AT_CMD>`
|
||||||
|
# N.B.: the extra "" in ExecStart serves to force upstream ExecStart to be ignored
|
||||||
|
ExecStart = [ "" "${pkgs.modemmanager}/bin/ModemManager --debug" ];
|
||||||
|
# --debug sets DEBUG level logging: so reset
|
||||||
|
ExecStartPost = [ "${pkgs.modemmanager}/bin/mmcli --set-logging=INFO" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user