ubuntu 18.04 desktop不接显示器开启 vnc 服务
Ubuntu 下如果没有接入显示器,vnc 会无法正常工作,所以需要做一些额外的操作来处理。
配置 vino
Ubuntu使用vino来作为默认的vnc服务器,但是默认的设置需要进行一些修改,特别是require-encryption
这个标志,macos自带的vnc客户的不支持它的加密方式。
gsettings set org.gnome.Vino require-encryption false |
需要注意的是,不要用sudo
来运行上面的命令,否则不但在ssh客户的操作时会有警告,而且修改的也不是当前的配置。
自动启动 vino server
随用户登录后,自动启动 vino server。编辑一个 vino-server.desktop 文件,如果 autostart 目录不存在,就创建一个。
sudo vim ~/.config/autostart/vino-server.desktop |
填入如下内容:
[Desktop Entry] |
vino-server 不能在 console 中运行,所以需要在用户登录到桌面后用这样的方式自动启动。
安装 video-dummy
sudo apt install xserver-xorg-video-dummy |
配置 dummy 显示器
在/etc/X11
下创建 xorg.conf 文件,填写分辨率等信息
sudo vim /etc/X11/xorg.conf |
填写如下内容:
Section "Monitor" |
配置用户自动登录桌面
查看当前用的是什么管理器:
cat /etc/X11/default-display-manager |
我的是/usr/sbin/gdm3
,那么编辑文件:
sudo vim /etc/gdm3/custom.conf |
把下面三行的注释去掉,其中AutomaticLogin
行修改成自己的用户名。
WaylandEnable=false |
重启电脑,就可以登录了。
重启桌面
我通过 macos 的 Screen Sharing.app
用 vnc 协议来连接,查看 Ubuntu 的 Settings 的时候每次都会 crash,据说是 nvidia 的驱动问题,但是我没有深究,有兴趣的可以研究。
crash 后,vino-server 就退出了,要再次启动的话,需要重启桌面管理。Ubuntu 18.04下,只需要运行:
sudo systemctl restart display-manager |
问题
这样配置后,如果再次接上显示器后,显示器会黑屏,这时候,需要把/etc/X11/xorg.conf
删除或者改名,比如改成/etc/X11/xorg.conf.dummy
,然后重启显示管理器:
sudo systemctl restart display-manager |
即可。