Hello
The wiki says such a script is missing. Here's a simple one that works so that you resume to the same version of coreboot.
It basically sets the boot to normal before sleep, unless we are in fallback (since doing so would then prevent resume). To play it safe, it does the same on resume.
Charles
$ cat /etc/systemd/system/coreboot-sleep.service
[Unit] Description=Make sure coreboot resumes with the correct version Before=sleep.target StopWhenUnneeded=yes
[Service] Type=oneshot RemainAfterExit=yes # on resume is not really necessary, we just play safe ExecStart=/ibm/coreboot.sh # before sleep is totally necessary ExecStop=/ibm/coreboot.sh
[Install] WantedBy=sleep.target
$ cat /ibm/coreboot.sh #!/bin/bash
if cbmem -c |grep fallback; then /bin/echo "WARNING: not setting nvram options to preserve sleep mode" else # cbmem and the cmos.layout are lost on resume /usr/local/bin/nvramtool -y /ibm/cmos.layout -w boot_option=Normal /usr/local/bin/nvramtool -y /ibm/cmos.layout -w last_boot=Normal /usr/local/bin/nvramtool -y /ibm/cmos.layout -w reboot_bits=0 fi
Suggestion : replace CBET4000 by different strings for normal/fallback to access it with dmidecode, as my cbmem is emptied after a resume (hence the -y with cmos.layout). An alternative is to save cbmem -c output to a file after each boot
Charles