nix/packages/linux-fairydust/package.nix

68 lines
1.7 KiB
Nix

{
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)