diff --git a/.gitattributes b/.gitattributes index e59e1835..3f7c38fe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,3 +2,4 @@ *.icm filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text *.webp filter=lfs diff=lfs merge=lfs -text +*.efi filter=lfs diff=lfs merge=lfs -text diff --git a/devices/pc/bios/Bootx64.efi b/devices/pc/bios/Bootx64.efi new file mode 100644 index 00000000..7cdcdccb --- /dev/null +++ b/devices/pc/bios/Bootx64.efi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94fa8ac7f668bf4c6db1982b1a3a436a16a3f59e4d58dc56ba8ef3d5adb0af76 +size 9024 diff --git a/devices/pc/bios/DisplayEngine.efi b/devices/pc/bios/DisplayEngine.efi new file mode 100644 index 00000000..9bf8a649 --- /dev/null +++ b/devices/pc/bios/DisplayEngine.efi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:061b1b1760bec1d4d7542019e73ee8d375899ae1f2abc1f4b3d3ce47bda61f72 +size 63104 diff --git a/devices/pc/bios/SetupBrowser.efi b/devices/pc/bios/SetupBrowser.efi new file mode 100644 index 00000000..d0a591ae --- /dev/null +++ b/devices/pc/bios/SetupBrowser.efi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1b37e11367abae594bf5e656d85ad634dabd8109fcf6cae8e9922ba9ec38b49 +size 73536 diff --git a/devices/pc/bios/UiApp.efi b/devices/pc/bios/UiApp.efi new file mode 100644 index 00000000..dc8415b5 --- /dev/null +++ b/devices/pc/bios/UiApp.efi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a624c3160c9f7d763dfed273fef7c6fea247cb7246c162e878e44e710170140b +size 163008 diff --git a/devices/pc/default.nix b/devices/pc/default.nix index 5b51a46e..b0a9fd7a 100644 --- a/devices/pc/default.nix +++ b/devices/pc/default.nix @@ -149,11 +149,33 @@ inputs: }; bugs = [ "xmunet" "backlight" "amdpstate" ]; }; - boot.kernelParams = - [ - "acpi_osi=!" ''acpi_osi="Windows 2015"'' - "amdgpu.sg_display=0" # 混合模式下避免外接屏幕闪烁,和内置外接屏幕延迟 - ]; + boot = + { + kernelParams = + [ + "acpi_osi=!" ''acpi_osi="Windows 2015"'' + "amdgpu.sg_display=0" # 混合模式下避免外接屏幕闪烁,和内置外接屏幕延迟 + ]; + loader.grub = + { + extraFiles = + { + "shell.efi" = "${inputs.pkgs.edk2-uefi-shell}/shell.efi"; + "efi/DisplayEngine.efi" = ./bios/DisplayEngine.efi; + "efi/SetupBrowser.efi" = ./bios/SetupBrowser.efi; + "efi/UiApp.efi" = ./bios/UiApp.efi; + "efi/Bootx64.efi" = ./bios/Bootx64.efi; + }; + extraEntries = + '' + menuentry 'Advanced UEFI Firmware Settings' { + insmod fat + insmod chain + chainloader @bootRoot@/Bootx64.efi + } + ''; + }; + }; # 禁止鼠标等在睡眠时唤醒 services.udev.extraRules = ''ACTION=="add", ATTR{power/wakeup}="disabled"''; networking.extraHosts = "74.211.99.69 mirism.one beta.mirism.one ng01.mirism.one";