【填坑】樹莓派4B上運行Bullseye版本系統,不能登錄xrdp的問題~~


以前使用 buster,安裝xrdp后 pi用戶xrdp登錄正常,
可自從使用了 bullseye系統,pi登錄xrdp后,出現黑屏不能登錄現象。

網上搜尋解決方案,一種方法是:

  1. 登錄樹莓派后,打開這個文件:/etc/X11/xrdp/xorg.conf
  2. 在文件中找到:Option "DRMDevice" "/dev/dri/renderD128"
  3. 將上述這一行注釋掉,增加:Option "DRMDevice" ""
  4. 保存后重新啟動
    此方法測試后:確實pi用戶能rdp登錄到桌面了。但是,但是,沒有了圖形驅動性能差,非常卡頓~~

找到的另一種方法:使用 adduser 命令新建一個用戶,使用新賬戶來rdp登錄。
測試后:可以登錄到桌面,但同樣出現卡頓現象。

################################### 直接給出結果 ###########################################
經過各種測試填坑,找到了相對能接受的方法:
(1)新建用戶,並用此用戶rdp登錄;(解決黑屏,無法登錄到desktop的問題)
(2)編輯腳本 /usr/bin/startlxde-pi 的內容,更改第44行:(解決卡頓問題)
exec /usr/bin/lxsession -s LXDE-pi -e LXDE
在其末尾加上參數,最終內容改為與53行(倒數第2行)一樣:
exec /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi

############################### 以下填坑具體過程,可略過 #####################################

Raspberry OS 的 Bullseys版本,安裝xrdp后使用pi用戶登錄,出現黑屏問題。

===============================================
找遍解決方法,在這里找到討論:https://github.com/neutrinolabs/xrdp/issues/2060
其中,shixudong2020 commented on 4 Dec 2021 解釋了為何新建用戶可以登錄:

new user or pi(disable autologin) can xrdp to pi4(bullseye),because they not have privilege to open the DRI device /dev/dri/renderD128,so glamor module inactive. When pi autologin graphical console,it occupy seat0,according /lib/udev/rules.d/70-uaccess.rules, active seat0 user pi have privilege to open the DRI device /dev/dri/renderD128.
it no matter login twice with the same account using xrdp on pi4(bullseye).
for example, if add new user to group render to have privilege to open the DRI device /dev/dri/renderD128,new user will can not xrdp to pi4(bullseye).

經測試,adduser zhw后,zhw不能加入到 render組中(編輯/etc/groups文件),否則跟pi一樣不能登錄,
都是訪問 renderD128 驅動的權限造成的!!

解決登錄問題: 新建新用戶來xrdp登錄,不能加入render組!!!!!

===========================================================
但是又出現新問題: 登錄xrdp后,界面非常卡! 無法正常使用~~~~~~~~~

Edit /etc/X11/xrdp/xorg.conf and set Option "DRMDevice" "". This disables glamor for xrdp session only.
這種解決方法同樣有卡頓的問題!!

解決新用戶rdp登陸后卡頓的問題: marcomto commented on 29 Nov 2021 這個帖子非常有用!

(1)自己測試替換x-session-manager:

pi@raspi:~ $ sudo update-alternatives --config x-session-manager
有 4 個候選項可用於替換 x-session-manager (提供 /usr/bin/x-session-manager)。

選擇 路徑 優先級 狀態

  • 0 /usr/bin/startlxde-pi 90 自動模式
    1 /usr/bin/lxsession 49 手動模式
    2 /usr/bin/openbox-session 40 手動模式
    3 /usr/bin/startlxde 50 手動模式
    4 /usr/bin/startlxde-pi 90 手動模式

要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號: 3

發現: 將 x-session-manager 替換為3,則登錄后不卡頓! 但是界面不一樣了。
結論: 缺省的 XSession 腳本肯定有問題,修改后應該可以也不卡頓。

(2)編輯 缺省腳本 /usr/bin/startlxde-pi 的內容

  發現其中會根據內存大小來選擇執行: 當內存>2G時啟動的邏輯A, 跟內存<2G時的邏輯B不同!
  代碼行: if [ $TOTAL_MEM -ge 2048 ] && [ -f /usr/bin/mutter ] && [ -z "$VNC" ] ; then
                           .........
                           exec /usr/bin/lxsession -s LXDE-pi -e LXDE
                 else
                           .........
                            exec /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi
                 fi

   測試把 2048 改成8G,強制運行“邏輯B”,發現不卡頓!!很好~~~~
   再比較兩個邏輯,最后一句,一個帶 -w openbox-lxde-pi 參數不卡頓,另一個不帶參數卡頓。

########實驗:將邏輯A 也帶參數 -w openbox-lxde-pi ,測試也不卡斷了!! 問題解決~



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM