本文针对的是 WSL2,如果你的 WSL 版本为 1 的话,那么本文就不适用于你的系统。如果想要配置图形用户界面桌面,必须要将 Linux 发行版所在的 WSL 版本转换为 2。
关于安装 ubuntu 18.04 的文章在这里: WSL2 下 Ubuntu 18.04 安装配置和使用 Gnome 桌面
本人建议使用 XDMCP 替代 VNC 方式来登录 Ubuntu 桌面,原因是使用 VNC 会出现屏幕分辨率问题,不是太大就是太小,很难设置到适配宿主机屏幕的分辨率,然而 XDMCP 正好解决这个问题。在这里两种方式都有介绍。
2020-09-02 更新:可以通过修改 /usr/bin/Xorg
文件来使得 VNC 登录后的图形界面匹配主机分辨率,至于怎样配置,请看本文后面的介绍。
2021-04-08 更新:因为之前 SystemD-Genie 的安装方式失效,现添加新的安装方式。
更新系统
sudo apt-get update
sudo apt-get upgrade -y
安装 Gnome 桌面的必要元素
sudo apt-get install tasksel -y
sudo tasksel
# 选择 “Ubuntu Desktop”
# 然后用 Tab 键选择 “OK”,回车确定
# 接着就是等待,如果突然退出,遇到 “tasksel: apt-get failed (100)”
# 这时要重新运行上面最后一条命令,并且重新选择 “Ubuntu Desktop”
# 安装完成会出现 “xserver-xorg install”
安装 VNC 服务器端软件
sudo apt-get install -y tigervnc-standalone-server
安装 DotNet
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-runtime-3.1
安装配置 LightDM
安装 LightDM
sudo apt-get install -y lightdm
选择 GDM,还是 LightDM
这里建议选择 LightDM
sudo dpkg-reconfigure lightdm
配置 XVnc
设置 VNC 登录密码
# 以下都不用设置 “view-only password”,直接选择 “n”
# 为你的一般用户设置
vncpasswd
# 为你的 root 用户设置
sudo vncpasswd
# 如果窗口管理器选择的是 GDM
sudo -u gdm vncpasswd
## 如果选择的是 LightDM
sudo -u lightdm vncpasswd
替换原来的 X Server
sudo mv /usr/bin/Xorg /usr/bin/Xorg_old
sudo vim /usr/bin/Xorg
键入以下内容到 Xorg 文件:
#!/bin/bash
for arg do
shift
case $arg in
# Xvnc doesn't support vtxx argument. So we convert to ttyxx instead
vt*)
set -- "$@" "${arg//vt/tty}"
;;
# -keeptty is not supported at all by Xvnc
-keeptty)
;;
# -novtswitch is not supported at all by Xvnc
-novtswitch)
;;
# other arguments are kept intact
*)
set -- "$@" "$arg"
;;
esac
done
# Here you can change or add options to fit your needs
## command=("/usr/bin/Xvnc" "-geometry" "2736x1824" "-PasswordFile" "${HOME:-/root}/.vnc/passwd" "$@")
# Because my host monitor resolution matches 1440x860
command=("/usr/bin/Xvnc" "-geometry" "1440x860" "-PasswordFile" "${HOME:-/root}/.vnc/passwd" "$@")
systemd-cat -t /usr/bin/Xorg echo "Starting Xvnc:" "${command[@]}"
exec "${command[@]}"
更改 Xorg
文件的文件权限属性
sudo chmod 0755 /usr/bin/Xorg
安装 Systemd-Genie
## curl -s https://packagecloud.io/install/repositories/arkane-systems/wsl-translinux/script.deb.sh | sudo bash
## sudo apt-get install -y systemd-genie
# 如果上面的下载地址失效,那么就要到以下的地点获取安装方式:
# 可能要科学上网,如果接下来的方式失效,则以下面这个网址的访问内容为准
# https://gist.github.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950
# 依次运行以下命令
cd /tmp
wget --content-disposition "https://gist.githubusercontent.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950/raw/46085955818d83b483fd62c65383a7f8dda84f5f/install-sg.sh"
chmod +x /tmp/install-sg.sh
/tmp/install-sg.sh && rm -f /tmp/install-sg.sh
# 进行下一步需要退出 WSL 的命令行(即在 Windows 终端运行)
wsl --shutdown
# 再次进入 Ubuntu 终端
调整 SystemD-Genie for Ubuntu
sudo mkdir /usr/lib/genie/
sudo vim /usr/lib/genie/deviated-preverts.conf
键入以下内容:
{
"daemonize": "/usr/bin/daemonize"
}
启动 SystemD-Genie
启动 SystemD-Genie 只需要一行命令
genie -s
# 证明 SystemD-Genie 正常运行
sudo systemctl status time-sync.target
现在就可以通过 VNC 客户端软件访问 Ubuntu 20.04 图形界面了。
在 WSL Ubuntu 中可以通过 hostname -I | awk '{print $1}'
命令获取 Ubuntu 的 IP 地址。
Windows 下的免费 VNC 软件:https://www.uvnc.com/downloads/ultravnc.html 。用迅雷下载会快很多。
安装好 UltraVNC 后,在 “开始” 菜单启动 “UltraVNC Viewer”,然后输入 WSL Ubuntu 的 IP 地址,连接成功后输入上面 “vncpasswd” 命令所设置的密码,即可登录 上 VNC 。
通过 Windows 的 X-Windows 服务端软件登录 WSL Ubuntu
配置 LightDM,使之使用 XDMCP 替代 VNC 方式登录图形界面
sudo vim /etc/lightdm/lightdm.conf
文件不存在会创建新文件。输入以下内容:
[LightDM]
start-default-seat=false
[XDMCPServer]
enabled=true
port=177
重启 LightDM,此步骤只在运行 genie -s
时有效。。
sudo service lightdm restart
如果没有运行 genie -s
,那么就要重启 WSL Ubuntu 20.04 ,从而使配置生效:
如果想要重新启用 VNC,只须把 /etc/lightdm/lightdm.conf
文件中的下面两行注释掉,然后重启 LightDM 。
#[LightDM]
#start-default-seat=false
在 Windows 的终端上运行 wsl.exe -t Ubuntu-20.04
,然后运行 ubuntu2004.exe
下载并安装基于 Windows 的 X-server 服务端软件 “VcXsrv Windows X Server”
到 https://sourceforge.net/projects/vcxsrv/ 这里下载,建议用迅雷下载。
VcXsrv 的使用
VcXsrv 连接 Ubuntu 之前
在 WSL Ubuntu 命令行下运行 genie -s
。
连接
打开 “开始” 菜单,然后选择 “XLaunch”。
- 步骤一,运行 “XLaunch” ,得到一个窗口界面,选择右下角,也就是 “One window without titlebar” ,然后点击 “下一步”。
-
步骤二,选择 “Open session via XDMCP” , 然后点击 “下一步”。
-
步骤三,在 “Connect to host” 输入框中输入 WSL Ubuntu 的 IP 地址,然后点击 “下一步”。
-
步骤四,选择 “Clipboard” 和 “Disable access control” ,同时取消选择 “Native opengl”。然后点击 “下一步”。
-
步骤五,点击 “完成”。
-
步骤六,如果 “VcXsrv” 是第一次连网,那么就会弹出 Windows 防火墙选择,通常需要既选择 “专用网络” (private),也要选择 “公用网络” (public) 。然后点击 “允许访问” 。
然后就可以见到 Ubuntu 20.04 的登录界面了。输入系统用户密码便可登录系统。
退出 WSL 的图形用户界面
从 Ubuntu 20.04 注销,然后直接关闭退出 “XLaunch“ 。
完成。
本文是基于 https://most-useful.com/ubuntu-20-04-desktop-gui-on-wsl-2-on-surface-pro-4/ 这篇文章作为参考而成,如果有侵权冒犯,在此表示歉意,还请作者联系本人。联系方式: admin@chengxuzhilu.com 。
This post references to https://most-useful.com/ubuntu-20-04-desktop-gui-on-wsl-2-on-surface-pro-4/ , If there is infringement offense, I will apologies for it, please contact me: admin@chengxuzhilu.com .
Created On: 2020-08-30
相关文章:
- [Windows10] WSL2 下 Ubuntu 18.04 安装配置和使用 Gnome 桌面
- Ubuntu20.04 安装系统资源监视器 SysMonTask
- Ubuntu 18.04 上安装微信(Deepin-Wechat)
- Ubuntu 16.04 LTS 安装有道词典
- 解决 Ubuntu 20.04 微信中文乱码问题( Deepin-Wechat)
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@chengxuzhilu.com