【填坑】树莓派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 ,测试也不卡断了!! 问题解决~


posted @ 2022-04-17 03:20  zhw618  阅读(927)  评论(0编辑  收藏  举报