diff --git a/flake.nix b/flake.nix index f4793f2..dd73144 100644 --- a/flake.nix +++ b/flake.nix @@ -55,7 +55,7 @@ ++ (lib.optionals (hostname == "orpheus") [ inputs.nixos-hardware.nixosModules.raspberry-pi-4 ( - { pkgs, ... }: + { pkgs, lib, ... }: { fileSystems."/" = { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; @@ -75,6 +75,31 @@ }; }; }; + boot = { + kernelPackages = lib.mkForce pkgs.linuxPackages_rpi4; + # Thanks to https://discourse.nixos.org/t/sound-on-raspberry-pi-4/15965/9 + kernelParams = [ + "snd_bcm2835.enable_hdmi=1" + "snd_bcm2835.enable_headphones=1" + ]; + extraModprobeConfig = '' + options snd_bcm2835 enable_headphones=1 + ''; + }; + systemd.user.services.wireplumber.wantedBy = [ "default.target" ]; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + socketActivation = false; + extraConfig = { }; + jack.enable = true; + pulse.enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + }; } ) ]); diff --git a/modules/boot.nix b/modules/boot.nix index e869ba0..b67328f 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,6 +1,7 @@ { pkgs, modulesPath, + lib, ... }: { @@ -12,7 +13,7 @@ timeout = 5; efi.canTouchEfiVariables = true; }; - kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; initrd.availableKernelModules = [ "ahci" "nvme" diff --git a/modules/users.nix b/modules/users.nix index 3d91a8c..59a80bf 100644 --- a/modules/users.nix +++ b/modules/users.nix @@ -31,9 +31,11 @@ description = "rafiq"; hashedPasswordFile = config.sops.secrets."rafiq/password".path; uid = 1000; + linger = true; # keep user services running extraGroups = [ "networkmanager" "wheel" + "audio" # Pipewire ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILdsZyY3gu8IGB8MzMnLdh+ClDxQQ2RYG9rkeetIKq8n"