138 lines
2.8 KiB
Nix
138 lines
2.8 KiB
Nix
{ pkgs, unstable, extra, config, ... }:
|
|
{
|
|
# [HARDWARE]
|
|
imports =
|
|
[ # Include the results of the hardware scan.
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
hardware.graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
extraPackages = [
|
|
pkgs.rocmPackages.clr.icd
|
|
];
|
|
};
|
|
|
|
systemd.tmpfiles.rules =
|
|
let
|
|
rocmEnv = pkgs.symlinkJoin {
|
|
name = "rocm-combined";
|
|
paths = with pkgs.rocmPackages; [
|
|
rocblas
|
|
hipblas
|
|
hipcc
|
|
clr
|
|
];
|
|
};
|
|
in [
|
|
"L+ /opt/rocm - - - - ${rocmEnv}"
|
|
];
|
|
|
|
# blender with HIP support
|
|
environment.systemPackages = [ pkgs.blender-hip ];
|
|
|
|
# [AMD GPU]
|
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
|
nixpkgs.config.rocmSupport = true;
|
|
|
|
|
|
# firmware
|
|
services.fwupd.enable = true;
|
|
|
|
# latest kernel
|
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
|
|
# [PERFORMANCE]
|
|
powerManagement = {
|
|
enable = true;
|
|
cpuFreqGovernor = "performance";
|
|
};
|
|
|
|
programs.corectrl = {
|
|
enable = true;
|
|
gpuOverclock.enable = true;
|
|
};
|
|
|
|
# [BOOT]
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
# [AUDIO]
|
|
services.pipewire.wireplumber.extraConfig = {
|
|
"alsa-monitor.conf" = {
|
|
enabled = true;
|
|
|
|
rules = [
|
|
{
|
|
matches = [
|
|
{
|
|
"node.name" = "alsa_output.usb-SMSL_SMSL_USB_AUDIO-00.analog-stereo";
|
|
}
|
|
];
|
|
actions = {
|
|
update-props = {
|
|
audio.format = "S32_LE";
|
|
};
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
services.pipewire.extraConfig.pipewire = {
|
|
"10-clock-rate" = {
|
|
"context.properties" = {
|
|
"default.clock.allowed-rates" = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ];
|
|
"default.clock.quantum" = 1024;
|
|
"default.clock.min-quantum" = 128;
|
|
"default.clock.max-quantum" = 2048;
|
|
};
|
|
};
|
|
"11-upmix" = {
|
|
"stream.properties" = {
|
|
"channel.upmix" = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
# [Fix KWIN locking to 60Hz]
|
|
environment.sessionVariables = {
|
|
KWIN_X11_NO_SYNC_TO_VBLANK = 1;
|
|
KWIN_X11_REFRESH_RATE = 180000;
|
|
KWIN_X11_FORCE_SOFTWARE_VSYNC = 1;
|
|
};
|
|
|
|
# [NETWORKING]
|
|
networking.hostName = "computational";
|
|
networking.networkmanager.enable = true;
|
|
services.openssh = {
|
|
enable = true;
|
|
settings = {
|
|
PermitRootLogin = "no";
|
|
PasswordAuthentication = false;
|
|
};
|
|
};
|
|
|
|
# [GAME STREAMING]
|
|
services.sunshine = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
# [LOCAL LLMs]
|
|
services.ollama = {
|
|
enable = true;
|
|
acceleration = "rocm";
|
|
rocmOverrideGfx = "10.3.0";
|
|
};
|
|
|
|
services.nextjs-ollama-llm-ui = {
|
|
enable = true;
|
|
package = unstable.nextjs-ollama-llm-ui;
|
|
};
|
|
|
|
system.stateVersion = "24.11";
|
|
}
|