华硕主板计算机定时启动:RTC Alarm设置与双系统排错 📅 发布时间:2026/9/18 3:07:12 👁 浏览次数: 实验室里有台渲染机每天凌晨两点自己亮起来跑批处理早上我到工位的时候结果已经躺在硬盘里了家里那台做备份的机器也是每周日凌晨自动开机做一次全量同步跑完自己关掉。这套玩法我用在华硕主板上已经三四年换过 B360、B560、Z690 三块板子Windows 10、Windows 11 和 Ubuntu 22.04/24.04 都跑过。标题里说的华硕主板的计算机定时启动核心其实就一件事让主板在指定的时刻把一台处于关机S5状态的机器拉起来。这件事听起来简单实际踩的坑相当密集BIOS 里设了 RTC Alarm 却纹丝不动、时间总差 8 小时、关机后设置莫名其妙被重置、开机卡在 No Keyboard Detected 上等人按 F1、双系统下 Windows 和 Ubuntu 互相把硬件时钟改来改去。下面我把这套东西从原理到实操完整过一遍包括 Win10/Win11 和 Ubuntu 两侧要配合做的事情以及我这几块华硕板子上实测出来的排查顺序。不管你是想省电费、想远程办公前先把机器热起来还是想让机器在没人值守的时候自动干活都能直接照着抄。1. 先把概念掰清楚定时启动到底卡在哪一层1.1 S5、S4、S3 三种关机状态决定了方案上限很多人第一次做这件事会走弯路原因是没有区分机器的关机到底关到了哪一层。按照 ACPI 电源状态的定义日常说的关机其实有好几种状态名称内存供电谁能唤醒它S0正常工作有不适用S3挂起到内存睡眠有键盘、鼠标、网卡、RTC 闹钟S4挂起到硬盘休眠无电源键、网卡、RTC 闹钟S5软关机真正的关机无电源键、网卡、RTC 闹钟需主板支持关键点在最后一行S5 状态下操作系统已经完全不在了没有任何软件在跑。这时候唯一能定时把机器拉起来的只有主板芯片组里那个由 CMOS 电池持续供电的 RTCReal Time Clock实时时钟闹钟电路或者来自网卡的魔术包。这个认知是做这件事的地基后面所有的设置和排错都围绕它展开。提示判断自己的机器关到了哪一层最简单的办法是关机后看机箱电源指示灯和 USB 供电。S5 下大多数华硕主板只有很少的待机灯亮着风扇完全不转USB 也停了除非你开了关机充电。1.2 为什么单靠任务计划程序做不到我见过太多人第一步就打开 Windows 的任务计划程序建一个每天早上八点的任务勾上唤醒计算机运行此任务然后就等着——结果机器一次都没起来。原因很直白任务计划程序本质上是一个基于系统休眠管理器的闹钟。Windows 在进入 S3 或 S4 之前会把我需要在几点几分被唤醒这件事写进 RTC 的 alarm 寄存器然后把自己挂起。等到时间到了RTC 触发中断系统从 S3/S4 恢复任务再被执行。而在 S5 状态下Windows 内核根本没加载没人去读你的任务计划那个闹钟自然也不会被写进 RTC。打个比方任务计划程序像是你临睡前在手机上设的闹钟前提是你只是打盹手机还有电而 RTC Alarm 是床头那个上发条的机械闹钟你彻底睡死它也能响。想让关机的机器定时开机你得依赖后者。1.3 华硕主板上 RTC Alarm 与 AC Power Loss 是两回事华硕主板的 UEFI 里有好几个容易混淆的选项功能完全不同Power On By RTCRTC Alarm Power On在指定时刻从 S5 开机。这是我们主要要用的。Restore AC Power LossAC Power Loss / Restore on AC Power Loss市电恢复后主板的行为可选 Power Off / Power On / Last State。它不做定时只管来电了要不要自己开。Power On By PCI-E / Power On By LAN网络唤醒Wake On LAN由网卡收到魔术包触发。Power On By Keyboard / Mouse键盘鼠标唤醒通常只能从 S3/S4 唤醒部分主板支持特定按键从 S5 唤醒。很多人把 AC Power Loss 当成定时开机的替代品配合智能插座确实能达到类似效果但那是完全另一条技术路线后面单独讲。2. 华硕 UEFI 里的关键设置Power On By RTC 的完整路径与参数含义2.1 进入高级模式并定位到 APM Configuration开机按Delete或F2进入华硕 UEFI。默认进来是 EZ Mode先按F7切到 Advanced Mode。然后按下面的路径找Advanced └── APM Configuration ├── ErP Ready ├── Deep Sleep Control ├── Power On By RTC ├── Power On By PCI-E ├── Power On By Keyboard └── Restore AC Power Loss不同芯片组和 BIOS 版本的路径会有细微差别我手上这块 B560 是Advanced → APM ConfigurationZ690 也是同一路径有些老一点的板子写作Advanced → APM。如果翻不到可以用主板手册里的 APM 关键词检索或者在 BIOS 里用搜索功能部分中高端板支持在 UEFI 里搜选项名。2.2 RTC Alarm 各字段怎么填找到Power On By RTC之后把它从Disabled改成Enabled下面会展开几个子项字段含义填写建议RTC Alarm Date (Days)触发日期填0或Every Day表示每天触发填1-31表示每月某日RTC Alarm Hour小时0-2324 小时制RTC Alarm Minute分钟0-59RTC Alarm Second秒0-59一般填 0这里有一句必须记住的话这几个字段填的是 RTC 的时间不是 Windows 桌面上显示的本地时间。这两者在双系统环境下经常不一致后面第 3 章和第 4 章会专门拆开讲。实际操作的时候我会先做一件事进 BIOS 主界面看一眼当前日期和时间跟手机对一下。如果差了整整 8 小时先别急着填闹钟去把双系统的时间基准问题解决掉否则填什么都是错的。2.3 ErP Ready 和 Deep Sleep 是定时启动的头号杀手这是我最想强调的一节。华硕主板上两个看起来很节能的选项会让你的 RTC 闹钟彻底失效ErP Ready这是欧盟的待机功耗标准。开启后主板在 S5 状态下会切断绝大部分待机供电包括 USB 供电、网卡待机电路以及 RTC 闹钟的触发电路。可选值通常是Disabled/Enabled(S4S5)/Enabled(S5)。只要不是 DisabledRTC 唤醒基本就没戏。Deep Sleep Control控制深度睡眠时的供电切断程度可选Disabled/Enabled in S4-S5/Enabled in S5。同样一旦开启待机供电被掐断闹钟也响不了。我的经验是把这两个都设成Disabled。代价是关机以后 USB 口还在供电——RGB 灯条会亮着、插着的手机会慢慢充电、主板上的待机 LED 一直亮。算下来一个月多花不到一块钱电费换来定时启动稳定可靠我觉得非常划算。注意如果你用的是带独立供电的 USB 扩展坞或者外接硬盘盒关机后不断电可能让硬盘一直转着。这种情况可以单独把硬盘盒的电源关掉不用为了它去开 ErP。2.4 Restore AC Power Loss 作为备用方案如果你翻遍了 BIOS 也没找到 RTC Alarm或者你的板子属于入门型号没这个功能那可以退一步用Restore AC Power LossPower Off来电后保持关机Power On来电后自动开机Last State恢复断电前的状态把它设成Power On然后配一个能定时的智能插座插座到点通电主板就自动开机了。这条路对主板几乎没要求兼容性极好但代价是每次都是硬断电再上电后面第 6 章细说它的风险。3. Windows 10/11 侧必须配合的三件事3.1 关掉快速启动让关机真的回到 S5Windows 8 之后引入的快速启动其实是一种混合关机点关机的时候系统会把内核会话和驱动状态写进hiberfil.sys下次开机直接读回来所以那个所谓的关机在 ACPI 层面其实是S4 的一部分。这会带来两个问题一是关机过程不彻底某些驱动状态被保留RTC 闹钟的触发行为变得不可预期二是主板收到的关机信号可能不是标准的 S5 流程导致定时启动失败或者时间错乱。关闭路径控制面板 → 硬件和声音 → 电源选项 → 选择电源按钮的功能 → 点击更改当前不可用的设置 → 取消勾选启用快速启动推荐 → 保存修改如果你跟我一样追求彻底直接用管理员权限的 CMD 或 PowerShell 把休眠整个关掉powercfg /h off这条命令会把hiberfil.sys删掉顺带省出几个 G 的 C 盘空间同时禁用休眠和快速启动。副作用是你以后不能用休眠了但 S3 睡眠 S5 关机对我们这个场景来说完全够用。3.2 时区基准Windows 和 Ubuntu 的老毛病这是双系统用户最容易翻车的地方值得单独展开。Windows 默认认为主板 RTC 里存的是本地时间所以它显示几点RTC 就记几点。而 Linux包括 Ubuntu默认认为 RTC 里存的是UTC 时间显示的时候再按当前时区换算成本地时间。在中国这就意味着两个系统会相差 8 小时而且每次关机都会把 RTC 改写一遍你在 Windows 里看到 22:00关机时 RTC 被写成 22:00下次进 Ubuntu它把 22:00 当成 UTC显示成次日 06:00Ubuntu 走 NTP 同步把系统时间改回正确值关机时又把 RTC 写成了 UTC 的 14:00再进 Windows桌面显示 14:00。来回切几次时间就乱了。落到定时启动上就是你在 BIOS 里按本地时间填的 08:00实际触发时刻可能是凌晨 0 点或者下午 4 点完全对不上。解决这条路有两条选一条走到底就行方案一让 Windows 使用 UTC 基准推荐规范做法打开注册表编辑器定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation新建一个 DWORD (32 位) 值命名为RealTimeIsUniversal数值数据填1。然后重启去设置 → 时间和语言 → 日期和时间里手动同步一次时间。之后 Windows 就会把 RTC 当作 UTC 来读写和 Linux 保持一致的基准。方案二让 Ubuntu 使用本地时间基准省心但不太规范timedatectl set-local-rtc 1 --adjust-system-clock执行之后 Ubuntu 会把 RTC 当作本地时间处理。系统会给出一个 warning说明这种配置在夏令时切换和某些服务上可能有隐患但国内不用夏令时实际用下来没什么问题。我个人在双系统机器上更倾向方案二原因很简单BIOS 里显示的时间就是本地时间填闹钟的时候心算成本为零。如果按方案一让 RTC 存 UTC那你想让机器早上 8 点开机就得在 BIOS 里填 0 点特别容易搞混。规范性和便利性之间双系统场景我选便利。3.3 任务计划程序S3/S4 唤醒的正确玩法如果你不需要从完全关机的状态冷启动只是想让睡眠或休眠的机器按时醒来那 Windows 自带的任务计划程序就够用而且不需要动 BIOS 的 RTC 设置。步骤打开任务计划程序点创建任务不是基本任务常规标签页勾选不管用户是否登录都要运行勾选使用最高权限运行触发器标签页新建设置每天或每周指定具体时刻条件标签页勾选唤醒计算机运行此任务操作标签页指定要运行的脚本或程序设完之后还要确认电源策略没把定时唤醒掐掉。用管理员 CMD 执行powercfg /SETACVALUEINDEX SCHEME_CURRENT SUB_SLEEP RTCWAKE 1 powercfg /SETDCVALUEINDEX SCHEME_CURRENT SUB_SLEEP RTCWAKE 1 powercfg /SETACTIVE SCHEME_CURRENT这三条分别是接通电源时允许唤醒定时器使用电池时允许唤醒定时器应用当前方案。3.4 验证powercfg 三连设完之后别急着走用这三条命令确认状态powercfg /a # 查看系统支持哪些睡眠状态看待机(S3)休眠(S4)是否可用 powercfg /waketimers # 列出当前所有活动的唤醒定时器看你的任务在不在里面 powercfg /lastwake # 查看上一次是谁把机器唤醒的powercfg /waketimers的输出特别有用。如果它显示你设的时间说明闹钟已经写进去了如果是空的说明任务计划的条件没生效多半是唤醒计算机运行此任务没勾上或者电源策略把它禁了。4. Ubuntu 侧的 rtcwake 与硬件时钟排查4.1 先看硬时钟基准别急着下命令Ubuntu 上做定时唤醒第一步是搞清楚 RTC 里存的是什么timedatectl输出里会有一行RTC in local TZ: yes/no。no表示 RTC 存的是 UTCyes表示存的是本地时间。再看两个时间sudo hwclock --show --verbose # 硬件时钟当前值 date -u # UTC 时间 date # 本地时间把这三个值对一下就能判断基准有没有错位。如果hwclock --show和date输出一样说明 RTC 是本地时间基准如果和date -u一样说明是 UTC 基准。4.2 rtcwake 的四种模式实测对比rtcwake是 Linux 下操作 RTC 闹钟的标准工具用法是rtcwake -m 模式 -s 秒数或-t Unix时间戳。模式行为适用场景no只设置闹钟不睡眠测试闹钟有没有写进 RTCmem挂起到内存S3到点唤醒短时间离开想省电又要快速恢复disk休眠到磁盘S4到点唤醒长时间不用想彻底断电又要保留会话off设置闹钟后关机S5到点由 RTC 触发开机这就是我们要的定时开机实际用起来最接近标题需求的是第四种sudo rtcwake -m off -s 3600这条命令的意思是把闹钟设到 3600 秒之后然后关机。机器会正常走关机流程但关机的过程中 RTC 闹钟已经被写好了一小时后主板会自动上电开机。整个过程不依赖任何常驻服务因为写闹钟是在关机之前完成的。如果要用绝对时间比如明天早上 8 点sudo rtcwake -m off -t $(date -d tomorrow 08:00 %s)注意-t接受的是 Unix 时间戳也就是从 1970 年以来的秒数date -d ... %s就是干这个换算的不用自己算。4.3 用 /proc/driver/rtc 确认闹钟真的写进去了设完之后别急着关机先看一眼闹钟状态cat /proc/driver/rtc输出里关注这几行rtc_time : 22:15:30 rtc_date : 2024-05-20 alrm_time : 23:15:30 alrm_date : 2024-05-20 alarm_IRQ : yes alrm_pending : noalarm_IRQ: yes表示闹钟中断已启用alrm_time和alrm_date就是触发时刻。如果这两行是空的或者alarm_IRQ是no说明没写成功。没写成功最常见的两个原因一是没用sudo普通用户没有权限碰 RTC 设备二是系统里有多个 RTC 设备比如某些服务器板子有 rtc0 和 rtc1需要用-d rtc0明确指定。我遇到过一块工控板默认走的是 rtc1折腾了半天才发现。4.4 双系统时间打架的根治办法前面 3.2 讲了两种基准方案这里补充一下 Ubuntu 侧的配套动作。如果你选的是RTC 存 UTC方案一Ubuntu 这边什么都不用改默认就是 UTC 基准你要做的只是按 3.2 里的方法改 Windows 注册表。之后在 BIOS 里填 RTC Alarm 的时候记得填的是 UTC 时间也就是本地时间减 8 小时东八区。如果你选的是RTC 存本地时间方案二执行完timedatectl set-local-rtc 1 --adjust-system-clock之后Ubuntu 侧就一致了BIOS 里直接按本地时间填就行。我个人在双系统的机器上一律用方案二因为它在日常使用中几乎没有任何副作用而在 BIOS 里填闹钟时省心太多了。纯 Linux 单系统的机器就用默认的 UTC。5. 定时启动不生效时的完整排查链路设置都做完了时间到了机器没起来这时候不要瞎试按顺序排查。下面这套顺序是我这几年踩坑踩出来的从最可能到最不可能。5.1 第一步设置到底有没有保存进 CMOS回 BIOS 里把Power On By RTC重新看一遍。如果它又变回Disabled那就是设置没保存住原因通常有两个CMOS 电池电量不足。主板上的 CR2032 纽扣电池负责在断电时给 RTC 和 CMOS 供电。电池电压低于 2.6V 左右BIOS 设置和系统时间就会在断电后丢失。测量方法是用万用表量电压或者更简单的拔掉主机电源等半小时再插回去如果 BIOS 时间回到了出厂值基本就是电池该换了。BIOS 版本或清 CMOS 导致重置。升级 BIOS、短接 CLR_CMOS 跳线、或者主板背面的清 CMOS 按钮按过之后所有设置都会回到默认值。这种情况只需要重新配置一次。5.2 第二步区分真关机和假关机有时候机器看起来关了其实还在 S4 或者 S3。判断方法关机后电源指示灯如果在缓慢闪烁通常是睡眠状态关机后按一下键盘或鼠标如果机器立刻亮起来说明刚才处于 S3用powercfg /a看休眠是否可用如果可用且快速启动开着你的关机很可能是 S4如果是假关机前面 3.1 关快速启动那一步就是必须做的。5.3 第三步时间基准有没有错位这个概率极高尤其是双系统。验证方法关机后立刻进 BIOS看主界面显示的日期时间跟你手机上的本地时间对不对得上。差 8 小时典型的双系统时间基准问题按 3.2 或 4.4 处理差几分钟到几十分钟RTC 晶振漂移。正常使用的时候 NTP 会不断校正系统时间并回写 RTC所以只要系统正常开机联网这个偏差会被自动修正差了几个月甚至年份不对CMOS 电池没电了5.4 第四步待机供电被 ErP 掐断再确认一遍ErP Ready和Deep Sleep Control都是Disabled。这两个选项在有些主板上的默认值会随着 BIOS 版本变化我遇到过升级 BIOS 之后 ErP 被自动改回Enabled(S5)的情况排查了半天才发现。另外部分华硕主板还有独立的 USB 待机供电开关比如USB Power Delivery in Soft Off State虽然它主要影响 USB 充电但某些板子上也关联着待机供电域顺手确认一下没坏处。5.5 第五步主板型号是否真的支持这个属于硬伤。入门级的 H610、A620 这类芯片组部分型号的 BIOS 里确实没有Power On By RTC选项。中高端的 B 系列和 Z 系列基本都有X 系列和部分服务器板更是标配。判断方法查主板手册里 APM Configuration 那一章看有没有 RTC Alarm 相关内容或者去官网的 BIOS 更新日志里搜。如果确实没有只能退而求其次走第 6 章的智能插座方案。5.6 通电了但没进系统No Keyboard Detected 卡住这一条是热词里提到的高频问题也是我踩过最坑的一个。现象机器确实在设定时间通电了风扇转了、灯亮了但远程连不上第二天到现场一看屏幕停在No Keyboard Detected或者Press F1 to Continue。原因BIOS 的 POST 自检在启动时会检测键盘没检测到就停下等人按键。定时启动的机器很多是不接键盘的尤其是放在机柜或远程机房的于是每次都卡在这一步机器开了但没起来。解决办法在华硕 UEFI 里Advanced → Boot Configuration └── Wait For F1 If Error → Disabled有些型号在Boot菜单下名字可能是Halt On改成No Errors。改完之后 POST 遇到非致命错误会直接跳过继续启动。还有一个相关的坑没有接显示器的机器。某些华硕主板在检测不到显示输出设备时也会在 POST 阶段卡住或者直接不继续引导。我的做法是插一个几十块钱的 HDMI 假负载dummy plug让主板以为有显示器接着问题就消失了。这个在小机箱、无头服务器场景里非常好用。5.7 通电自动开机失败问题出在哪如果你走的是Restore AC Power Loss Power On这条路插座的电来了但机器没开按下面这张表对照症状可能原因检查项插座通电主板完全无反应ErP Ready 开着设为 Disabled通电瞬间风扇转一下就停5VSB 供电不足或电压跌落拔掉多余的 USB 设备插座加延时通电后主板灯亮但不开机Restore AC Power Loss 不是 Power On重设为 Power On偶尔成功偶尔失败电源老化、5VSB 纹波大换电源或用电容老化的机器测试RTC 设置每次断电都丢CMOS 电池没电换 CR2032 电池6. 智能插座 AC Power Loss另一条更省事的路子6.1 它的原理和适用边界思路很朴素主板设成Restore AC Power Loss Power On然后把主机电源插在一个可以定时的智能插座上。到点了插座通电主板检测到市电恢复按设定自动开机。这条路的优势在于不依赖 RTC几乎所有主板都能用包括没有 RTC Alarm 选项的入门板时间控制更灵活一周七天的不同时段都能在插座 App 里配不需要进 BIOS可以从完全断电状态启动也就是插座平时是断的机器连待机功耗都没有边界也很明确不能用在正在运行的机器上。插座断电的那一刻机器是真的被拔了电源如果此时系统在跑等于强制断电轻则文件系统需要检查重则数据损坏。所以这条路的前提是——你得保证断电那一刻机器已经正常关机了。6.2 与 RTC 方案怎么选、怎么配合我的建议是按场景分机器平时处于关机状态、需要每天固定时间开机优先用 RTC Alarm。它更干净是主板原生功能不涉及硬断电。主板不支持 RTC、或者需要完全断电省电用智能插座方案。两者都想要双保险可以设置成插座在目标时间前 5 分钟通电同时 BIOS 里也配 RTC Alarm。但我实测下来不建议这么干两套机制同时存在会让到底是谁把机器开起来的变得难以定位排查问题时增加干扰。还有一种折中玩法我自己在用平时机器保持 S5靠 RTC Alarm 每天开机出差或者长期不用的时候把插座设成断开彻底断电。需要的时候在手机 App 上远程把插座打开主板检测到上电就自动开机等于一个远程电源键。6.3 风险点和使用注意事项第一务必确认机器已经正常关机再断电。S5 状态下硬盘磁头已归位、文件系统已同步完此时断电是安全的但如果系统还在运行风险很大。第二智能插座本身的可靠性。廉价插座的继电器寿命、Wi-Fi 掉线、云端服务故障都会影响定时执行的准确性。我用的那款支持本地定时不依赖云断电记忆也有断电后重新来电还会恢复定时配置稳定性好很多。第三RTC 断电重置。如果 CMOS 电池本来就快没电了插座每次断电都会让 BIOS 设置回到默认那 RTC 方案和插座方案都会一起失效。这种情况下先换电池。第四对机械硬盘的长期影响。频繁的硬上电冲击对机械盘不太友好如果你用的是大容量 HDD 做存储建议还是走 RTC 路线让主板走正常的 S5 供电流程。最后分享一个我在实际使用中总结的小习惯不管用哪种方案第一次配置完一定不要立刻离开现场。先把闹钟设到 5 分钟后关机坐在旁边看它到底会不会自己起来。起来之后马上进系统确认时间是否正确、/proc/driver/rtc或powercfg /waketimers里的闹钟有没有被清掉。这五分钟的观察能省掉后面几个小时甚至几天的瞎猜。等确认稳定跑过一整周之后再把它放到无人值守的环境里去。