关于在麒麟系统(KylinOS)(具体为openkylin嵌入式版本,ukui桌面环境,树霉派4B硬件)使用tigervncserver搭建VNC服务器实现远程桌面的踩坑记录——可以登陆但是黑屏问题

一、VNC登陆黑屏现象

随着国产化产品的普及,使用麒麟系统的机会越来越多。尝试在树霉派中安装麒麟系统,最终选择了开源的openkylin嵌入式版。系统安装成功后,由于不想多使用一台显示器,又偶像会使用其图形界面,因此想到搭建VNC服务器实现远程桌面。仍然选择了开源的tigervncserver作为vnc服务端,但根据网上查到的教程搭建好服务器后,最终的现象为:

能够登陆,但始终是黑屏,鼠标指针显示为黑色叉号 ×。

二、踩坑过程

在网上查阅了很多资料,尝试了以下方法:

  1. 配置/boot/firmware/config.txt文件(或SD卡FAT分区config.txt文件);
  2. 配置/usr/share/X11/xorg.conf.d/xorg.conf文件;
  3. 配置~/.vnc/xstartup文件;
  4. 安装虚拟显示器 xserver-xorg-video-dummy;

耗费了大量时间,均未能解决问题。

三、解决方法

重新考虑问题可能的原因,发现当前使用的tigervncserver版本为1.13,所查阅的资料基本是2022年前原创、基于1.10及更早的版本的资料。例如在尝试配置~/.vnc/xstartup文件时会遇到各种报错。进一步分析可能与版本更新有关,遂求助于tigervncserver官网,最终问题得到解决。
关键原因在于:1.13版本的tigervncserver有3个配置文件:

/etc/tigervnc/vncserver-config-defaults
/etc/tigervnc/vncserver-config-mandatory
$HOME/.vnc/config

其中,对于ukui桌面环境,须在$HOME/.vnc/config中进行配置,否则tigervncserver无法获知启动哪个桌面环境。官网原文:

The special option session can be used to control which session type will be started. This should match one of the files in /usr/share/xsessions. E.g. if there is a file called “gnome.desktop”, then “session=gnome” would be set to use that session type.

四、完整过程

1.安装tigervncserver

$ sudo apt install tigervnc-standalone-server tigervnc-tools

2.设置账户vnc登陆的密码

$ vncpasswd

输入并确认密码,该密码为VNC客户端登陆时的密码,可以与系统账户的密码相同,也可不同。
输入并确认密码后提示:
Would you like to enter a view-only password (y/n)?
可根据需要设置,无须设置观察者账户时设置为n。

3.配置桌面环境参数

首先到路径/usr/share/xsessions下查看

$ ls /usr/share/xsessions

openkylin系统的桌面环境为:ukui.desktop。然后配置tigervncserver配置文件

$ echo "session=ukui" > ~/.vnc/config

注意:配置文件建议使用当前账户或拟定用于VNC账户登陆的账户进行操作,避免使用root账户可能导致的权限问题。

4.启动tigervncserver服务器

$ tigervncserver -localhost no :1
#参数说明:
#-localhost no 表示不仅限于本地登陆,即加上此项参数才可以实现远程登陆;
# :1 用于标识当前用户的登陆端口号,冒号后为X,则对应的登陆端口号为IP:5900(默认)+X

注意:使用当前账户或拟定用于VNC账户登陆的账户启动服务器,才能在VNC登陆时使用该账户登陆。慎用root账户。

5.使用vnc客户端登陆服务器

使用任意使用vnc客户端登陆:
服务器IP:5901
输入VNC密码,即可实现远程桌面登陆。

更多推荐