①.、关闭串口睡眠
在Linux内核睡眠过程中,会先调用 suspend_console() 函数使串口进入睡眠状态,这样会导致后续设备驱动的睡眠过程不可见.可以在boot启动参数中增加 no_console_suspend 参数,显示设备驱动睡眠日志.
修改串口日志打印等级,显示更多调试信息.
设置 pm_print_times 参数,可以显示设备驱动睡眠唤醒时间,方便调试时查看哪个函数处理占用时间过长.
唤醒日志如下:
此时便想是否有做自动唤醒的程序,毕竟这种需求也挺正常的,应该有人已经做过了.所以呢就开始查找自动唤醒的方法,果然就发现了 rtcwake 这个程序,这个程序是让系统进入休眠模式并在指定的时间后唤醒.立刻便觉得这个程序很神奇,然后就去看它的源码来找出它的实现方式,这边发现了本文的主题 RTC 子系统.
RTC 子系统在目录 /sys/class/rtc/ 下,会根据设备创建对应的目录,需要在内核中开启支持,配置如下:
debian/ubuntu 的系统可以在 /boot/config-$(uname -r) 查看内核的编译选项, archlinux 可以在 /proc/config.gz 查看.
RTC 目录下的文件含义可以在 sysfs-class-rtc 中查看.
RTC 目录中的 wakealarm 文件内容便是下次触发唤醒时间的时间,默认这个文件是没有值的.文件的内容需要设置是时间的秒数,可以向下面这样设置:
这就表示在 1 minute 后触发唤醒事件.
所以做休眠唤醒测试的流程如下:
最近研究命令行下,远程唤醒(Wake On LAN)家里的windows台式机.
linux下可以用 etherwake 这个软件,发送魔术封包(Magic Packet)远程唤醒机器.
我用的是树莓派,记录一下远程唤醒的方法.
首先安装 etherwake (基于Debian / Ubuntu )
安装完成后,可以用下面的命令远程唤醒
或者(下面两个命令我没有亲自尝试过)
比如你的MAC地址是 AA:BB:CC:DD:EE:FF ,就可以用
发送魔术封包唤醒远程机器.
其实还有其他一些细节,以后有机会慢慢补充吧.
参考文章:
[1] HowTo: Wake Up Computers Using Linux Command [ Wake-on-LAN ( WOL ) ]
linux系统远程关机之后能远程唤醒.
①.、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下.
以上就是土嘎嘎小编为大家整理的linux命令唤醒相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!