with (import ./names-and-numbers.nix);
let
inherit (config.users) users;
+ modemmanager = pkgs.modemmanager-1-18;
+ #modemmanager = pkgs.modemmanager-1-20-4;
in
{
networking.nftables.ruleset = ''
systemd.services.ModemManager.serviceConfig.ExecStart =
lib.mkForce [
""
- "${pkgs.modemmanager-1-18}/bin/ModemManager --debug"
- #"${pkgs.modemmanager-1-20-4}/bin/ModemManager --debug"
+ # See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/780
+ "${modemmanager}/bin/ModemManager --debug"
];
systemd.services.NetworkManager.wants = [ "ModemManager.service" ];
services.dbus.packages = [ pkgs.dconf ];
uuid=b223f550-dff1-4ba3-9755-cd4557faaa5a
type=gsm
autoconnect=true
+ autoconnect-priority=999
autoconnect-retries=0
[gsm]
'';
};
systemd.services.watch-lte = {
- after = [ "NetworkManager-wait-online.service" ];
- requires = [ "NetworkManager-wait-online.service" ];
+ after = [ "ModemManager.service" "NetworkManager.service" "NetworkManager-wait-online.service" ];
+ requires = [ "ModemManager.service" "NetworkManager.service" "NetworkManager-wait-online.service" ];
wantedBy = [ "network-online.target" ];
#startAt = "*:0/5"; # every 5 min
- path = with pkgs; [ inetutils networkmanager ];
+ path = with pkgs; [ inetutils jq modemmanager networkmanager ];
unitConfig = { StartLimitIntervalSec = 0; };
serviceConfig = {
Type = "simple";
IPAddressAllow = [ "9.9.9.9" ];
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
ExecStart = pkgs.writeShellScript "watch-lte" ''
- set -ux
- while sleep 300; do
- ping -c 1 9.9.9.9 ||
- nmcli connection up Prixtel
+ set -eux
+ lastPONG=$(date +%s)
+ while sleep 5; do
+ if ping 9.9.9.9 --count 10 --linger 20 --interval 1 --quiet --numeric
+ then lastPONG=$(date +%s)
+ fi
+ if test $(( $(date +%s) - lastPONG )) -gt 300
+ then
+ modem=$(mmcli -L -J | jq -r '.["modem-list"][0]') || true
+ mmcli -m "$modem" --command "AT+CFUN=1,1" || true
+ sleep 10
+ systemctl restart ModemManager
+ sleep 10
+ nmcli connection up Prixtel
+ sleep 300
+ fi
done
'';
Restart = "on-failure";
- RestartSec = "30s";
+ RestartSec = "10s";
};
};
environment.systemPackages = [
pkgs.modem-manager-gui
pkgs.libmbim
pkgs.chatty
- pkgs.gnome.gnome-contacts
+ pkgs.gnome-contacts
pkgs.picocom
pkgs.tio
pkgs.calls
- pkgs.dfeet
+ pkgs.d-spy
# https://gitlab.com/mobian1/callaudiod/-/issues/26
# https://gitlab.com/mobian1/callaudiod/-/issues/27
pkgs.callaudiod