fix network reset service

This commit is contained in:
mjallen18
2024-06-10 19:35:13 -05:00
parent f42575eb38
commit 6a561c0def
3 changed files with 58 additions and 46 deletions

View File

@@ -15,6 +15,19 @@ let
hostname = "matt-nixos";
gnome = false;
plasma = true;
resetNetworkScript = pkgs.writeScriptBin "reset-network" ''
#!/usr/bin/env bash
echo "checking network..."
if nmcli -t -f STATE general | grep -q "connected"; then
exit 0
else
echo "resetting network..."
echo 1 | tee /sys/bus/pci/devices/0000\:09\:00.0/reset
rmmod iwlwifi
modprobe iwlwifi
fi
'';
in
{
imports = [
@@ -61,7 +74,7 @@ in
default = "@saved";
console-mode = "max";
};
configurationLimit = 2;
configurationLimit = 5;
};
# Override kernel to latest
@@ -120,25 +133,15 @@ in
];
};
# systemd.services.fix-wifi = {
# path = [ pkgs.bash ];
# script = ''
# sleep 5
# if ping -q -c1 10.0.1.1 &>/dev/null; then
# echo "No need to fix wifi"
# else
# echo 1 | tee /sys/bus/pci/devices/0000\:09\:00.0/reset
# rmmod iwlwifi
# modprobe iwlwifi
# fi
# '';
# wantedBy = [ "multi-user.target" ];
# after = [ "NetworkManager.target" ];
# serviceConfig = {
# Type="oneshot";
# RemainAfterExit=true;
# };
# };
systemd.services.fix-wifi = {
path = [ pkgs.bash pkgs.networkmanager pkgs.kmod ];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type="oneshot";
ExecStart = [ "${resetNetworkScript}/bin/reset-network" ];
};
};
# Networking configs
networking = {
@@ -173,6 +176,7 @@ in
fishPlugins.bass
fishPlugins.sponge
gparted
kmod
lact
nano
os-prober