以前使用 buster,安装xrdp后 pi用户xrdp登录正常,
可自从使用了 bullseye系统,pi登录xrdp后,出现黑屏不能登录现象。
网上搜寻解决方案,一种方法是:
找到的另一种方法:使用 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后,界面非常卡! 无法正常使用~~~~~~~~~
(1)自己测试替换x-session-manager:
pi@raspi:~ $ sudo update-alternatives --config x-session-manager
有 4 个候选项可用于替换 x-session-manager (提供 /usr/bin/x-session-manager)。
发现: 将 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 ,测试也不卡断了!! 问题解决~