From 9248f86afdd4b56bb557e6e48d9c48b0ec5dd15c Mon Sep 17 00:00:00 2001 From: Sean Kovacs Date: Wed, 14 Jan 2026 11:50:02 -0500 Subject: [PATCH] asahi: switch to fairydust kernel, alien: switch to vanilla kernel --- .gitignore | 1 + packages/linux-fairydust/package.nix | 68 ++++++++++++++++++++++++++++ packages/overlay.nix | 1 + system/default.nix | 11 +++-- system/hosts/alien/default.nix | 6 +-- 5 files changed, 79 insertions(+), 8 deletions(-) create mode 100644 packages/linux-fairydust/package.nix diff --git a/.gitignore b/.gitignore index a414925..871886a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ system/hosts/peach/firmware/* result +*.qcow2 diff --git a/packages/linux-fairydust/package.nix b/packages/linux-fairydust/package.nix new file mode 100644 index 0000000..7b8a420 --- /dev/null +++ b/packages/linux-fairydust/package.nix @@ -0,0 +1,68 @@ +{ + lib, + callPackage, + linuxPackagesFor, + _kernelPatches ? [], +}: let + linux-asahi-pkg = { + stdenv, + lib, + fetchFromGitHub, + buildLinux, + ... + }: + buildLinux rec { + inherit stdenv lib; + + pname = "linux-asahi-fairydust"; + version = "6.18.2"; + modDirVersion = version; + extraMeta.branch = "6.18"; + + src = fetchFromGitHub { + owner = "AsahiLinux"; + repo = "linux"; + rev = "21a493172ce13c95df12b42faddfca515388d80c"; + hash = "sha256-UCQs+VYIWZMYiizkLWdPjSipBuOB1ahZx2oy5VuEjPI="; + }; + + kernelPatches = + [ + { + name = "Asahi config"; + patch = null; + structuredExtraConfig = with lib.kernel; { + # Needed for GPU + ARM64_16K_PAGES = yes; + + ARM64_MEMORY_MODEL_CONTROL = yes; + ARM64_ACTLR_STATE = yes; + + # Might lead to the machine rebooting if not loaded soon enough + APPLE_WATCHDOG = yes; + + APPLE_MAILBOX = yes; + + APPLE_RTKIT = yes; + APPLE_RTKIT_HELPER = yes; + RUST_APPLE_RTKIT = yes; + RUST_FW_LOADER_ABSTRACTIONS = yes; + + # Can not be built as a module, defaults to no + APPLE_M1_CPU_PMU = yes; + + # Defaults to 'y', but we want to allow the user to set options in modprobe.d + HID_APPLE = module; + + APPLE_PMGR_MISC = yes; + APPLE_PMGR_PWRSTATE = yes; + }; + features.rust = true; + } + ] + ++ _kernelPatches; + }; + + linux-asahi = callPackage linux-asahi-pkg {}; +in + lib.recurseIntoAttrs (linuxPackagesFor linux-asahi) diff --git a/packages/overlay.nix b/packages/overlay.nix index 3c96b06..ac79f84 100644 --- a/packages/overlay.nix +++ b/packages/overlay.nix @@ -1,3 +1,4 @@ final: prev: { spotify-webapp = prev.callPackage (builtins.path {path = ./spotify/package.nix;}) {}; + linux-asahi = prev.callPackage (builtins.path {path = ./linux-fairydust/package.nix;}) {}; } diff --git a/system/default.nix b/system/default.nix index 19797db..519b78d 100755 --- a/system/default.nix +++ b/system/default.nix @@ -82,11 +82,12 @@ services = { desktopManager.plasma6.enable = true; displayManager = { - sddm = { - enable = true; - wayland.enable = true; - enableHidpi = true; - }; + # sddm = { + # enable = true; + # wayland.enable = true; + # enableHidpi = true; + # }; + gdm.enable = true; defaultSession = "niri"; }; diff --git a/system/hosts/alien/default.nix b/system/hosts/alien/default.nix index a6d1a10..c07b808 100644 --- a/system/hosts/alien/default.nix +++ b/system/hosts/alien/default.nix @@ -26,10 +26,11 @@ catppuccin.accent = "blue"; boot.loader.systemd-boot.consoleMode = "max"; - # boot.kernelPackages = pkgs.linuxPackages; + boot.kernelPackages = pkgs.linuxPackages; # let's use the CachyOS kernel instead! - boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-lts; + # boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-lts; + # hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; programs = { gamescope = { @@ -68,7 +69,6 @@ powerManagement.enable = false; nvidiaSettings = false; open = false; - package = config.boot.kernelPackages.nvidiaPackages.stable; }; services.sunshine = {