写点什么

DAYU200 关闭自动息屏的几种方式

作者:坚果
  • 2023-04-19
    北京
  • 本文字数:2871 字

    阅读完需:约 9 分钟

DAYU200关闭自动息屏的几种方式

DAYU200 关闭自动息屏的几种方式

作者:坚果

团队:坚果派

公众号:“大前端之旅”

润开鸿技术专家,华为 HDE,InfoQ 签约作者,OpenHarmony 布道师,擅长 HarmonyOS 应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领 100+队员完成 Pr 的提交合入。欢迎通过主页或者私信联系我,加入坚果派,一起学习 OpenHarmony/HarmonyOS 应用开发。


由于 OpenHarmony 的电源管理策略的配置,DAYU200 开发板在默认情况下,开机后 30 秒会自动息屏,频繁的自动息屏会让不少小伙伴感到麻烦,下面汇总关闭 DAYU200 开发板自动息屏的几种方式供大家选择使用。

0. 电源管理策略概述

OpenHarmony 标准系统的统一电源管理策略配置,见 //base/powermgr/power_manager/services/native/profile/power_mode_config.xml 文件,不同的配置对应不同的功耗情况。


<!--    Power Mode Definitions:        // 电源模式定义    MODE_NORMAL = 600,             // 正常模式    MODE_POWER_SAVE = 601,         // 省电模式    MODE_PERFORMANCE = 602,        // 性能优先    MODE_EXTREME_POWER_SAVE = 603, // 超级省电--><!--    Action Definitions:         // 行为定义    DisplayOffTime = 101,       // 息屏时间控制    SystemAutoSleepTime = 102,  // 系统自动睡眠时间控制    AutoAdjustBrightness = 103, // 亮度自动调整时间控制    AutoWindowRotation = 107,   // 窗口自动旋转时间控制    SystemBrightness = 115,     // 系统亮度调节    VibratorsState = 120,       // 马达(震动)状态--><switch_proxy version="1">    <proxy id="600">        <!-- value[单位:ms],-1表示不设置,如DisplayOffTime设为-1表示不息屏 -->        <switch id="101" value="30000" recover_flag="0"/>        <switch id="102" value="0" recover_flag="0"/>        <switch id="103" value="-1" recover_flag="0"/>        <switch id="107" value="1" recover_flag="0"/>        <switch id="115" value="102" recover_flag="0"/>        <switch id="120" value="1" recover_flag="0"/>    </proxy>    <proxy id="601">        <switch id="101" value="10000" recover_flag="0"/>        <switch id="102" value="5000" recover_flag="0"/>        <switch id="103" value="-1" recover_flag="0"/>        <switch id="107" value="-1" recover_flag="0"/>        <switch id="115" value="50" recover_flag="0"/>        <switch id="120" value="-1" recover_flag="0"/>    </proxy>    <proxy id="602">        <switch id="101" value="-1" recover_flag="0"/>        <switch id="102" value="-1" recover_flag="0"/>        <switch id="103" value="-1" recover_flag="0"/>        <switch id="107" value="1" recover_flag="0"/>        <switch id="115" value="255" recover_flag="0"/>        <switch id="120" value="1" recover_flag="0"/>    </proxy>    <proxy id="603">        <switch id="101" value="5000" recover_flag="0"/>        <switch id="102" value="1000" recover_flag="0"/>        <switch id="103" value="-1" recover_flag="0"/>        <switch id="107" value="-1" recover_flag="0"/>        <switch id="115" value="25" recover_flag="0"/>        <switch id="120" value="-1" recover_flag="0"/>    </proxy></switch_proxy>
复制代码

1. 手动解除息屏

开发板息屏后,手动按一下 ”POWER“ 按键即可点亮屏幕,点亮屏幕后,30 秒又会自动息屏。


这个方法容易误按到 “RESET” 键而重启开发板,比较麻烦。

2. 修改电源模式

开发板上电后,可以通过 shell 执行:


power-shell setmode 602
复制代码


或者通过 hdc shell 执行:


hdc shell power-shell setmode 602
复制代码


执行成功后,会打印出:


Set Mode: 602Set Mode Success!
复制代码


即表示系统的电源配置模式已经切换到编号为 602 的性能优先模式,开发板将不会自动息屏了。


不过这个修改电源模式的结果不保存,会在系统重启后恢复默认的正常模式,需要再次执行 power-shell 命令进行设置。


power-shell 的实现代码见://base/powermgr/power_manager/utils/shell/

3. hdc 推送电源配置到开发板

首先本地复制一份 power_mode_config.xml 文件,将电源管理中的 101 项的 value 值改为 -1, 保存备用。

3.1 方法 1

将上述修改后的 power_mode_config.xml 文件复制到 U 盘根目录下,再将 U 盘插入 DAYU200 开发板。


开发板开机后,可以查看块设备信息:


ls /dev/block......loop1      loop7    mmcblk0p11    mmcblk0p6  sdaloop2      mmcblk0  mmcblk0p12    mmcblk0p7  sda1
复制代码


可以看到 sda1 就是插入开发板的 U 盘,可以创建挂载点并挂载 U 盘到 /mnt/udisk :


# 创建U盘挂载点,挂载U盘,并查看U盘上的内容mkdir /mnt/udiskmount -t vfat /dev/block/sda1 /mnt/udiskls /mnt/udisk
# 默认 /vendor 分区是只读的,重新以rw模式挂载该分区# 再将U盘中的 power_mode_config.xml 文件复制到开发板中 /vendor/etc/power_config/ 目录下# 最后确认该文件的内容与是自己修改的内容mount -o rw,remount /vendorcp -r /mnt/udisk/power_config /vendor/etc/ls /vendor/etc/ls /vendor/etc/power_config/cat /vendor/etc/power_config/power_mode_config.xml
复制代码


之后,重启开发板就可以了。


系统会读取和解析该文件,在默认的正常模式不再息屏。

3.2 方法 2

windows 下通过 hdc 工具连接开发板,将修改后的 power_mode_config.xml 文件推送到开发板中即可。


# 默认 /vendor 分区是只读的,重新以rw模式挂载该分区# 再将 power_mode_config.xml 文件推送到开发板中 /vendor/etc/power_config/ 目录下# 最后确认该文件的内容与是自己修改的内容mount -o rw,remount /vendorhdc file send power_mode_config.xml /vendor/etc/power_config/
复制代码


之后,重启开发板就可以了。


系统会读取和解析该文件,在默认的正常模式不再息屏。


王开发板中复制或者通过 hdc 推送 power_mode_config.xml 文件到开发板中这种方式,只要不重新烧录开发板的 vendor 分区,即使开关机开发板,效果都是持续的。


如果重新烧录了开发板的 vendor 分区,则会恢复到默认的 30s 自动息屏的效果。

4. 修改源代码

对于需要经常烧录开发板 vendor 分区的开发者,建议直接修改源代码,将上述修改后的 power_mode_config.xml 文件编译进 vendor.img 镜像中,即可保证每次烧录 vendor 镜像后,不息屏的效果仍能保持。


将上述修改后的 power_mode_config.xml 文件复制到 //vendor/hihope/rk3568/power_config/ 目录下即可,电源管理模块的相关脚本在编译阶段,识别到存在该文件,就会将其自动复制到 vendor 烧录镜像的对应目录下。


这里的修改只对 rk3568 这个开发板有效,对于其他运行标准系统的开发版,也可以参考这种办法进行修改。


如果想要一次性修改,对所有的标准系统项目都生效,那就直接去//base/..../目录下修改 power_mode_config.xml 文件即可。

发布于: 刚刚阅读数: 3
用户头像

坚果

关注

此间若无火炬,我便是唯一的光 2020-10-25 加入

公众号:“大前端之旅”,OpenHarmony布道师,润和软件鸿蒙KOL,InfoQ签约作者,电子发烧友鸿蒙KOL

评论

发布
暂无评论
DAYU200关闭自动息屏的几种方式_OpenHarmony_坚果_InfoQ写作社区