OpenHarmony开发者论坛
标题:
DAYU200关闭自动息屏的几种方式
[打印本页]
作者:
润开鸿_坚果
时间:
2023-11-24 04:48
标题:
DAYU200关闭自动息屏的几种方式
[md]
# DAYU200关闭自动息屏的几种方式
> 梁开祝 2023.03.01
>
由于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: 602
Set 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 sda
loop2 mmcblk0 mmcblk0p12 mmcblk0p7 sda1
```
可以看到 sda1 就是插入开发板的U盘,可以创建挂载点并挂载U盘到 /mnt/udisk :
```
# 创建U盘挂载点,挂载U盘,并查看U盘上的内容
mkdir /mnt/udisk
mount -t vfat /dev/block/sda1 /mnt/udisk
ls /mnt/udisk
# 默认 /vendor 分区是只读的,重新以rw模式挂载该分区
# 再将U盘中的 power_mode_config.xml 文件复制到开发板中 /vendor/etc/power_config/ 目录下
# 最后确认该文件的内容与是自己修改的内容
mount -o rw,remount /vendor
cp -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 /vendor
hdc 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 文件即可。
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5