在A机(嵌入式设备)上,让其睡眠,可以使用如下命令:
ethtool -s eth0 wol g
echo standby>/sys/power/state 或echo mem>/sys/power/state
对于echo到state里面的内容,可以cat下state,就知道可以设置什么值了,而eth0可以根据实际需要通过哪个网口来唤醒设置。
在B机上(嵌入式设备或PC),唤醒A时需先知道A的MAC地址,才可以通过局域网进行唤醒,唤醒时使用如下命令:
ether-wake -i eth0 XX:XX:XX:XX:XX:XX
对于eth0可以根据实际设置,必须是跟A机连接到同一网段的网卡接口,而XX:XX:XX:XX:XX:XX则是A机的MAC地址。
对于上面用到的所有命令,要根据实际看有没有,没有则需要安装或交叉编译移植下,还有要注意电源管理部分内容,看能不能提供相关 *** 作。
关于WOL,可以参考如下网址了解:
http://hi.baidu.com/jzinfo/blog/item/158203e978d58a3fb90e2d03.html
关于睡眠、待机等概念,可以参考如下网址了解:
http://hi.baidu.com/buypro/blog/item/4e6d706737c8ef29aa184c1a.html
http://www.cublog.cn/u3/90973/showart_2281851.html#sec-5.1
1.请按一些按键。某些情况下,在控制台终端,多发呆一会Linux就会停止屏幕输出,让显示器修葺,请随便按个键,唤醒显示器。2.如楼上所说,从网络中的另外一台机器登录上去,关机。现在我是这么做的。
3.摸黑切到另一控制台,摸黑输入root回车,抹黑输入口令回车,摸黑关机。更早的时候我是这么做的。
最近做无线网络在系统多次休眠唤醒后是否正常的测试,但每次休眠后都需要手动点击键盘来唤醒系统,显而易见的这种方法需要人来值守,很不放便。
此时便想是否有做自动唤醒的程序,毕竟这种需求也挺正常的,应该有人已经做过了。因此就开始查找自动唤醒的方法,果然就发现了 rtcwake 这个程序,这个程序是让系统进入休眠模式并在指定的时间后唤醒。立刻便觉得这个程序很神奇,然后就去看它的源码来找出它的实现方式,这边发现了本文的主题 RTC 子系统。
RTC 子系统在目录 /sys/class/rtc/ 下,会根据设备创建对应的目录,需要在内核中开启支持,配置如下:
debian/ubuntu 的系统可以在 /boot/config-$(uname -r) 查看内核的编译选项, archlinux 可以在 /proc/config.gz 查看。
RTC 目录下的文件含义可以在 sysfs-class-rtc 中查看。
RTC 目录中的 wakealarm 文件内容便是下次触发唤醒时间的时间,默认这个文件是没有值的。文件的内容需要设置是时间的秒数,可以向下面这样设置:
这就表示在 1 minute 后触发唤醒事件。
所以做休眠唤醒测试的流程如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)