diff --git a/common/amd-ai-config.nix b/common/amd-ai-config.nix new file mode 100644 index 0000000..1f1e9e7 --- /dev/null +++ b/common/amd-ai-config.nix @@ -0,0 +1,15 @@ +{ ... }: + +{ + hardware.amd-npu = { + enable = true; + enableNPU = false; + enableFastFlowLM = false; # My laptop's hawk point NPU isn't supported + enableLemonade = true; + enableROCm = true; + enableVulkan = true; + enableImageGen = true; + lemonade.user = "doggo"; + }; + users.users.doggo.extraGroups = ["video" "render"]; +} \ No newline at end of file diff --git a/common/ollama-config.nix b/common/ollama-config.nix index 9a4506b..1463264 100644 --- a/common/ollama-config.nix +++ b/common/ollama-config.nix @@ -2,7 +2,7 @@ { services.ollama = { - enable = !isLaptop; + enable = false; package = pkgs.ollama-vulkan; loadModels = [ diff --git a/configuration.nix b/configuration.nix index 191ea71..1f3bd9b 100644 --- a/configuration.nix +++ b/configuration.nix @@ -37,13 +37,15 @@ let pkgs = import nixtamal.nixpkgs { config.allowUnfree = true; - overlays = [ + overlays = with nixtamal; [ # CachyOS kernels repo - (import nixtamal.nix-cachyos-kernel).overlays.default + (import nix-cachyos-kernel).overlays.default # Nix-gaming overlay (for low_latency_layer) - (import nixtamal.nix-gaming).overlays.default + (import nix-gaming).overlays.default # Nix-Citizen tools overlay (for dw-proton-bin notably) - (import nixtamal.nix-citizen).overlays.steamcompattools + (import nix-citizen).overlays.steamcompattools + # AMD AI overlay + (import nix-amd-ai).overlays.default # Local packages localPackagesOverlay ]; @@ -68,6 +70,7 @@ in "${nixtamal.home-manager}/nixos" "${nixtamal.catppuccin}/modules/nixos" "${nixtamal.nix-cachyos-settings}/module.nix" + "${nixtamal.nix-amd-ai}/modules/amd-npu.nix" ./modules/bootloader.nix ./modules/system-packages.nix ./modules/fonts.nix @@ -81,6 +84,7 @@ in ./modules/printing.nix ./common/ollama-config.nix + ./common/amd-ai-config.nix ./machines/${ if isLaptop then "laptop" else "desktop" diff --git a/modules/system-packages.nix b/modules/system-packages.nix index 6a1c41a..01d1d2a 100644 --- a/modules/system-packages.nix +++ b/modules/system-packages.nix @@ -27,14 +27,6 @@ let }).overrideAttrs (old: { NIX_CFLAGS_COMPILE = (old.NIX_CFLAGS_COMPILE or "") + " ${flags}"; # https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/Optimize-Options.html }); - - importFlake = flakeRef: - let - src = nixtamal.${flakeRef}; - in - ((import nixtamal.flake-compat { inherit pkgs; }) { - inherit src; - }).defaultNix.packages.${pkgs.system}.default; }; in { diff --git a/tamal/lock.json b/tamal/lock.json index 122f55c..440bc8d 100644 --- a/tamal/lock.json +++ b/tamal/lock.json @@ -5,7 +5,6 @@ ,"catppuccin":{"sn":"catppuccin-src","kd":[1,{"ft":0,"ur":"https://github.com/catppuccin/nix/archive/f2c7dd14ecce785c206a39466cbe227ff62e3803.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-2/Fs6S8wK0GSJvEx1rPMW6KWORM8TZCleAmBxQDs5oA="},"fv":"f2c7dd14ecce785c206a39466cbe227ff62e3803","ps":[]} ,"catppuccin-godot":{"sn":"catppuccin-godot-src","kd":[0,{"ft":0,"ur":"https://raw.githubusercontent.com/catppuccin/godot/d8b72b679078f0103a5e5c1ef793c1d698a563b1/themes/Catppuccin%20Mocha.tet","ms":[]}],"ha":{"al":2,"vl":"blake3-WVY58qsBKJlGvir08RYlS+RcjdhFvXz+7YHVfEr6tes="},"fv":"d8b72b679078f0103a5e5c1ef793c1d698a563b1","ps":[]} ,"dolphin-overlay":{"sn":"dolphin-overlay-src","kd":[1,{"ft":0,"ur":"https://github.com/rumboon/dolphin-overlay/archive/65dd612c8d72d4cf5cb0eb4d9188ed7a16a042dd.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-PCS3mMGsTYXadc/DDU/EQv2T/0YORMigwUP6NEeOJW4="},"fv":"65dd612c8d72d4cf5cb0eb4d9188ed7a16a042dd","ps":["kservice_fix"]} -,"flake-compat":{"sn":"flake-compat-src","kd":[1,{"ft":0,"ur":"https://github.com/NixOS/flake-compat/archive/5edf11c44bc78a0d334f6334cdaf7d60d732daab.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-MmtcMfj5QuWGiFGGOdUMcaS0MSNzyV8dNCcsrPQq+Gk="},"fv":"5edf11c44bc78a0d334f6334cdaf7d60d732daab","ps":[]} ,"home-manager":{"sn":"home-manager-src","kd":[1,{"ft":0,"ur":"https://github.com/nix-community/home-manager/archive/f469c79b955609d6a8fdd9e689be76a93b1621d7.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-1zy6ntIs29Wr5aBoNIi2EUFuXTRE/mXiz4remDnDic0="},"fv":"f469c79b955609d6a8fdd9e689be76a93b1621d7","ps":[]} ,"hypr-darkwindow":{"sn":"hypr-darkwindow-src","kd":[1,{"ft":0,"ur":"https://github.com/micha4w/Hypr-DarkWindow/archive/refs/tags/v0.55.4.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-AtJoQQsGSDfni5oaPMefX0YRzB5JJaENw76EdQqhQyY="},"fv":"060996f5a5eb32ee8b5dc32bacc7f86411e79394424d278002e25a3eae7569c5","ps":[]} ,"lact-patch":{"sn":"lact-patch-src","kd":[0,{"ft":0,"ur":"https://patch-diff.githubusercontent.com/raw/ilya-zlobintsev/LACT/pull/1080.patch","ms":[]}],"ha":{"al":2,"vl":"blake3-x+HU/32454H6ZHu2i3AkdPECt9Jj4vW0Ac2jTzjpUvk="},"fv":"W/735aa2b881ef2024d0d6fcb4d2d48dd4","ps":[]} @@ -14,6 +13,7 @@ ,"mesa-git":{"sn":"mesa-git-src","kd":[1,{"ft":0,"ur":"https://gitlab.freedesktop.org/mesa/mesa/-/archive/d02b25157c68804c4e6da613faf0f38a3bcca6d3/mesa-d02b25157c68804c4e6da613faf0f38a3bcca6d3.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-sjmSfK4dTGuLyKaBJjPaftYaz26VRYCFqAqZocEioLE="},"fv":"d02b25157c68804c4e6da613faf0f38a3bcca6d3","ps":[]} ,"mpv":{"sn":"mpv-src","kd":[1,{"ft":0,"ur":"https://github.com/mpv-player/mpv/archive/refs/tags/v0.41.0.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-4u9KCKKEvSoOSO/7oZGIpnuSGcFc2rVmcJfdpFzwc5w="},"fv":"e04638a4b4eac258e679673d2a4171bde3f6c41eacb7e3d860c9a435f07eb9da","ps":["mpv_buffers_fix"]} ,"nct6687d-patch":{"sn":"nct6687d-patch-src","kd":[0,{"ft":0,"ur":"https://patch-diff.githubusercontent.com/raw/Fred78290/nct6687d/pull/186.patch","ms":[]}],"ha":{"al":2,"vl":"blake3-4wZgSze165RR4kmpLF8oMCQ8mapoyA3bn7aUeY8AiVM="},"fv":"W/346228cf70181267a790ec6c23bb540b","ps":[]} +,"nix-amd-ai":{"sn":"nix-amd-ai-src","kd":[1,{"ft":0,"ur":"https://github.com/noamsto/nix-amd-ai/archive/5027e475e1467efe900ee77c30ebf769990c422d.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-pHtA4qAfjGMJMJGZPA8ZM26mg+a60GHJY5A4HCGwag4="},"fv":"5027e475e1467efe900ee77c30ebf769990c422d","ps":["amd-ai-flake-compat"]} ,"nix-cachyos-kernel":{"sn":"nix-cachyos-kernel-src","kd":[1,{"ft":0,"ur":"https://github.com/xddxdd/nix-cachyos-kernel/archive/e2100ddeb1d86fbb73afc5f9a34d9f8b6f3bbc00.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-/kfk7dxN0GoXtPWAGCXnWGPUZx8QJRiIDAKv0LTHiVM="},"fv":"e2100ddeb1d86fbb73afc5f9a34d9f8b6f3bbc00","ps":[]} ,"nix-cachyos-settings":{"sn":"nix-cachyos-settings-src","kd":[1,{"ft":0,"ur":"https://github.com/Daaboulex/cachyos-settings-nix/archive/47b9da37ad59e3dd92ed2155b65ad9797e03d12f.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-6BiVCakwzVi/D+cu6xn7uGCJl7JhvhX62C/mPnZcaqc="},"fv":"47b9da37ad59e3dd92ed2155b65ad9797e03d12f","ps":["adios"]} ,"nix-citizen":{"sn":"nix-citizen-src","kd":[1,{"ft":0,"ur":"https://github.com/LovingMelody/nix-citizen/archive/7db41f8024ff84cc5ecc532560a5b6598ca65208.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-jcIN9/pmwil9YpwT/aG4/s4K7xUEcypAu7Kufbwi+lM="},"fv":"7db41f8024ff84cc5ecc532560a5b6598ca65208","ps":[]} @@ -23,6 +23,7 @@ ,"spotneotify":{"sn":"spotneotify-src","kd":[1,{"ft":0,"ur":"https://github.com/0lswitcher/spotneotify/archive/42a296482e28e6549baa5c31850ffafb7890a1a8.tar.gz","ms":[]}],"ha":{"al":2,"vl":"blake3-OgtK8Vh6JI2Y/iINgWU6URPPtpbGaNGSPXEoNWWH0lo="},"fv":"42a296482e28e6549baa5c31850ffafb7890a1a8","ps":[]} } ,"p":{ -"mpv_buffers_fix":{"ur":"https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/17303.patch","ha":{"al":2,"vl":"blake3-/y4M5tEZmuhh6q5zvg1lbf/jjdnRulPEoycCBcZm/cQ="}} +"amd-ai-flake-compat":{"ur":"https://patch-diff.githubusercontent.com/raw/noamsto/nix-amd-ai/pull/46.patch","ha":{"al":2,"vl":"blake3-+r0l/wtMerZlHTwukzdZ1lNhwmQ8UwXAV2ixpfJLosU="}} +,"mpv_buffers_fix":{"ur":"https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/17303.patch","ha":{"al":2,"vl":"blake3-/y4M5tEZmuhh6q5zvg1lbf/jjdnRulPEoycCBcZm/cQ="}} } } \ No newline at end of file diff --git a/tamal/manifest.kdl b/tamal/manifest.kdl index 9bceeaf..72760ac 100644 --- a/tamal/manifest.kdl +++ b/tamal/manifest.kdl @@ -6,6 +6,7 @@ patches { kservice_fix "./patches/kservice_fix.patch" mpv_buffers_fix "https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/17303.patch" // TODO: Remove this and mpv from manifest when mpv 0.42 is released //nix_odysseus "https://patch-diff.githubusercontent.com/raw/pewdiepie-archdaemon/odysseus/pull/2568.patch" // See 2567 also + amd-ai-flake-compat "https://patch-diff.githubusercontent.com/raw/noamsto/nix-amd-ai/pull/46.patch" // TODO Remove once it is merged } inputs { @@ -71,16 +72,6 @@ inputs { } } - flake-compat { - archive { - url "https://github.com/NixOS/flake-compat/archive/{{fresh_value}}.tar.gz" - } - fresh-cmd { - $ git ls-remote --branches "https://github.com/NixOS/flake-compat.git" --refs "refs/heads/master" - | cut -f1 - } - } - nix-citizen { archive { url "https://github.com/LovingMelody/nix-citizen/archive/{{fresh_value}}.tar.gz" @@ -131,6 +122,17 @@ inputs { } } */ + nix-amd-ai { + archive { + url "https://github.com/noamsto/nix-amd-ai/archive/{{fresh_value}}.tar.gz" + } + patches amd-ai-flake-compat + fresh-cmd { + $ git ls-remote --branches "https://github.com/noamsto/nix-amd-ai.git" --refs "refs/heads/main" + | cut -f1 + } + } + // Packages ani-cli-git { archive {