Earlier, I wrote about my HTPC not waking up before programmed recordings. Finally, an article in Linux Magazin (German, which I don't read) led me to the right direction (thank you, Google Translate).

Turns out at least ASUS A7N8X resets its BIOS wakeup setting if the RTC is written to, and of course this is what the Fedora Core halt script does as one of the very last things. The workaround is to add CLOCKFLAGS="--directisa" to /etc/sysconfig/clock, to modify how hwclock accesses the BIOS NVRAM. In addition, the machine needs to execute BIOS code in order to register the wakeup time, shutdown -r followed by Grub executing "halt" is needed.

Hmm. I wonder how many years of computer hobbyist experience that paragraph requires from the reader. :) Anyhow, I hope this script is helpful to someone:

#!/bin/sh
# /usr/local/sbin/set-wakeup-time [date-and-time]
[ $# -ne 1 ] && exit 1
time_t=$(date +%s -d "$1")
[ "$time_t" != "" -a "$time_t" -gt 0 ] || exit 1
utc=$(perl -e 'use POSIX; print strftime "%F %T", gmtime('$time_t');')
echo "waking up at $utc UTC"
#echo "$1" > /proc/acpi/alarm
/usr/sbin/nvram-wakeup -A -s $time_t || (
  echo "savedefault --default=0 --once
  quit" | /sbin/grub 2>/dev/null
)
echo "shut down with 'shutdown -r now'

Put something like this in /boot/grub/grub.conf:

default saved
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Power Off
        halt
title Fedora Core (2.6.11-1.27_FC3)
        root (hd0,0)
        kernel /vmlinuz-2.6.11-1.27_FC3 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.11-1.27_FC3.img
        savedefault