以前使用 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 ,测试也不卡断了!! 问题解决~


【填坑】树莓派4B上运行Bullseye版本系统,不能登录xrdp的问题~~的更多相关文章

  1. 2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐

    原文:2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐 image Raspberry Pi** 是一款基于 ARM 的单板计算机,默认运行一款称为 Raspbian ...

  2. Raspberry Pi(树莓派)上从零开始构建Linux系统(简称PiLFS)(一)

    一. 准备工作 1. 装有Linux宿主系统的树莓派主板,可参考 Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器) 2. 参考网址:Linux From Scratch ...

  3. 树莓派3B+上运行.Net Core项目

    最近买了个树莓派3B+,准备把自己写的一个.Net Core爬虫挂在上面跑 买之前没有想到树莓派因为是今年新出的,导致驱动以及系统啥的都不是很完善,导致走了很多弯路,早知道买树莓派3就不用那么多折腾了 ...

  4. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)

    前言   安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...

  5. 填坑!线上Presto查询Hudi表异常排查

    1. 引入 线上用户反馈使用Presto查询Hudi表出现错误,而将Hudi表的文件单独创建parquet类型表时查询无任何问题,关键报错信息如下 40931f6e-3422-4ffd-a692-6c ...

  6. 【待填坑】bzoj上WC的题解

    之前在bzoj上做了几道WC的题目,现在整理一下 bzoj2115 去膜拜莫队的<高斯消元解xor方程组> bzoj2597 LCT维护MST bzoj1758 分数规划+树分治+单调队列 ...

  7. 在树莓派4b上安装 ROS MELODIC 源码安装

    按照以下步骤照做就可以了,很简单的,就是浪费一点点时间罢了.也可以退而求其次,买个树莓派3B+来玩,哈哈. Step 1: Install Dependecies and Download the P ...

  8. VS2008生成的程序无法在其它电脑上运行,提示系统无法执行指定的程序

    经过一番查找,最给力的参考是 http://www.cnblogs.com/visoeclipse/archive/2010/02/27/1674866.html ------------------ ...

  9. Zynq7000开发系列-7(在Zybo上运行Linaro桌面系统)

    目标板:Zybo(7Z010) 主机操作系统:Ubuntu 14.04.5 LTS 64bit 交叉编译链: arm-xilinx-linux-gnueabi-       [gcc version ...

随机推荐

  1. 基于C++11的线程池实现

    1.线程池 1.1 线程池是什么? 一种线程管理方式. 1.2 为什么用线程池? 线程的创建和销毁都需要消耗系统开销,当线程数量过多,系统开销过大,就会影响缓存局部性和整体性能.而线程池能够在充分利用 ...

  2. Arthas常用功能及一次线上问题排查

    一.Arthas简介 Arthas是Alibaba开源的Java诊断工具,功能很强大,它是通过Agent方式来连接运行的Java进程.主要通过交互式来完成功能. https://arthas.aliy ...

  3. mysql Bad handshake

    由于 Java 程序访问 MySQL 时,MySQL 抛出 Bad handshake 错误,导致接口抛错,然后在 MySQL 配置文件新增 skip_ssl 配置(忽略 SSL 密钥和证书文件),重 ...

  4. scanf("%d",a[i]+j)为什么不加取地址符号

    为什么我画的地方不加取地址符号? 不要在意标题为什么不加分号,因为长度太长了! 二维数组a[3][5]中,a[3]储存的是下一维的地址,a[1]等同于&a[1][0] 同理,a[1]+1等于& ...

  5. linux篇-新建svn仓库

    1昨天需要在服务器上新建一个仓库,解决方法是把已有的仓库拷贝出来,库删除在放进去 2然后今天想看看有没有命令的方法 find / -name project 首先查看一下项目的位置 3创建仓库 svn ...

  6. 基于 BaGet 搭建 Nuget 服务器

    1 前言 1.1 BaGet 介绍 BaGet 是一个轻量级的,开源的,跨平台的 Nuget 和 symbol 服务器. 1.2 环境介绍 操作系统:CentOS 7 使用 Docker 安装 2 安 ...

  7. Hbase——API操作

    1.判断表是否存在 public static boolean isTableExit(String tableName) throws IOException { // //获取配置文件信息 // ...

  8. Kitex源码阅读——脚手架代码是如何通过命令行生成的(一)

    前言 Kitex是字节跳动内部的Golang微服务RPC框架,先已开源. Kitex文档:https://www.cloudwego.io/zh/docs/kitex/getting-started/ ...

  9. 拥有webkit内核浏览器的平台

    1-拥有webkit内核的浏览器: IOS safari Android 的浏览器 Google chrome 猎豹浏览器 百度浏览器 Opera 以上可知手机的浏览器均为webkit内核 2-拥有其 ...

  10. .NET C#基础(7):接口 - 人如何和猫互动

    0. 文章目的   面向有一定基础的C#初学者,介绍C#中接口的意义.使用以及特点. 1. 阅读基础   了解C#基本语法(如定义一个类.继承一个类)   理解OOP中的基本概念(如继承,多态) 2. ...