Linux 自动唤醒

作者: jouyouyun | 来源:发表于2018-10-17 22:50 被阅读19次

最近做无线网络在系统多次休眠唤醒后是否正常的测试,但每次休眠后都需要手动点击键盘来唤醒系统,显而易见的这种方法需要人来值守,很不放便。

此时便想是否有做自动唤醒的程序,毕竟这种需求也挺正常的,应该有人已经做过了。因此就开始查找自动唤醒的方法,果然就发现了 rtcwake 这个程序,这个程序是让系统进入休眠模式并在指定的时间后唤醒。立刻便觉得这个程序很神奇,然后就去看它的源码来找出它的实现方式,这边发现了本文的主题 RTC 子系统。

RTC 子系统

RTC 子系统在目录 /sys/class/rtc/ 下,会根据设备创建对应的目录,需要在内核中开启支持,配置如下:

CONFIG_HPET_EMULATE_RTC=y
CONFIG_PM_TRACE_RTC=y
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
# RTC interfaces
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
... (略)

debian/ubuntu 的系统可以在 /boot/config-$(uname -r) 查看内核的编译选项,archlinux 可以在 /proc/config.gz 查看。

RTC 目录下的文件含义可以在 sysfs-class-rtc 中查看。

wakealarm

RTC 目录中的 wakealarm 文件内容便是下次触发唤醒时间的时间,默认这个文件是没有值的。文件的内容需要设置是时间的秒数,可以向下面这样设置:

# echo $(date +%s --date 'now + 1 minutes') > /sys/class/rtc/rtc0/wakealarm

这就表示在 1 minute 后触发唤醒事件。

所以做休眠唤醒测试的流程如下:

  1. 设置下次唤醒的时间到 wakealarm
  2. 休眠系统
  3. wakealarm 唤醒后,开始做一些期望的事情(如检查系统是否正常),然后继续执行步骤 1,就这样一直循环,直至满足条件后终止

FAQ

  • 设置无效?
    首先检查内涵是否开启了 rtc 支持,如果支持就检查时间标准是否是 UTClocaltime 时间标准时设置 wakealarm 是不生效的,内容一直是空的。通过 timedatectl 命令可以查询和设置时间标准。

相关文章

  • Linux 自动唤醒

    最近做无线网络在系统多次休眠唤醒后是否正常的测试,但每次休眠后都需要手动点击键盘来唤醒系统,显而易见的这种方法需要...

  • 2018-06-04

    Linux进程的睡眠和唤醒 1 Linux进程的睡眠和唤醒 在Linux中,仅等待CPU时间的进程称为就绪进程,它...

  • 查看Linux系统服务(systemctl)

    Linux 系统服务有时也称为守护程序,是在Linux启动时自动加载并在Linux退出时自动停止的系统任务。 Ce...

  • Linux 设置开机自动运行脚本

    1. Linux 设置开机自动运行脚本 1. Linux 设置开机自动运行脚本[#1-linux-%E8%AE%B...

  • Linux设备驱动

    Linux设备文件自动生成 Linux字符设备驱动 Linux块设备驱动 Linux混杂设备驱动 - 按键设备驱动...

  • Linux网络唤醒

    在Linux下,当机器处于睡眠或待机状态时,想通过网络进行唤醒(WOL,wake on lan)时,可以通过如下相...

  • python入门:悄悄的,来一个某东自动登录

    .唤醒浏览器打开主页。 切换到登录入口。 自动输入用户名和密码。 完成自动登录。 1)唤醒浏览器打开主页。 htt...

  • Linux之Kickstart

    Linux系统自动安装 Linux系统安装类型: 1、手动安装 图形化界面安装 命令行界面安装 2、自动安装 图形...

  • Xubuntu 14.04 睡眠后关闭盖子被唤醒

    Xubuntu 14.04 睡眠后关闭盖子被唤醒,打开盖子自动唤醒还可以理解,关闭盖子也唤醒是什么情况?估计系统监...

  • shell教程

    Linux Shell参考 测试:docker run -it centos:6 Linux常用命令 自动补全 在...

网友评论

    本文标题:Linux 自动唤醒

    本文链接:https://www.haomeiwen.com/subject/kyudzftx.html