about summary refs log tree commit diff
path: root/machines/openlab
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2018-06-05 18:21:56 +0200
committerProfpatsch <mail@profpatsch.de>2018-06-05 18:22:56 +0200
commitc994b9e74a2b37dd9e9ef55565098c1e1fbce463 (patch)
tree0360ebc7c7add3f075c18463dfc43bb2a7e1e1f9 /machines/openlab
parent12cda91cf3a6cb3c08216e64f878e580530093ac (diff)
machines: rename labnet to openlab
The namespace was kind of hard to remember, so let’s just call it openlab.
Diffstat (limited to 'machines/openlab')
-rw-r--r--machines/openlab/buffer.patch13
-rw-r--r--machines/openlab/hannswurscht.nix70
-rw-r--r--machines/openlab/manual-setup.md24
3 files changed, 107 insertions, 0 deletions
diff --git a/machines/openlab/buffer.patch b/machines/openlab/buffer.patch
new file mode 100644
index 00000000..379b3174
--- /dev/null
+++ b/machines/openlab/buffer.patch
@@ -0,0 +1,13 @@
+diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
+index 2fdebe0..7042ccc 100644
+--- a/src/modules/alsa/alsa-sink.c
++++ b/src/modules/alsa/alsa-sink.c
+@@ -63,7 +63,7 @@
+ #define DEFAULT_DEVICE "default"
+ 
+ #define DEFAULT_TSCHED_BUFFER_USEC (2*PA_USEC_PER_SEC)             /* 2s    -- Overall buffer size */
+-#define DEFAULT_TSCHED_WATERMARK_USEC (20*PA_USEC_PER_MSEC)        /* 20ms  -- Fill up when only this much is left in the buffer */
++#define DEFAULT_TSCHED_WATERMARK_USEC (500*PA_USEC_PER_MSEC)        /* 500ms  -- Fill up when only this much is left in the buffer */
+ 
+ #define TSCHED_WATERMARK_INC_STEP_USEC (10*PA_USEC_PER_MSEC)       /* 10ms  -- On underrun, increase watermark by this */
+ #define TSCHED_WATERMARK_DEC_STEP_USEC (5*PA_USEC_PER_MSEC)        /* 5ms   -- When everything's great, decrease watermark by this */
diff --git a/machines/openlab/hannswurscht.nix b/machines/openlab/hannswurscht.nix
new file mode 100644
index 00000000..4ef21bac
--- /dev/null
+++ b/machines/openlab/hannswurscht.nix
@@ -0,0 +1,70 @@
+{ pkgs, ... }:
+
+let
+  musicDir = "/data/music";
+  webserverRootDir = "/var/www";
+
+in {
+  vuizvui.user.openlab.base.enable = true;
+
+  nixpkgs.system = "i686-linux";
+
+  users.users.openlab.extraGroups = [ "audio" ];
+  services.mingetty.autologinUser = "openlab";
+
+  hardware.pulseaudio = {
+    enable = true;
+    systemWide = true;
+    package = pkgs.pulseaudioFull;
+    zeroconf.discovery.enable = false;
+    zeroconf.publish.enable = true;
+    tcp.enable = true;
+    tcp.anonymousClients.allowedIpRanges = [ "172.16.0.0/16" "127.0.0.1" ];
+  };
+
+  hardware.bluetooth = {
+    enable = true;
+    extraConfig = ''
+      [General]
+      Enable=Source,Sink,Media,Socket
+    '';
+  };
+
+  hardware.sane.enable = true;
+  services.saned = {
+    enable = true;
+    extraConfig = ''
+      172.16.0.0/16
+    '';
+  };
+
+  # TODO: haskell module broken
+  # vuizvui.user.openlab.stackenblocken = {
+  #   enable = true;
+  #   volume = 35;
+  # };
+  vuizvui.user.openlab.speedtest = {
+    enable = true;
+    outputPath = "${webserverRootDir}/speedtest.yaml";
+  };
+
+  services.nginx = {
+    enable = true;
+    virtualHosts."hannswurscht.openlab.lan" = {
+      default = true;
+      root = webserverRootDir;
+    };
+  };
+
+  # machine mostly runs headless with the screen shut
+  services.logind.extraConfig = "HandleLidSwitch=ignore";
+
+  fileSystems = {
+    "${musicDir}" = {
+      device = "ftp.openlab.lan:/data/upload/music";
+      fsType = "nfs";
+      label = "lab-ftp";
+      options = [ "nolock" "x-systemd.automount"];
+    };
+  };
+}
diff --git a/machines/openlab/manual-setup.md b/machines/openlab/manual-setup.md
new file mode 100644
index 00000000..6e7f1d20
--- /dev/null
+++ b/machines/openlab/manual-setup.md
@@ -0,0 +1,24 @@
+# Manual setup for labtops
+
+## Poor man’s setup
+
+### Intro
+
+- download newest nixos setup
+- write to USB stick
+- boot live system
+
+### Install vanilla nixos
+
+- use parted to setup msdos table (mktable) & full-disk partition (mkpart 0% 100%)
+- mkfs.ext4 -L /dev/sda1
+- mount /dev/disk/by-label/labtop /mnt
+- nixos-generate-config --root mnt, comment out a few things in /mnt/etc/nixos/configuration.nix
+- nixos-install
+- set temporary root password (123456), will be overwritten by vuizvui
+- reboot
+
+### Install vuizvui
+
+- boot, login as root
+- follow “installing a machine” documentation from vuizvui wiki