
清空记录
历史记录
取消
清空记录
历史记录

本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕旋转。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568芯片,搭载四核A55处理器,主频2.0Ghz;1T算力NPU;现已发布全新OpenHarmony5.0 Release固件,兴趣的小伙伴可以了解下!
Linux旋转屏幕的方法
执行xrandr -o normal/inverted/left/right,可以实现临时旋转屏幕方向,命令说明:
normal:表示顺时针旋转0度;
right:表示顺时针旋转90度;
inverted:表示顺时针旋转180度;
left:表示顺时针旋转270度;
以inverted命令为例:
linaro@linaro-alip:~$ xrandr -o inverted
永久旋转-适用Ubuntu系统
修改/etc/default/xrandr启动文件,可以实现永久旋转。以旋转180度为例,命令如下:
root@ido:~ # vi /etc/default/xrandr#!/bin/sh /usr/bin/xrandr -o inverted root@ido:~#
永久旋转-适用Debian系统
修改启动文件,目录如下:
/home/linaro/.config/lxsession/LXDE/autostart,将xrandr命令内置,实现永久旋转,主板重启后依旧生效。以旋转180度为例,命令如下:
linaro@linaro-alip:~$ vi /home/linaro/.config/lxsession/LXDE/autostart @lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE @xscreensaver -no-splash xrandr -o inverted linaro@linaro-alip:~$
旋转屏幕可能遇到的问题
修改以下目录文件:
/etc/X11/xorg.conf.d/20-modesetting.conf
具体修改如下:
(1)将Option "FlipFB" "always"这段内容改为Option "FlipFB" "none"
(2)将Option "UseGammaLUT" "true"这段内容改为#Option "UseGammaLUT" "true"
(3)重启生效
Section "Device"
Identifier "Rockchip Graphics"
Driver "modesetting"Option "AccelMethod"
"glamor"
Option "DRI" "2"
Option "FlipFB"
"none"Option "NoEDID"
"true"EndSection
Section "Screen"
Identifier "Default Screen"
Device "Rockchip Graphics"
Monitor "Default Monitor"EndSectionSection "Monitor"
Identifier "Default Monitor"
Option "Rotate" "normal"EndSection
FlipFB选项的作用
问题: 在配置中,FlipFB 设置为 "always" 可能会使驱动强制以某种方式处理显示管线,导致旋转操作无法顺利完成。因为旋转会大大增加对显示内存的访问和帧缓存更新需求,而 "always" 可能使得翻转操作与旋转的需求相冲突,从而触发了错误。
Option "FlipFB" "none"含义: 设置为 "none" 会禁用帧缓存翻转。这意味着系统不再尝试以特定的方式来处理翻转,减少了额外的操作,从而让旋转操作变得更加顺畅。虽然可能会导致轻微的屏幕撕裂,但对于屏幕旋转的需求,这样的设置是更合适的。效果: 通过禁用帧缓存翻转,减少了内存访问冲突或资源争用的问题,使得旋转功能可以正常工作。
UseGammaLUT选项的作用
Option UseGammaLUT "true" 含义: 注释掉这个选项会禁用伽玛校正,减少系统对每一帧图像的处理负担。这对于需要频繁更新图像的操作(如屏幕旋转)有益,因为系统的图像处理变得更轻量化。效果: 通过禁用伽玛 LUT,图像处理变得更加简单,使得旋转操作不会因为额外的颜色处理而受到阻碍。
产品购买
