首页 > 系统相关 >如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示

如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示

时间:2024-11-19 23:31:17浏览次数:1  
标签:Option RK3568 开发板 FlipFB Linux 屏幕 旋转 linaro xrandr

本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕旋转。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568芯片,搭载四核A55处理器,主频2.0Ghz;1T算力NPU;现已发布全新OpenHarmony5.0 Release固件。
Linux旋转屏幕的方法
临时旋转-通用各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:~$旋转屏幕可能遇到的问题
Debian系统旋转90度和270度失败
修改以下目录文件:
/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"

Use Rockchip RGA 2D HW accel

Option

"AccelMethod"

"exa"

Use GPU HW accel

Option      

"AccelMethod"

"glamor"

Option      

"DRI"

"2"

Set to

"always"
to avoid tearing, could lead to up 50% performance loss
Option
"FlipFB"

"none"

Limit flip rate and drop frames for

"FlipFB"
to reduce performance lost

Option

"MaxFlipRate"

"60"

Option      

"NoEDID"

"true"

Option

"UseGammaLUT"

"true"
EndSection

Section
"Screen"
Identifier
"Default Screen"
Device
"Rockchip Graphics"
Monitor
"Default Monitor"
EndSection

Valid values for rotation are

"normal"
,
"left"
,
"right"
Section
"Monitor"
Identifier
"Default Monitor"
Option
"Rotate"

"normal"
EndSection

FlipFB选项的作用
Option "FlipFB" "always"含义: 这个选项控制帧缓存翻转(Framebuffer flipping)。当设置为 "always" 时,它会强制启用帧缓存翻转。这种翻转有助于减少图像撕裂(tearing),但可能会带来性能损失,特别是在需要频繁更新或大规模绘制屏幕时(如旋转时)。
问题: 在配置中,FlipFB 设置为 "always" 可能会使驱动强制以某种方式处理显示管线,导致旋转操作无法顺利完成。因为旋转会大大增加对显示内存的访问和帧缓存更新需求,而 "always" 可能使得翻转操作与旋转的需求相冲突,从而触发了错误。
Option "FlipFB" "none"含义: 设置为 "none" 会禁用帧缓存翻转。这意味着系统不再尝试以特定的方式来处理翻转,减少了额外的操作,从而让旋转操作变得更加顺畅。虽然可能会导致轻微的屏幕撕裂,但对于屏幕旋转的需求,这样的设置是更合适的。效果: 通过禁用帧缓存翻转,减少了内存访问冲突或资源争用的问题,使得旋转功能可以正常工作。
UseGammaLUT选项的作用
Option "UseGammaLUT" "true"含义: 该选项控制是否使用伽玛查找表(Gamma Look-Up Table,Gamma LUT)。伽玛校正用于调整显示器输出的亮度或对比度,以达到更好的图像效果。开启 UseGammaLUT 会引入额外的图像处理步骤,特别是在颜色校正方面,它会影响 GPU 的负载。问题: 虽然伽玛校正与屏幕旋转本身并无直接联系,但如果开启伽玛校正会使得系统需要对每一帧进行额外的颜色调整,可能会影响旋转时的性能表现。如果显卡驱动或硬件对伽玛校正的支持不够完善,可能会导致与旋转操作冲突,最终影响到屏幕的更新和显示。
Option UseGammaLUT "true" 含义: 注释掉这个选项会禁用伽玛校正,减少系统对每一帧图像的处理负担。这对于需要频繁更新图像的操作(如屏幕旋转)有益,因为系统的图像处理变得更轻量化。效果: 通过禁用伽玛 LUT,图像处理变得更加简单,使得旋转操作不会因为额外的颜色处理而受到阻碍。

产品简介
触觉智能EVB3568鸿蒙开发板是一款基于RK3568开发的鸿蒙开发板/工控主板,适用于各种智慧显示终端、工业自动化终端和边缘计算网关类产品。

标签:Option,RK3568,开发板,FlipFB,Linux,屏幕,旋转,linaro,xrandr
From: https://www.cnblogs.com/industio/p/18555843

相关文章

  • [Linux]环境变量
    环境变量环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。常用的环境变量PATH:指定了操作系统在查找可执行文件时搜索的目录列表,目录之间用冒号:分隔。当在命令行中输入一个命令时,操作......
  • Linux常用基础指令-ls指令
    1.ls指令ls用于列出目录内容。显示指定目录下的文件和子目录,可以通过不同的选项来显示文件的详细信息。1.1.基本语法ls[选项][文件或目录]1.2.常用选项ls列出当前目录下的文件和子目录,显示的内容按照字母顺序排列。lsls-l使用长格式列出目录内容。每个文件或目......
  • linux启动流程
    Linux启动流程笔记系统目录结构/boot目录内容[root@web01boot]#lsconfig-4.18.0-305.3.1.el8.x86_64initramfs-4.18.0-305.3.1.el8.x86_64kdump.imgefiloadergrub2......
  • Oracle Linux 9.5 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
    OracleLinux9.5正式版发布-Oracle提供支持RHEL兼容发行版OracleLinuxwithUnbreakableEnterpriseKernel(UEK)&RedHatcompatiblekernel(RHCK)请访问原文链接:https://sysin.org/blog/oracle-linux-9/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • Linux基础命令一
    一、基本命令1.1man手册基本使用man具体命令空格翻页,回车下一页q退出man内容分区1:可执行程序或shell命令2:系统调用3:库调用4:特殊文件5:文件格式与约定6:游戏7:概览、约定及杂项8:超级用户和系统管理员命令9:内核例程可以使用man7hostname,指定看对应分区的内......
  • 【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
    Linux学习笔记:https://blog.csdn.net/2301_80220607/category_12805278.html?spm=1001.2014.3001.5482前言:在多任务操作系统中,进程优先级是影响任务调度的重要因素之一。操作系统通过设置不同的优先级来控制进程对CPU的使用权,从而实现资源的高效利用和任务的公平分配。本文......
  • FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别
    目录前言在嵌入式系统开发中,硬件开发板是工程师常用的工具之一。不同类型的开发板有不同的特点和用途,其中最常见的两大类是普通开发板和FPGA开发板。这里分享记录,这两类开发板的分类,并深入探讨它们在烧录过程中的具体区别,帮助我们更好地理解和选择适合自己的开发板。一. 开......
  • Linux线程退出、资源回收、资源清理的方法
    参考 Linux线程退出、资源回收、资源清理的方法_linux线程退出会释放哪些资源-CSDN博客 首先说明线程中要回收哪些资源,理解清楚了这点之后在思考资源回收的问题。1、子线程创建时从父线程copy出来的栈内存;线程退出有多种方式,如return,pthread_exit,pthread_cancel等;线......
  • conda linux 管理python 环境
    一、conda是什么?Conda是一个开源的软件包管理系统和环境管理系统,用于在不同的操作系统上安装、运行和管理多个软件包和环境。它可以用于管理Python软件包和其他编程语言的软件包,具有自动解决依赖关系、创建独立环境、轻松切换环境等功能。Conda提供了一个命令行界面和一个图形界......
  • Linux权限深入
    Linux是一个多用户、多任务的操作系统,其权限管理系统是保障系统安全性的重要组成部分。通过合理的权限设置,Linux能有效地控制用户对文件和目录的访问,防止恶意操作。 1.Linux权限基础1)文件权限概述Linux系统中每个文件或目录都与三组权限相关。所有者(Owner):文件的创建......