-
-
Notifications
You must be signed in to change notification settings - Fork 338
Intel 12th Generation Devices Issues
Nuttapong Punpipat edited this page Jan 26, 2023
·
2 revisions
- Workarounds:
- Reboot the system and then do the one of followings:
- Boot to Windows and do shutdown
- Boot to EFI shell and do
reset -s, this can also done via EFI shell scripting.
- for automate booting to specified EFI entry, can be done by setting EFI boot next.
- see section "Power state/operation workaround via EFI Shell" for information about EFI boot next, EFI scripting, and workaround automation.
- Reboot the system and then do the one of followings:
You are required to setup the workaround by this below (this required disabling secure boot or sign the EFI file by yourself):
- Getting compiled EFI shell source or prebuilt one. The x86_64 version is required. The EDK2 EFI shell is tested for this workaround. (Sample prebuilt: https://github.com/pbatard/UEFI-Shell ; you can grab prebuilt from non-DEBUG iso file located in latest release, the x86_64 EFI executable file of EFI Shell application is located inside
<iso file>/efi/boot/bootx64.efi) - Copy x86_64 EFI executable file of EFI Shell application to your desired directory path in
<EFI partition>(ex./EFI/EFI_Shell/Shell.efi) (recommended in EFI partition of local disk, in case using Linux from external disk) - For setting-up EFI Shell auto-shutdown scripting, see step 4-5, or else skip these steps
- Create file in desired directory (ex. /EFI/EFI_Shell/Scripts/shutdown.nsh)
- Put this line in the file
@reset -s - Read comment and set all the variable and execute the command to create new EFI entry
# Remark1: see https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf for information
# Remark2: for manual shutdown or using EFI shell
# - SHUTDOWNSCRIPT is not required
# - remove "-u -@ ./cmdline.bin"
# - the command from "cd ..." to "iconv ..." is not required
# Path to device file to disk contains selected EFI partition
DISKFILE=/dev/nvme0n1
# selected EFI partition, index start at 1
PARTNUM=1
# entry number do you want to create entry, recommened to be the equals to highest entry number visibled in the command `efibootmgr` added 1.
ENTRYNUM=0006
# Path to EFI Shell executable file relative to selected EFI partition, using backslash
EFIFILE='\EFI\EFI_Shell\Shell.efi'
# Path to auto-shutdown script relative to selected EFI partition, using backslash
SHUTDOWNSCRIPT='\EFI\EFI_Shell\Scripts\shutdown.nsh'
# Name of EFI entry
ENTRYNAME="Auto Shutdown workaround for Surface+Linux"
cd `mktemp -d`
echo -n "-nostartup -noconsoleout -noconsolein -nointerrupt -nomap -noversion $SHUTDOWNSCRIPT" > ./cmdline.text
iconv -f ascii -t ucs-2 ./cmdline.text > ./cmdline.bin
efibootmgr -v -b $ENTRYNUM -c -d $DISKFILE -l "$EFIFILE" -p $PARTNUM -L "$ENTRYNAME" -u -@ ./cmdline.bin
# for disabling the entry so we dont have to worry about entry sorting
efibootmgr -b $ENTRYNUM -A
After that you can boot to new EFI entry to perform shutdown. By using efibootmgr -n <Entry Number>, you can temporarily boot to selected entry after reboot. And you can apply this in init/PM scripts for automation too (For systemd, see here.
- Home
- Installation and Setup
-
Supported Devices and Features
- Surface Book 1
- Surface Book 2
- Surface Book 3
- Surface Laptop Studio
- Surface Laptop Studio 2
- Surface Laptop 1
- Surface Laptop 2
- Surface Laptop 3
- Surface Laptop 4
- Surface Laptop 5
- Surface Laptop 6
- Surface Laptop Go 1
- Surface Laptop Go 2
- Surface Laptop Go 3
- Surface Laptop SE
- Surface Go 1
- Surface Go 2
- Surface Go 3
- Surface Go 4
- Surface 3
- Surface Pro 1
- Surface Pro 2
- Surface Pro 3
- Surface Pro 4
- Surface Pro 5
- Surface Pro 6
- Surface Pro 7
- Surface Pro 7+
- Surface Pro 8
- Surface Pro 9 (Intel)
- Surface Pro 10
- Surface Studio 1
- Surface Studio 2
- Surface Studio 2+
- Surface Dock
- Device Independent Information
- Known Issues / FAQ
- Links and Associated Projects
- Testers and Contributing