本文介紹Linux系統(tǒng)實(shí)現(xiàn)屏幕角度旋轉(zhuǎn)的方法,以解決不同產(chǎn)品形態(tài)的展現(xiàn)方式,其中Ubuntu、Debian系統(tǒng)可以通過(guò)xrandr工具實(shí)現(xiàn)屏幕旋轉(zhuǎn)。使用觸覺(jué)智能EVB3568鴻蒙開(kāi)發(fā)板演示,搭載瑞芯微RK3568芯片,搭載四核A55處理器,主頻2.0Ghz;1T算力NPU;現(xiàn)已發(fā)布全新OpenHarmony5.0 Release固件。
Linux旋轉(zhuǎn)屏幕的方法
臨時(shí)旋轉(zhuǎn)-通用各Linux發(fā)行版
執(zhí)行xrandr -o normal/inverted/left/right,可以實(shí)現(xiàn)臨時(shí)旋轉(zhuǎn)屏幕方向,命令說(shuō)明:
normal:表示順時(shí)針旋轉(zhuǎn)0度;
right:表示順時(shí)針旋轉(zhuǎn)90度;
inverted:表示順時(shí)針旋轉(zhuǎn)180度;
left:表示順時(shí)針旋轉(zhuǎn)270度;
以inverted命令為例:
linaro@linaro-alip:~$ xrandr -o inverted
永久旋轉(zhuǎn)-適用Ubuntu系統(tǒng)
修改/etc/default/xrandr啟動(dòng)文件,可以實(shí)現(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)
修改啟動(dòng)文件,目錄如下:
/home/linaro/.config/lxsession/LXDE/autostart,將xrandr命令內(nèi)置,實(shí)現(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)屏幕可能遇到的問(wè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選項(xiàng)的作用
Option "FlipFB" "always"含義: 這個(gè)選項(xiàng)控制幀緩存翻轉(zhuǎn)(Framebuffer flipping)。當(dāng)設(shè)置為 "always" 時(shí),它會(huì)強(qiáng)制啟用幀緩存翻轉(zhuǎn)。這種翻轉(zhuǎn)有助于減少圖像撕裂(tearing),但可能會(huì)帶來(lái)性能損失,特別是在需要頻繁更新或大規(guī)模繪制屏幕時(shí)(如旋轉(zhuǎn)時(shí))。
問(wèn)題: 在配置中,F(xiàn)lipFB 設(shè)置為 "always" 可能會(huì)使驅(qū)動(dòng)強(qiáng)制以某種方式處理顯示管線,導(dǎo)致旋轉(zhuǎn)操作無(wú)法順利完成。因?yàn)樾D(zhuǎn)會(huì)大大增加對(duì)顯示內(nèi)存的訪問(wèn)和幀緩存更新需求,而 "always" 可能使得翻轉(zhuǎn)操作與旋轉(zhuǎn)的需求相沖突,從而觸發(fā)了錯(cuò)誤。
Option "FlipFB" "none"含義: 設(shè)置為 "none" 會(huì)禁用幀緩存翻轉(zhuǎn)。這意味著系統(tǒng)不再?lài)L試以特定的方式來(lái)處理翻轉(zhuǎn),減少了額外的操作,從而讓旋轉(zhuǎn)操作變得更加順暢。雖然可能會(huì)導(dǎo)致輕微的屏幕撕裂,但對(duì)于屏幕旋轉(zhuǎn)的需求,這樣的設(shè)置是更合適的。效果: 通過(guò)禁用幀緩存翻轉(zhuǎn),減少了內(nèi)存訪問(wèn)沖突或資源爭(zhēng)用的問(wèn)題,使得旋轉(zhuǎn)功能可以正常工作。
UseGammaLUT選項(xiàng)的作用
Option "UseGammaLUT" "true"含義: 該選項(xiàng)控制是否使用伽瑪查找表(Gamma Look-Up Table,Gamma LUT)。伽瑪校正用于調(diào)整顯示器輸出的亮度或?qū)Ρ榷?,以達(dá)到更好的圖像效果。開(kāi)啟 UseGammaLUT 會(huì)引入額外的圖像處理步驟,特別是在顏色校正方面,它會(huì)影響 GPU 的負(fù)載。問(wèn)題: 雖然伽瑪校正與屏幕旋轉(zhuǎn)本身并無(wú)直接聯(lián)系,但如果開(kāi)啟伽瑪校正會(huì)使得系統(tǒng)需要對(duì)每一幀進(jìn)行額外的顏色調(diào)整,可能會(huì)影響旋轉(zhuǎn)時(shí)的性能表現(xiàn)。如果顯卡驅(qū)動(dòng)或硬件對(duì)伽瑪校正的支持不夠完善,可能會(huì)導(dǎo)致與旋轉(zhuǎn)操作沖突,最終影響到屏幕的更新和顯示。
Option UseGammaLUT "true" 含義: 注釋掉這個(gè)選項(xiàng)會(huì)禁用伽瑪校正,減少系統(tǒng)對(duì)每一幀圖像的處理負(fù)擔(dān)。這對(duì)于需要頻繁更新圖像的操作(如屏幕旋轉(zhuǎn))有益,因?yàn)橄到y(tǒng)的圖像處理變得更輕量化。效果: 通過(guò)禁用伽瑪 LUT,圖像處理變得更加簡(jiǎn)單,使得旋轉(zhuǎn)操作不會(huì)因?yàn)轭~外的顏色處理而受到阻礙。
產(chǎn)品簡(jiǎn)介
觸覺(jué)智能EVB3568鴻蒙開(kāi)發(fā)板是一款基于RK3568開(kāi)發(fā)的鴻蒙開(kāi)發(fā)板/工控主板,適用于各種智慧顯示終端、工業(yè)自動(dòng)化終端和邊緣計(jì)算網(wǎng)關(guān)類(lèi)產(chǎn)品。
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
瑞芯微
+關(guān)注
關(guān)注
23文章
414瀏覽量
51298 -
Linux開(kāi)發(fā)
+關(guān)注
關(guān)注
0文章
33瀏覽量
6903 -
RK3568
+關(guān)注
關(guān)注
4文章
514瀏覽量
5031 -
觸覺(jué)智能
+關(guān)注
關(guān)注
1文章
38瀏覽量
307
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論