运行 tcron 需要满足哪些系统要求?

tcron 的运行前提只有两条:主板具备 ATX 闹钟开机(ATX alarm power-up)能力,且 Linux 内核支持 /dev/rtc。两者缺一不可——前者决定机器能否被定时唤醒,后者决定 tcron 能否通过实时时钟写入唤醒时间。如果你的主板不支持 ATX 闹钟开机,或者内核没有 /dev/rtc 支持,tcron 就无法实现自动开机这一核心功能。

两项要求分别解决什么问题

tcron 的定位是把 cron 和 ATX 开机能力整合在一起,因此它的依赖正好对应“定时”和“开机”两个环节。

要求 作用 不满足的后果
主板支持 ATX 闹钟开机 让主板在指定时刻自行上电 机器无法被自动唤醒,只能靠人工开机
Linux 内核支持 /dev/rtc 让 tcron 能读写实时时钟的闹钟寄存器 无法设定唤醒时间,定时开机失效

/dev/rtc 是 Linux 暴露给用户空间的实时时钟设备接口。tcron 需要通过它把“下一次几点开机”写入硬件时钟,主板才会在那个时刻触发上电。所以内核这一项不是可选项,而是写入唤醒时间的通道。

怎么确认自己的环境是否满足

检查内核是否支持 /dev/rtc

在终端执行:

ls -l /dev/rtc*

预期结果:能看到 /dev/rtc 或 /dev/rtc0 之类的设备节点。如果提示“No such file or directory”,说明当前内核没有启用 RTC 支持,需要重新配置并编译内核,或加载对应的 RTC 驱动模块。

检查主板是否支持 ATX 闹钟开机

这一项取决于主板固件(BIOS/UEFI)和硬件本身,无法只靠一条命令确认。可以进入 BIOS/UEFI 设置界面,查找与 RTC alarm、Wake on RTC、Power On by RTC 相关的选项。如果存在这类选项,说明主板具备该能力;如果完全没有相关设置项,通常意味着硬件不支持。

验证唤醒是否真的生效

即使两项检查都通过,也建议做一次实际验证:用 tcron 设定一个几分钟后的开机时间,然后关机,观察机器是否在预定时刻自行上电。这一步能排除“设备节点存在但闹钟未真正生效”的情况。

常见卡点

  • 只有 /dev/rtc 却仍无法开机:设备节点存在只说明内核接口可用,主板侧的闹钟开机功能仍需在固件中开启或本身支持。
  • BIOS 里有选项但关机后不唤醒:部分主板要求特定的电源状态(如完全关机而非休眠)才响应 RTC 闹钟,需要按主板说明确认。
  • 内核升级后设备节点消失:新内核可能未包含原先的 RTC 驱动,需要重新确认 /dev/rtc 是否仍然存在。

满足要求后能做什么

两项条件都具备时,tcron 可以做到传统“BIOS 定时开机 + cron”组合难以实现的事:一天内多次开机和关机,以及跳过一周中的某些天。典型用途包括定时开机播放音乐或声音、当作闹钟或提醒,以及录制电视/广播节目。它把这些能力整合在一处配置,不必再分别设置 BIOS 和 cron。

如果上述任一条件不满足,就需要先解决硬件或内核层面的支持问题,再考虑使用 tcron。

tcron.sourceforge.net
tcron : ATX power crond