重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文基于 RockPI 4A 单板 Debian 系统 Linux4.4 内核介绍下睡眠唤醒( suspend/resume )的一些调试方法。
站在用户的角度思考问题,与客户深入沟通,找到延边朝鲜族网站设计与延边朝鲜族网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、域名申请、网页空间、企业邮箱。业务覆盖延边朝鲜族地区。
1、关闭串口睡眠
在Linux内核睡眠过程中,会先调用 suspend_console() 函数使串口进入睡眠状态,这样会导致后续设备驱动的睡眠过程不可见。可以在boot启动参数中增加 no_console_suspend 参数,显示设备驱动睡眠日志。
2、修改串口日志等级
修改串口日志打印等级,显示更多调试信息。
3、打开设备睡眠唤醒时间
设置 pm_print_times 参数,可以显示设备驱动睡眠唤醒时间,方便调试时查看哪个函数处理占用时间过长。
在调试Linux内核睡眠唤醒功能时,可以使用 RTC 做唤醒源,在系统睡眠5秒后,自动唤醒系统。
在 arch/arm64/configs/rockchip_linux_defconfig 文件中配置宏 CONFIG_PM_TEST_SUSPEND 。
唤醒日志如下:
关闭电脑休眠功能
先找到文件/etc/systemd/logind.conf进行编辑:
sudo vi /etc/systemd/logind.conf
找到下列条目
#HandleLidSwitch=suspend
改成如下
HandleLidSwitch=ignore
保存退出,重启系统
sleep命令
常用工具命令 sleep命令暂停指定的时间。
语法
sleep(参数)
参数
时间:指定要暂停时间的长度。
时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数。 实例 有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的,下面是一个Shell进度条的脚本演示在脚本中生成延时。
#!/bin/bash
b='' for ((i=0;$i=100;i++)) do printf "Progress:[%-100s]%d%%\r" $b $i sleep 0.1 b=#$b done
在Linux下,当机器处于睡眠或待机状态时,想通过网络进行唤醒(WOL,wake on lan)时,可以通过如下相关命令来实现:
在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,可以参考如下网址了解:
关于睡眠、待机等概念,可以参考如下网址了解:
sleep命令 常用工具命令 sleep命令暂停指定的时间。 语法 sleep(参数) 参数 时间:指定要暂停时间的长度。 时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数。 实例 有时在写...
这个我 没有使用过。
给定时关机,我使用的是定时关机3000.
定时关机3000有11种执行条件和可以执行电脑定时关机在内的14种任务。
11 种执行条件是:等待多少时间、开机多长时间、全天电脑累计开机多长时间、上传网速连续多长时间低于多少、下载网速连续多长时间低于多少、电脑空闲多长时间、指定的具体时间、每天的几点几分、每周的周几的几点几分、每月那天的几点几分、每年的哪天的几点几分。
14种执行的任务是;电脑关机、电脑重启、电脑注销当前用户、系统锁定、电脑睡眠、提醒、关闭显示器、电脑待机、运行软件、打开文件、打开网址、关闭软件、系统垃圾清理和断开网络。并且可以设置任务开机自动启动和同时执行多项任务。