加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

如何在Linux系統(tǒng)實現(xiàn)屏幕旋轉(zhuǎn)?觸覺智能RK3568鴻蒙開發(fā)板演示

11/19 10:37
505
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
本文介紹Linux系統(tǒng)實現(xiàn)屏幕角度旋轉(zhuǎn)的方法,以解決不同產(chǎn)品形態(tài)的展現(xiàn)方式,其中Ubuntu、Debian系統(tǒng)可以通過xrandr工具實現(xiàn)屏幕旋轉(zhuǎn)。使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568芯片,搭載四核A55處理器,主頻2.0Ghz;1T算力NPU;現(xiàn)已發(fā)布全新OpenHarmony5.0 Release固件。
Linux旋轉(zhuǎn)屏幕的方法
  • 臨時旋轉(zhuǎn)-通用各Linux發(fā)行版
執(zhí)行xrandr -o normal/inverted/left/right,可以實現(xiàn)臨時旋轉(zhuǎn)屏幕方向,命令說明:
normal:表示順時針旋轉(zhuǎn)0度;
right:表示順時針旋轉(zhuǎn)90度;
inverted:表示順時針旋轉(zhuǎn)180度;
left:表示順時針旋轉(zhuǎn)270度;
以inverted命令為例:
linaro@linaro-alip:~$ xrandr -o inverted
  • 永久旋轉(zhuǎn)-適用Ubuntu系統(tǒng)
修改/etc/default/xrandr啟動文件,可以實現(xiàn)永久旋轉(zhuǎn)。以旋轉(zhuǎn)180度為例,命令如下:
root@ido:~# vi /etc/default/xrandr #!/bin/sh /usr/bin/xrandr -o inverted root@ido:~#永久旋轉(zhuǎn)-適用Debian系統(tǒng)
修改啟動文件,目錄如下:
/home/linaro/.config/lxsession/LXDE/autostart,將xrandr命令內(nèi)置,實現(xiàn)永久旋轉(zhuǎn),主板重啟后依舊生效。以旋轉(zhuǎn)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:~$旋轉(zhuǎn)屏幕可能遇到的問題
  • Debian系統(tǒng)旋轉(zhuǎn)90度和270度失敗
修改以下目錄文件:
/etc/X11/xorg.conf.d/20-modesetting.conf
具體修改如下:
(1)將Option "FlipFB" "always"這段內(nèi)容改為Option "FlipFB" "none"
(2)將Option "UseGammaLUT" "true"這段內(nèi)容改為#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"含義: 這個選項控制幀緩存翻轉(zhuǎn)(Framebuffer flipping)。當設(shè)置為 "always" 時,它會強制啟用幀緩存翻轉(zhuǎn)。這種翻轉(zhuǎn)有助于減少圖像撕裂(tearing),但可能會帶來性能損失,特別是在需要頻繁更新或大規(guī)模繪制屏幕時(如旋轉(zhuǎn)時)。
問題: 在配置中,F(xiàn)lipFB 設(shè)置為 "always" 可能會使驅(qū)動強制以某種方式處理顯示管線,導(dǎo)致旋轉(zhuǎn)操作無法順利完成。因為旋轉(zhuǎn)會大大增加對顯示內(nèi)存的訪問和幀緩存更新需求,而 "always" 可能使得翻轉(zhuǎn)操作與旋轉(zhuǎn)的需求相沖突,從而觸發(fā)了錯誤。
Option "FlipFB" "none"含義: 設(shè)置為 "none" 會禁用幀緩存翻轉(zhuǎn)。這意味著系統(tǒng)不再嘗試以特定的方式來處理翻轉(zhuǎn),減少了額外的操作,從而讓旋轉(zhuǎn)操作變得更加順暢。雖然可能會導(dǎo)致輕微的屏幕撕裂,但對于屏幕旋轉(zhuǎn)的需求,這樣的設(shè)置是更合適的。效果: 通過禁用幀緩存翻轉(zhuǎn),減少了內(nèi)存訪問沖突或資源爭用的問題,使得旋轉(zhuǎn)功能可以正常工作。
  • UseGammaLUT選項的作用
Option "UseGammaLUT" "true"含義: 該選項控制是否使用伽瑪查找表(Gamma Look-Up Table,Gamma LUT)。伽瑪校正用于調(diào)整顯示器輸出的亮度或?qū)Ρ榷?,以達到更好的圖像效果。開啟 UseGammaLUT 會引入額外的圖像處理步驟,特別是在顏色校正方面,它會影響 GPU 的負載。問題: 雖然伽瑪校正與屏幕旋轉(zhuǎn)本身并無直接聯(lián)系,但如果開啟伽瑪校正會使得系統(tǒng)需要對每一幀進行額外的顏色調(diào)整,可能會影響旋轉(zhuǎn)時的性能表現(xiàn)。如果顯卡驅(qū)動或硬件對伽瑪校正的支持不夠完善,可能會導(dǎo)致與旋轉(zhuǎn)操作沖突,最終影響到屏幕的更新和顯示。
Option UseGammaLUT "true" 含義: 注釋掉這個選項會禁用伽瑪校正,減少系統(tǒng)對每一幀圖像的處理負擔。這對于需要頻繁更新圖像的操作(如屏幕旋轉(zhuǎn))有益,因為系統(tǒng)的圖像處理變得更輕量化。效果: 通過禁用伽瑪 LUT,圖像處理變得更加簡單,使得旋轉(zhuǎn)操作不會因為額外的顏色處理而受到阻礙。
?
產(chǎn)品簡介
觸覺智能EVB3568鴻蒙開發(fā)板是一款基于RK3568開發(fā)的鴻蒙開發(fā)板/工控主板,適用于各種智慧顯示終端、工業(yè)自動化終端和邊緣計算網(wǎng)關(guān)類產(chǎn)品。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜