是否可以在特定时间唤醒 Linux 设备

Ang*_*ngs 6 linux power-management wake-up

我在嵌入式板上运行 Debian。我想在晚上 10 点暂停或休眠董事会,并在早上 7 点唤醒它。通过pmi action suspend/暂停/休眠板没有问题hibernate。但是,我想知道是否可以安排董事会在特定时间醒来(也许通过使用 cron 或其他方式?)。如果是这种情况,您能否解释一下我如何做到这一点的所有必要步骤?

请注意,可以通过使用外部中断信号或使用 PIC、定时器和继电器等 MCU 构建简单电路来设置唤醒板的时间来唤醒嵌入式板。但这不是我所要求的。我想了解Linux上是否有任何方法可以执行唤醒操作。该电路板具有 WiFi 连接,除了电源线外,无法连接另一条电缆(请不要写关于唤醒网络的内容)。

use*_*ser 13

考虑你的要求。您需要一个关闭的设备在某个特定时间执行一些代码来打开它。什么会执行该代码?什么会使设备执行该代码?

根据设备的睡眠深度,如果BIOS 支持此类功能,可以通过配置 BIOS 在特定时间打开设备电源。你会在断电时直接摆弄 CMOS 内存中的位,并希望你没有破坏任何东西,但原则上它应该是可行的,如果你不需要例如在 BIOS 升级的情况下的弹性,它甚至可能是实用的。然而,这仍然取决于设备没有完全断电;必须监视系统实时时钟并在达到预选值时执行开机序列。与 Wake on LAN、Wake on Ring 等技术相同,这些技术都取决于某些东西触发开机事件。(尽管您要求回答者不要……,但我现在是否因撰写有关 LAN 唤醒的文章而投反对票?)

更重要的是,在 ATX 中触发的(即使按下电源按钮)是从一种电源状态到另一种电源状态的转换。完全关闭 ATX 系统的唯一方法是使用 PSU 上的开关关闭电源,或拔下电源线。这与 AT PSU 形成对比,AT PSU 在您关闭计算机时实际上完全断电,因为电源开关与交流电源线对齐以同样的方式 ATX PSU 电源开关(不是计算机的电源按钮)。不过,这并没有什么区别,因为无论系统是完全断电还是只是运行某种循环以等待系统时钟达到特定值,操作系统和 CPU 都没有运行,甚至如果它通电(这是主板和 BIOS 的一个实现细节;他们可能正在使用一个补充的、低功率的 CPU,只是为了这样的简单任务),就不会运行你安装的代码,所以任何地方都没有 Linux就 CPU 而言,在视线范围内,更不用说像 cron 这样的东西了。

底线;如果您所问的问题可以直接通过 Linux 执行我会感到非常惊讶,尽管通过查看周围硬件和固件的大图可能是可能的。最安全的赌注几乎肯定正是外部触发,被编程在关机以触发电序列给定的间隔之后或在给定时间(如果它有一个独立的RTC)。