IDO_触觉智能的个人空间 https://blog.eetop.cn/1827949 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

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

已有 292 次阅读| 2024-11-19 23:35 |系统分类:嵌入式| 瑞芯微RK3568, Linux开发板, 触觉智能, 鸿蒙开发板, 嵌入式开发

layout: ; --tw-contain-paint: ; --tw-contain-style: ; margin: 0px 0px 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif; white-space: pre-wrap; background-color: rgb(255, 255, 255);">
本文介绍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开发的鸿蒙开发板/工控主板,适用于各种智慧显示终端、工业自动化终端和边缘计算网关类产品。



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 6

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 0

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 5

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 19:39 , Processed in 0.021492 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部