diff options
| author | makefu <github@syntax-fehler.de> | 2016-01-14 12:43:59 +0100 | 
|---|---|---|
| committer | makefu <github@syntax-fehler.de> | 2016-01-14 17:27:05 +0100 | 
| commit | 1d18ada0773443fddd22ddce04373da782b034a7 (patch) | |
| tree | 5153d75a51fc8a78b0ec5fc5a26304072950aeee | |
| parent | 1e845f7b765c4039f7541fb3542ba2bf76bb323c (diff) | |
ma 3 umts: init
| -rw-r--r-- | makefu/1systems/pornocauster.nix | 5 | ||||
| -rw-r--r-- | makefu/2configs/wwan.nix | 36 | ||||
| -rw-r--r-- | makefu/3modules/default.nix | 1 | ||||
| -rw-r--r-- | makefu/3modules/umts.nix | 76 | 
4 files changed, 87 insertions, 31 deletions
| diff --git a/makefu/1systems/pornocauster.nix b/makefu/1systems/pornocauster.nix index 690e26b36..d7fa8edc5 100644 --- a/makefu/1systems/pornocauster.nix +++ b/makefu/1systems/pornocauster.nix @@ -35,12 +35,14 @@        # ../2configs/mediawiki.nix        #../2configs/wordpress.nix      ]; +  hardware.sane.enable = true; +  hardware.sane.extraBackends = [ pkgs.samsungUnifiedLinuxDriver ];    nixpkgs.config.packageOverrides = pkgs: {      tinc = pkgs.tinc_pre;    };    krebs.Reaktor = { -    enable = true; +    enable = false;      nickname = "makefu|r";      plugins = with pkgs.ReaktorPlugins; [ nixos-version random-emoji ];    }; @@ -59,6 +61,7 @@    hardware.pulseaudio.configFile = pkgs.writeText "pulse-default-pa" ''      ${builtins.readFile "${config.hardware.pulseaudio.package}/etc/pulse/default.pa"}      load-module module-alsa-sink device=hw:0,3 sink_properties=device.description="HDMIOutput" sink_name="HDMI"''; +  networking.firewall.enable = false;    networking.firewall.allowedTCPPorts = [      25    ]; diff --git a/makefu/2configs/wwan.nix b/makefu/2configs/wwan.nix index 29a610ac6..1e76cd28a 100644 --- a/makefu/2configs/wwan.nix +++ b/makefu/2configs/wwan.nix @@ -1,33 +1,9 @@ -{ config, lib, pkgs, ... }: +_: -#usage: $ wvdial - -let -  mainUser = config.krebs.build.user; -in { -  environment.systemPackages = with pkgs;[ -    wvdial -  ]; - -  environment.shellAliases = { -    umts = "sudo wvdial netzclub"; +{ +  imports = [ ../3modules ]; +  makefu.umts = { +    enable = true; +    modem-device = "/dev/serial/by-id/usb-Lenovo_H5321_gw_2D5A51BA0D3C3A90-if01";    }; - -  # configure for NETZCLUB -  environment.wvdial.dialerDefaults = '' -    Phone = *99***1# -    Dial Command = ATDT -    Modem = /dev/ttyACM0 -    Baud = 460800 -    Init1 = AT+CGDCONT=1,"IP","pinternet.interkom.de","",0,0 -    Init2 = ATZ -    Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -    ISDN = 0 -    Modem Type = Analog Modem -    Username = netzclub -    Password = netzclub -    Stupid Mode = 1 -    Idle Seconds = 0''; - -  users.extraUsers.${mainUser.name}.extraGroups = [ "dialout" ];  } diff --git a/makefu/3modules/default.nix b/makefu/3modules/default.nix index 218c9138e..f007a8418 100644 --- a/makefu/3modules/default.nix +++ b/makefu/3modules/default.nix @@ -3,6 +3,7 @@ _:  {    imports = [      ./snapraid.nix +    ./umts.nix    ];  } diff --git a/makefu/3modules/umts.nix b/makefu/3modules/umts.nix new file mode 100644 index 000000000..d7be45f62 --- /dev/null +++ b/makefu/3modules/umts.nix @@ -0,0 +1,76 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let +  # TODO: currently it is only netzclub +  umts-bin = pkgs.writeScriptBin "umts" '' +    #!/bin/sh +    set -euf +    systemctl start umts +    trap "systemctl stop umts;trap - INT TERM EXIT;exit" INT TERM EXIT +    echo nameserver 8.8.8.8 | tee -a /etc/resolv.conf +    journalctl -xfu umts +  ''; + +  wvdial-defaults = '' +    Phone = *99***1# +    Dial Command = ATDT +    Modem = ${cfg.modem-device} +    Baud = 460800 +    Init1 = AT+CGDCONT=1,"IP","pinternet.interkom.de","",0,0 +    Init2 = ATZ +    Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 +    ISDN = 0 +    Modem Type = Analog Modem +    Username = netzclub +    Password = netzclub +    Stupid Mode = 1 +    Idle Seconds = 0''; + +  cfg = config.makefu.umts; + +  out = { +    options.makefu.umts = api; +    config = mkIf cfg.enable imp; +  }; + +  api = { +    enable = mkEnableOption "umts"; + +    modem-device = mkOption { +      default = "/dev/ttyUSB0"; +      type = types.str; +      description = '' +        path to modem device, use <filename>/dev/serial/by-id/...</filename> +        to avoid race conditions. +      ''; +    }; +  }; + +  imp = { +    environment.shellAliases = { +      umts = "sudo ${umts-bin}/bin/umts"; +    }; +    environment.systemPackages = [ ]; + +    environment.wvdial.dialerDefaults = wvdial-defaults; + +    systemd.targets.network-umts = { +      description = "System is running on UMTS"; +      unitConfig.StopWhenUnneeded = true; +    }; + +    systemd.services.umts = { +      description = "UMTS wvdial Service"; +      before = [ "network-umts.target" ]; + +      serviceConfig = { +        Type = "simple"; +        Restart = "always"; +        RestartSec = "4s"; +        ExecStart = "${pkgs.wvdial}/bin/wvdial -n"; +      }; +    }; +  }; +in out | 
