当前位置: 代码网 > it编程>编程语言>Java > 树莓派4B远程桌面连接常见问题及解决方案:无外接屏幕情况下远程桌面不显示、vnc/向日葵无法连接ubuntu wayland桌面等

树莓派4B远程桌面连接常见问题及解决方案:无外接屏幕情况下远程桌面不显示、vnc/向日葵无法连接ubuntu wayland桌面等

2024年08月02日 Java 我要评论
背景:在树莓派上进行开发,需要连接屏幕、键盘、鼠标,部署麻烦、占地方不方便。通过ssh+远程桌面(如用于UI相关效果展示)的方式开发更加便利,SSH基本上都没问题,大家遇到问题比较多的是诸如是否需要外接屏幕、远程桌面无法连接、连接上黑屏。本文说下遇到的一些问题及解决方案,不一定是最优的方案,但能解决我的需求的方案就是好方案。


背景:在树莓派上进行开发,需要连接屏幕、键盘、鼠标,部署麻烦、占地方不方便。通过ssh+远程桌面(如用于ui相关效果展示)的方式开发更加便利,ssh基本上都没问题,大家遇到问题比较多的是诸如是否需要外接屏幕、远程桌面无法连接、连接上黑屏。本文说下遇到的一些问题及解决方案。

测试环境:树莓派4b + ubuntu22.04 desktop 64bit
目标:通过realvnc或者向日葵连接<树莓派4b + ubuntu22.04>远程桌面

1. 树莓派4b + ubuntu22.04 + 接dsi/hdmi显示屏场景下,vnc或者向日葵无法连接远程桌面问题

通过raspberry pi imager安装ubuntu22.04 desktop 64bit,完成向导设置后。先装上openssh,realvnc-server, 向日葵arm kylin版。

1.1 openssh-server安装

sudo apt install openssh-server

1.2 realvnc server安装

可以从官网下载:

ssh连接树莓派后执行:

sudo dpkg --install  <vnc-server-xxx-linux-arm64.deb>

注意安装界面提示,根据指令设置下vnc server开机启动。

可以通过ps -e | grep vnc查看服务是否起来。
在这里插入图片描述

1.3 向日葵安装

官网下载kylin arm64版本:

安装:

sudo dpkg --install  <sunloginclient_xxx_kylin_arm.deb>

向日葵可以在外网访问局域网设备,vnc主要局域网内用,感觉更流畅些。先接上键鼠,配置好向日葵,或者等vnc远程桌面搞好来,用vnc远程桌面来配置。
在这里插入图片描述

1.4 连接失败问题现象

pc上安装realvnc viewer,通过 <树莓派ip>:5900连接远程桌面。会一直卡在连接界面
在这里插入图片描述

向日葵连接也是一样,卡在连接界面。
在这里插入图片描述

1.5 原因与解决方案

至于原因,需要提到linux 系统上两种常用的图形显示服务器协议,xorg 和 wayland。

就是目前wayland对远程桌面支持不好,realvnc和向日葵不支持wayland协议,realvnc和向日葵,只有切回xorg。
(wayvnc可支持wayland,想用的可以尝试下: https://shumeipai.nxez.com/2023/12/05/bookworm-the-new-version-of-raspberry-pi-os.html)

查看下图此处为x11,说明切换成功,原本显示是wayland
在这里插入图片描述

这个时候就可以通过vnc和向日葵连接成功。

2. 树莓派4b + ubuntu22.04 + 不接dsi/hdmi显示屏场景下,vnc或者向日葵连接远程桌面显示黑屏问题

解决完上述wayland显示系统导致的vnc无法连接问题后,另外一种场景就是不接屏幕(dsi或者hdmi屏幕),vnc可以连接成功但是显示黑屏。

通常两种解决方案:

方案1:hdmi显卡欺骗器

第一种方法是买个hdmi显卡欺骗器怼上,好不好用不知道,没试过。网友说行那就是行。
在这里插入图片描述

方案2:添加虚拟显示器

第二种方法是添加虚拟显示器
在/usr/share/x11/xorg.conf.d/创建xorg.conf文件,添加如下内容,保存后重启。

section "device"
	identifier  "configured video device"
	driver      "dummy"
	videoram 256000
endsection

section "monitor"
	identifier  "configured monitor"
	horizsync 5.0 - 1000.0
	vertrefresh 5.0 - 200.0
	modeline "1920x1080" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
endsection

section "screen"
	identifier  "default screen"
	monitor     "configured monitor"
	device      "configured video device"
	defaultdepth 24
	subsection "display"
	depth 24
	modes "1920x1080" "1440x900" "1280x800" "1024x768"
	endsubsection
endsection

重启后即可在无外接屏幕情况下,显示远程桌面。查看显示器,这里显示"unknown display", 分辨率我们设置最大是1080p了,想上4k,可以xorg.conf配置下,不过觉得没太大必要,分辨率过高,感觉会卡。
在这里插入图片描述

备注1:
对于原生的树莓派系统,通常执行以下操作即可。

sudo vi /boot/config.txt
找到#hdmi_force_hotplug=1,把前面的#号去掉重启

对于ubuntu22.04,/boot/fireware/config.txt没有这些属性, 有说把自行加上这两行,不过试了不加也没啥问题。

hdmi_force_hotplug=1
hdmi_safe=1

备注2:
加了虚拟显示屏后,再接dsi显示屏开机,从开机到登录界面都正常,进入桌面后整个屏幕灰屏了。估计虚拟显示屏哪里配置需要调整,还没时间研究。不过问题也不大,不影响我的使用场景。

备注3:
xorg和wayland切换也可以在登录界面选择,如下图,但是ubuntu22.04这个设置图标默认没有。

试了卸载gdm3后重装,图标可以出现,但是重启几次,设置图标又没有了,没有细究,大家还是直接改配置文件吧。

sudo apt purge gdm3
sudo apt install gdm3
sudo reboot

在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com