diff --git a/nixos/boot/default.nix b/nixos/boot/default.nix index c52e31f..16e237f 100644 --- a/nixos/boot/default.nix +++ b/nixos/boot/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { imports = [ diff --git a/nixos/boot/opencore.nix b/nixos/boot/opencore.nix index 58fbb14..aa5d7be 100644 --- a/nixos/boot/opencore.nix +++ b/nixos/boot/opencore.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, inputs, ... }: +{ pkgs, inputs, ... }: let ocPath = "/boot/EFI/OC"; @@ -17,77 +17,88 @@ let ocConfig = inputs.oceanix.lib.OpenCoreConfig { pkgs = oceanixPkgs; modules = [ - ({ ... }: { - oceanix.opencore.settings = { - UEFI.Output.ProvideConsoleGop = true; - UEFI.Output.Resolution = "1366x768"; - UEFI.Output.TextRenderer = "BuiltinGraphics"; + ( + { ... }: + { + oceanix.opencore.settings = { + UEFI.Output.ProvideConsoleGop = true; + UEFI.Output.Resolution = "1366x768"; + UEFI.Output.TextRenderer = "BuiltinGraphics"; - UEFI.Audio = { - AudioCodec = 0; - AudioDevice = "PciRoot(0x0)/Pci(0x1b,0x0)"; - AudioOutMask = 1; - AudioSupport = true; - ResetTrafficClass = true; - DisconnectHda = false; - MaximumGain = -10; - MinimumAssistGain = -30; - MinimumAudibleGain = -128; - PlayChime = "Enabled"; - SetupDelay = 0; + UEFI.Audio = { + AudioCodec = 0; + AudioDevice = "PciRoot(0x0)/Pci(0x1b,0x0)"; + AudioOutMask = 1; + AudioSupport = true; + ResetTrafficClass = true; + DisconnectHda = false; + MaximumGain = -10; + MinimumAssistGain = -30; + MinimumAudibleGain = -128; + PlayChime = "Enabled"; + SetupDelay = 0; + }; + + UEFI.AppleInput = { + AppleEvent = "Builtin"; + CustomDelays = false; + GraphicsInputMirroring = true; + KeyInitialDelay = 50; + KeySubsequentDelay = 5; + PointerPollMask = -1; + PointerPollMin = 10; + PointerPollMax = 80; + PointerSpeedDiv = 1; + PointerSpeedMul = 1; + }; + + Misc.Boot.PickerMode = "External"; + Misc.Boot.PickerVariant = "Acidanthera\\Syrah"; + Misc.Boot.PickerAttributes = 144; + Misc.Boot.Timeout = 15; + Misc.Boot.HideAuxiliary = true; + + Misc.Debug = { + AppleDebug = true; + ApplePanic = true; + DisableWatchDog = true; + DisplayLevel = 2147483650; + Target = 3; + }; + + Misc.Security.SecureBootModel = "Disabled"; + Misc.Security.ScanPolicy = 0; + Misc.Security.Vault = "Optional"; + UEFI.Quirks.DisableSecurityPolicy = true; + UEFI.Quirks.ReleaseUsbOwnership = true; + + PlatformInfo.Automatic = true; + PlatformInfo.UpdateSMBIOSMode = "Create"; + PlatformInfo.Generic = { + SystemProductName = "MacBookPro9,2"; + SystemSerialNumber = "C02J19YCDTY3"; + SystemUUID = "8FF32D62-EC2E-46D1-A6D3-D1A5748F5F7B"; + MLB = "C02227802QXF1YJ1M"; + }; + + UEFI.Drivers = { + "OpenRuntime.efi" = { + Enabled = true; + }; + "OpenCanopy.efi" = { + Enabled = true; + }; + "OpenLinuxBoot.efi" = { + Enabled = true; + }; + "AudioDxe.efi" = { + Enabled = true; + }; + }; + Misc.Entries = [ ]; }; - - UEFI.AppleInput = { - AppleEvent = "Builtin"; - CustomDelays = false; - GraphicsInputMirroring = true; - KeyInitialDelay = 50; - KeySubsequentDelay = 5; - PointerPollMask = -1; - PointerPollMin = 10; - PointerPollMax = 80; - PointerSpeedDiv = 1; - PointerSpeedMul = 1; - }; - - Misc.Boot.PickerMode = "External"; - Misc.Boot.PickerVariant = "Acidanthera\\Syrah"; - Misc.Boot.PickerAttributes = 144; - Misc.Boot.Timeout = 15; - Misc.Boot.HideAuxiliary = true; - - Misc.Debug = { - AppleDebug = true; - ApplePanic = true; - DisableWatchDog = true; - DisplayLevel = 2147483650; - Target = 3; - }; - - Misc.Security.SecureBootModel = "Disabled"; - Misc.Security.ScanPolicy = 0; - Misc.Security.Vault = "Optional"; - UEFI.Quirks.DisableSecurityPolicy = true; - UEFI.Quirks.ReleaseUsbOwnership = true; - - PlatformInfo.Automatic = true; - PlatformInfo.UpdateSMBIOSMode = "Create"; - PlatformInfo.Generic = { - SystemProductName = "MacBookPro9,2"; - SystemSerialNumber = "C02J19YCDTY3"; - SystemUUID = "8FF32D62-EC2E-46D1-A6D3-D1A5748F5F7B"; - MLB = "C02227802QXF1YJ1M"; - }; - - UEFI.Drivers = { - "OpenRuntime.efi" = { Enabled = true; }; - "OpenCanopy.efi" = { Enabled = true; }; - "OpenLinuxBoot.efi" = { Enabled = true; }; - "AudioDxe.efi" = { Enabled = true; }; - }; - Misc.Entries = [ ]; - }; - }) + } + ) ]; }; @@ -96,7 +107,7 @@ in system.activationScripts.opencoreConfig = { text = '' echo "--- Kopurando In1t ---" - + if [ ! -d "${ocPath}" ] || ! ${pkgs.diffutils}/bin/diff -r "${ocConfig.efiPackage}/EFI/OC" "${ocPath}" >/dev/null 2>&1; then echo "diffs are detected, writing EFI files..." rm -rf ${ocPath} @@ -107,9 +118,9 @@ in else echo "EFI is already up to date." fi - + BOOT_DEV=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /boot) - + if [ -n "$BOOT_DEV" ]; then TARGET_DISK=$(echo "$BOOT_DEV" | ${pkgs.gnused}/bin/sed -E 's/p?[0-9]+$//') PART_NUM=$(echo "$BOOT_DEV" | ${pkgs.gnugrep}/bin/grep -oE '[0-9]+$')