{ hostRegistry, config, lib, pkgs, modulesPath, ... }: { hardware.enableRedistributableFirmware = true; powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; nixpkgs.config.packageOverrides = pkgs: { makeModulesClosure = x: # prevent kernel install fail due to missing modules pkgs.makeModulesClosure (x // { allowMissing = true; }); }; boot = { loader = { grub.enable = false; generic-extlinux-compatible.enable = lib.mkDefault true; raspberryPi = { enable = true; version = 4; firmwareConfig = '' gpu_mem=256 dtparam=audio=on ''; }; }; kernelParams = lib.mkForce [ "snd_bcm2835.enable_headphones=1" # don't let sd-image-aarch64.nix setup serial console as it breaks bluetooth. "console=tty0" ]; tmpOnTmpfs = true; }; # hardware.raspberry-pi."4" = { # fkms-3d.enable = true; # }; fileSystems."/" = { device = "${hostRegistry.hosts.nix-build.ip4}:/var/lib/nfsroot/dacbert"; fsType = "nfs"; options = [ "nfsvers=3" "proto=tcp" "nolock" "hard" "async" "rw" ]; }; c3d2 = { isInHq = true; mergeHostsFile = true; hq.interface = "eth0"; hq.statistics.enable = true; audioServer.enable = true; k-ot.enable = true; }; networking = { hostName = "dacbert"; # Define your hostname. useDHCP = false; interfaces.eth0.useDHCP = true; firewall.enable = false; }; environment.systemPackages = with pkgs; [ libraspberrypi raspberrypi-eeprom vim wget mpv youtube-dl ncpamixer pulseaudio # required for pactl chromium firefox pavucontrol glxinfo ]; programs.tmux.enable = true; # Do not log to flash: services.journald.extraConfig = '' Storage=volatile ''; # Enable the OpenSSH daemon. services.openssh = { enable = true; }; security.sudo = { enable = true; wheelNeedsPassword = false; }; # Select internationalisation properties. console = { font = "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; keyMap = "de"; }; # Enable the X11 windowing system. services.xserver.enable = true; services.xserver.layout = "de"; services.xserver.xkbOptions = "eurosign:e"; services.xserver.displayManager = { lightdm = { enable = true; }; autoLogin = { enable = true; user = "k-ot"; }; defaultSession = "gnome-xorg"; }; services.xserver.desktopManager = { gnome.enable = true; # kodi.enable = true; }; systemd.user.services.x11vnc = { description = "X11 VNC server"; wantedBy = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ]; serviceConfig = { ExecStart = '' ${pkgs.x11vnc}/bin/x11vnc -shared -forever -passwd k-ot ''; RestartSec = 3; Restart = "always"; }; }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "21.05"; # Did you read the comment? }