linux鲁班猫屏幕和触摸[初用鲁班猫切换屏幕为MIPI-1080P][旋转屏幕为横屏显示][屏幕和触摸方向永久修改]

news2024/12/25 0:23:24

初用鲁班猫切换屏幕为MIPI-1080P

鲁班猫信息:
板卡从如下地址采购:https://detail.tmall.com/item.htm?_u=110jcean66aa&id=694560455663&spm=a1z09.2.0.0.56f52e8dj4eUdI&skuId=5156903694777
鲁班猫官方文档和教程:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/lubancat/lubancat.html
视频教程:https://space.bilibili.com/356820657/channel/collectiondetail?sid=1352573
板子实物图如下:
在这里插入图片描述
烧录鲁班猫镜像
按照视频教程的说法这里使用EMMC烧录镜像,选择如下镜像:在这里插入图片描述
E:\Study\鲁班猫\3-Linux镜像\Debian系统镜像\通用镜像(extboot)-适用于所有板卡\20230712\LubanCat-rk3566\lubancat-rk3566-debian10-xfce-20230712_update\lubancat-rk3566-debian10-xfce-20230712_update.img
注意:先短路MR点,再重新上电,这时候软件能够识别到MASKROM设备(如上图),然后再断开MR点,再点击升级按钮进行烧录
镜像烧录成功后可以看到下面的打印说明系统运行起来了,但是因为默认的屏幕使用的是HDMI的,而我们接的屏幕是MIPI的,所以我们看不到显示:
在这里插入图片描述
这里用串口登录系统
在这里插入图片描述
修改屏幕为MIPI
输入"fire-config"命令进入配置界面:
在这里插入图片描述
进入屏幕配置:
在这里插入图片描述
在这里插入图片描述
这里选择1080P:
注意:这里使用空格键进行切换(请看如下说明:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/fireconfig/fireconfig.html)
在这里插入图片描述
选择finish并且退出,然后输入"reboot"命令重启:
在这里插入图片描述
在这里插入图片描述
可以看到屏幕正常显示了:

鲁班猫修改屏幕适配MIPI

旋转屏幕为横屏显示

但是现在屏幕是竖屏的,我们的使用习惯是横屏的,进入系统,输入如下命令:
“xrandr --output DSI-1 --rotate left”

Last login: Thu Feb 14 18:13:09 CST 2019 on ttyFIQ0

 
           OO                            OO
           OOOO                        OOOO
           OOOOO                     OOOOOO
           OOOOOOO                 .OOOOOOO
           OOOOOOOOO              OOOOOOOOO
           OOOOOOOOOOO          OOOOOOOOOOO
           OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
           OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
           OOOOO\    OOOOOOOOOOOO    /OOOOO
           OOOOOOOOO    OOOOOO     OOOOOOOO
           OOOOO/    OOOOOOOOOOOOO   \OOOOO
           OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
           OOOOOOOOOOOOOO\ ̄/OOOOOOOOOOOOOO
           OOOOOOOOOOOOOOO\/OOOOOOOOOOOOOOO
           OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 
  _            _                     ____        _
 | |    _   _ | |__    ____  _____  / ___| ____ | |_   
 | |   | | | || '_ \  / _  ||  _  || |    / _  || __|
 | |___| |_| || |_) || (_| || | | || |___| (_| || |_
 |_____|\__._||_.__/  \__'_||_| |_| \____|\__'_| \__| 


Welcome to Debian GNU/Linux 10 (buster) (GNU/Linux 4.19.232 aarch64)

 * Documentation:  http://doc.embedfire.com
 * Management:     http://www.embedfire.com
Linux lubancat 4.19.232 #7 SMP Mon Jul 10 16:21:10 CST 2023 aarch64

System information as of Thu Feb 14 18:21:53 CST 2019

System load:   1.70 0.39 0.13   Up time:       0 min
Memory usage:  20 % of 1957MB   IP:            
CPU temp:      44°C             GPU temp:      44°C           
Usage of /:    42% of 7.1G   

root@lubancat:~# xrand
-bash: xrand: command not found
root@lubancat:~# xrandr
Screen 0: minimum 320 x 200, current 1080 x 1920, maximum 8192 x 8192
DSI-1 connected primary 1080x1920+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1080x1920     60.00*+
root@lubancat:~# xrandr --help
usage: xrandr [options]
  where options are:
  --display <display> or -d <display>
  --help
  -o <normal,inverted,left,right,0,1,2,3>
            or --orientation <normal,inverted,left,right,0,1,2,3>
  -q        or --query
  -s <size>/<width>x<height> or --size <size>/<width>x<height>
  -r <rate> or --rate <rate> or --refresh <rate>
  -v        or --version
  -x        (reflect in x)
  -y        (reflect in y)
  --screen <screen>
  --verbose
  --current
  --dryrun
  --nograb
  --prop or --properties
  --fb <width>x<height>
  --fbmm <width>x<height>
  --dpi <dpi>/<output>
  --output <output>
      --auto
      --mode <mode>
      --preferred
      --pos <x>x<y>
      --rate <rate> or --refresh <rate>
      --reflect normal,x,y,xy
      --rotate normal,inverted,left,right
      --left-of <output>
      --right-of <output>
      --above <output>
      --below <output>
      --same-as <output>
      --set <property> <value>
      --scale <x>x<y>
      --scale-from <w>x<h>
      --transform <a>,<b>,<c>,<d>,<e>,<f>,<g>,<h>,<i>
      --off
      --crtc <crtc>
      --panning <w>x<h>[+<x>+<y>[/<track:w>x<h>+<x>+<y>[/<border:l>/<t>/<r>/<b>]]]
      --gamma <r>:<g>:<b>
      --brightness <value>
      --primary
  --noprimary
  --newmode <name> <clock MHz>
            <hdisp> <hsync-start> <hsync-end> <htotal>
            <vdisp> <vsync-start> <vsync-end> <vtotal>
            [flags...]
            Valid flags: +HSync -HSync +VSync -VSync
                         +CSync -CSync CSync Interlace DoubleScan
  --rmmode <name>
  --addmode <output> <name>
  --delmode <output> <name>
  --listproviders
  --setprovideroutputsource <prov-xid> <source-xid>
  --setprovideroffloadsink <prov-xid> <sink-xid>
  --listmonitors
  --listactivemonitors
  --setmonitor <name> {auto|<w>/<mmw>x<h>/<mmh>+<x>+<y>} {none|<output>,<output>,...}
  --delmonitor <name>
root@lubancat:~# xrandr
Screen 0: minimum 320 x 200, current 1080 x 1920, maximum 8192 x 8192
DSI-1 connected primary 1080x1920+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1080x1920     60.00*+
root@lubancat:~# xrandr --output DSI-1 --rotate left
xrandr: --rotate: invalid argument 'leftxr'
Try 'xrandr --help' for more information.
root@lubancat:~# xrandr --output DSI-1 --rotate left
[  511.134234] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp0
[  511.177205] [drm:vop2_plane_atomic_check] *ERROR* Cluster0-win0 is invisible(src: pos[0, 0] rect[64 x 64] dst: pos[833, 1856] rect[64 x 64]
[  511.250694] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1080x1920p0, type: 16 for vp0
[  511.251431] dw-mipi-dsi fe060000.dsi: [drm:dw_mipi_dsi_encoder_enable] final DSI-Link bandwidth: 870 x 4 Mbps
root@lubancat:~# 

可以看到屏幕变成了我们想要的横屏
在这里插入图片描述
但是这里发现触摸异常了

鲁班猫触摸异常

这里通过"fire-config"来修改触摸方向:
在这里插入图片描述
在这里插入图片描述
向左旋转90度:
在这里插入图片描述
选择finish推出后可以看到屏幕恢复正常:

鲁班猫触摸正常

屏幕和触摸方向修改永久保存

但是我测试发现这种方式在下次重启的时候又恢复成原来的竖屏了,这里要找到能够保存屏幕设置的方法才行!
按照鲁班猫官方的说法要解决这个问题就是开启一个自启动服务,这个服务去修改屏幕的方向,虽然我觉得这个不是最正宗的办法,后来根据官方的提醒修改"/etc/X11/xorg.conf.d/20-modesetting.conf"文件实现永久修改屏幕和触摸方向,修改后的"20-modesetting.conf"文件如下:

root@lubancat:~# cat /etc/X11/xorg.conf.d/20-modesetting.conf   
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"    "25"

    Option      "NoEDID"         "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" "left"
EndSection

Section "InputClass"
         Identifier "Goodix Capacitive TouchScreen"
         MatchProduct "Goodix Capacitive TouchScreen"
         Option "TransformationMatrix" " 0 -1 1 1 0 0 0 0 1 
EndSection

其中"Monitor"修改了屏幕的方向,"InputClass"修改了触摸的方向,实现效果其实和这两句话一样:

xrandr --output DSI-1 --rotate left
xinput set-prop 9 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1

最终效果如下:

鲁班猫屏幕和触摸永久保存

这里还有一个问题,就是开机的时候log会输出到屏幕上,经过上面的修改后桌面的屏幕是反过来了,但是打印log的时候屏幕还没有反,这里修改"/boot/uEnv/uEnv.txt"文件如下:

uname_r=4.19.232
size=0x1000000
cmdline="earlyprintk console=ttyFIQ0 console=tty1 fbcon=rotate:3 consoleblank=0  
loglevel=7 rootwait rw rootfstype=ext4"

enable_uboot_overlays=1
#overlay_start

#40pin
#dtoverlay=/dtb/overlay/rk3566-lubancat-msata-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-i2c3-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-i2c5-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm8-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm9-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm10-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm11-ir-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm12-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm13-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm13-m1-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm14-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm14-m1-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm15-ir-m0-overlay.dtbo
#dtoverlay=/dtb/overlay/rk356x-lubancat-pwm15-ir-m1-overlay.dtbo
"/boot/uEnv/uEnv.txt" 51L, 2575C written        

这里主要是增加了内容"fbcon=rotate:3"
最终效果如下:

鲁班猫开机log屏幕旋转

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/833042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Docker实现测试部署CI/CD----自由风格的CI操作[中间架构](4)]

10、自由风格的CI操作&#xff08;中间架构&#xff09; 中间架构图 创建web项目 创建一个 web 项目&#xff0c;就使用简单的 spring boot 工程&#xff0c;例如工程名为 hellojks。仅需导 入 spring web 依赖即可。 import org.springframework.web.bind.annotation.GetMapp…

Android性能优化—内存优化

一、App内存组成以及管理 Android 给每个 App 分配一个 VM &#xff0c;让App运行在 dalvik 上&#xff0c;这样即使 App 崩溃也不会影响到系统。系统给 VM 分配了一定的内存大小&#xff0c; App 可以申请使用的内存大小不能超过此硬性逻辑限制&#xff0c;就算物理内存富余&…

WPF中自定义Loading图

纯前端方式&#xff0c;通过动画实现Loading样式&#xff0c;如图所示 <Grid Width"35" Height"35" HorizontalAlignment"Center" VerticalAlignment"Center" Name"Loading"><Grid.Resources><DrawingBrus…

react icon ant简单使用

refer&#xff1a; 文字提示 Tooltip - Ant Design 1.首先保证已经引入了Ant 2.在组件&#xff08;页面&#xff09;引入tooltip import { Form, Tooltip } from antd; 3.在合适的位置使用tooltip&#xff1a; <span>寿命 <Tooltip title"这是寿命的说明&quo…

静/动态网页、Web1.0/2.0、安装tomcat8

一、简述静态网页和动态网页的区别。 静态页面&#xff1a;请求响应信息&#xff0c;发给客户端进行处理&#xff0c;由浏览器进行解析&#xff0c;显示的页面。在网站设计中&#xff0c;纯粹HTML格式的网页&#xff08;可以包含图片、视频JS (前端功能实现&#xff09;、CSS …

app自动化测试

在实习过程中&#xff0c;我接触到了一些SDL安全提测的工作。原来我是学web端渗透比较多的&#xff0c;移动端这块基本没怎么试过手&#xff0c;结果刚开始一直踩坑&#xff0c;连抓包都抓不到(&#xff34;▽&#xff34;)。 下面记录下我遇到的部分问题和解决方法&#xff0c…

uni.chooseLocation 安卓端 无法显示地址列表?

uni.chooseLocation 安卓端 无法显示地址列表&#xff1f; 高德官方申请Android服务平台时&#xff0c;提示填写SHA1值&#xff0c;填写之后发现还是不生效&#xff1f; 这里有个巨坑&#xff0c;如果你真的去填写SHA1值&#xff0c;你会发现地址列表还是不会展示&#xff0c;需…

编写一个最简单的Linux服务端和客户端程序

2023年8月3日&#xff0c;周四下午 这篇文章我从下午开始写了几个小时&#xff0c; 这篇文件基本总结了我今天学到的知识&#xff0c; 在写这篇文章的过程中灵感不断涌现、想明白了很多知识点&#xff0c;非常酣畅淋漓。 什么叫做深度学习&#xff1f;这就是深度学习&#…

仅一个月作品获推荐550.51w,视频号内容创作出现新趋势

7月初&#xff0c;视频号上线直播切片授权功能&#xff0c;创作者经授权可对直播内容进行二次加工上传至短视频平台&#xff0c;对新进入的普通创作者来说&#xff0c;切片授权无疑是一种很好的起号策略&#xff0c;吸引了大量用户。 视频号不断丰富内容生态&#xff0c;大批创…

Flink作业调度的9种状态

1.什么是作业调度 Flink 通过 Task Slots 来定义执行资源。每个 TaskManager 有一到多个 task slot&#xff0c;每个 task slot 可以运行一条由多个并行 task 组成的流水线。 这样一条流水线由多个连续的 task 组成&#xff0c;比如并行度为 n 的 MapFunction 和 并行度为 n 的…

WPF上位机8——C#与MySQL

ADO.NET 数据库连接 数据插入、删除、更改 数据查询 带单个参数 带多个参数 基于特性反射DAO通用操作库 ORM对象关系映射 数据库中表映射为实体类 调用ORM框架中提供的新增方法&#xff1a;构建sql语句 创建枚举 根据枚举类型创建sql语句 调用 实体限定 生成参数列表 生成插入…

【项目 进程13】2.28共享内存(1) 2.29共享内存(2)

文章目录 2.28共享内存&#xff08;1&#xff09;共享内存&#xff08;效率最高&#xff0c;比内存映射更高。因为内存映射还需一个文件做载体&#xff09;共享内存使用步骤共享内存操作函数头文件 2.29共享内存&#xff08;2&#xff09;共享内存相关问题共享内存和内存映射的…

MongoDB文档-基础使用-在客户端(dos窗口)/可视化工具中使用MongoDB基础语句

阿丹&#xff1a; 本文章将描述以及研究mongodb在客户端的基础应用以及在spring-boot中整合使用mongodb来完成基本的数据增删改查。 先放官方的文章 MongoDB CRUD操作 - MongoDB-CN-Manual 本文章分为&#xff1a; 在客户端&#xff08;dos窗口&#xff09;/可视化工具中使用…

工作流管理系统如何提升生产力

工作流管理工具通过提供无缝沟通和简化流程来提高团队的生产力。如果部署得当&#xff0c;工作流管理可以长期获得回报。 以下是工作场所管理系统如何提高员工的生产力&#xff1a; 1、无需更多的状态更新会议 工作流管理系统使您的员工无需跟踪电子邮件和讨论线程来评估项目…

【Pytorch】下载CIFAR10数据集报错: urllib.error.URLError: <urlopen error name: https>

在使用Pytorch 下载CIFAR10的时候&#xff0c;遇到一个报错&#xff0c; 可能是网络特别慢导致的&#xff0c;一般情况下都会遇到这个报错。 解决办法&#xff1a; 1、到官网直接下载这个压缩包&#xff0c;解压。 http://www.cs.utoronto.ca/~kriz/cifar.html 解压后&#x…

一套ai绘图软件教程帮你打开创作新篇章

在一个寂静的艺术工作室里&#xff0c;住着一个渴望成为画家的年轻人&#xff0c;名叫艾米。她梦想能够运用自己的创造力和手艺&#xff0c;创作出令人叹为观止的艺术作品。然而&#xff0c;面对空白的画布&#xff0c;她感到无从下手&#xff0c;不知道该从何处开始。每次她试…

数据可视化(七)常用图表的绘制

1. #seaborn绘制常用图表 #折线图 #replot&#xff08;x&#xff0c;y&#xff0c;kind&#xff0c;data&#xff09; #lineplot&#xff08;x&#xff0c;y&#xff0c;data&#xff09; #直方图 #displot&#xff08;data&#xff0c;rug&#xff09; #条形图 #barplot&…

MONAI的测试与使用(一)

MONAI的测试与使用&#xff08;一&#xff09; 一.Transform 的分类二 普通变换和字典变换的联系与区别三 加载与显示图像 一.Transform 的分类 具体API函数请参考文档&#xff1a;https://docs.monai.io/en/latest/transforms.html 二 普通变换和字典变换的联系与区别 普通变…

DAY2,C高级(shell脚本的使用)

1.今日思维导图&#xff1b; 2.递归实现&#xff0c;输入一个数&#xff0c;输出这个数的每一位&#xff1b; #include<my_head.h>void Output(int num) {if(num 0)return;Output(num/10);printf("%d ",num%10);}int main(int argc, const char *argv[]) {in…

软件测试自动化selenuim的常用方法和属性总结

selenuim其实主要就是使用webdriver实例对象的方法和属性。 常用属性 1 driver.current_url 当前网页的请求地址 2 driver.current_window_handle 句柄&#xff0c;用于页面切换 3 driver.page_source 网页源代码 4 driver.title 网站的title&#xff0c;tab栏上显示的内容…