This setup results in this output from glxinfo -B:
glxinfo
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Microsoft Corporation (0xffffffff)
Device: D3D12 (NVIDIA GeForce RTX 3070 Laptop GPU) (0xffffffff)
Version: 21.0.3
Accelerated: yes
Video memory: 15138MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 3.3
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (NVIDIA GeForce RTX 3070 Laptop GPU)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 21.0.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.1 Mesa 21.0.3
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 21.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00One of these steps is obviously specific to the (Lenovo laptop) hardware it was tested on.
You will need to adapt it to your hardware.
- Create an installer USB stick with Microsoft's media creation tool. Don't use the insider's edition of Windows 11
- Start the Windows install and when shown the question Choose what to keep select Nothing
- After installation, install all Windows updates and restart
- Windows home version doesn't include Bitlocker
- Open https://github.com/microsoft/wslg and install the NVIDIA GPU driver for WSL (get CUDA driver, download GeForce driver)
- Open https://www.lenovo.com/us/en/software/vantage and install Lenovo Vantage and install available updates and reboot if needed.
- Set Windows' timezone
- Install WSL 2
- Open Administrator CMD prompt
wsl --install -d Ubuntu-20.04- Restart Windows, WSL 2 setup continues automatically after restart.
sudo apt update; sudo apt upgrade- Shutdown WSL 2 with
wsl --shutdown - Start WSL 2 again with
bash sudo apt install gedit mesa-utils- Shutdown WSL 2 with
wsl --shutdown - Start WSL 2 again with
bash - Check output of
glxinfo -B
Some extra packages are needed to show the correct output with glxinfo,
those look like they were installed as a dependency of gedit. (perhaps mesa packages)
https://github.com/damiongans/ubuntu-wsl2-systemd-script
Clone that repository on the Windows host side, then change basic.target to multi-user.target in start-systemd-namespace and enter-systemd-namespace.
To enable systemd in WSL 2, run bash ubuntu-wsl2-systemd-script.sh on the Windows host side.
The next time you run bash, it'll show a line about enabling systemd.
After this run sudo systemctl set-default multi-user.target in WSL 2.
Create /etc/rc.local and put the following content in it:
#!/bin/bash
ln -s /mnt/wslg/.X11-unix/X0 /tmp/.X11-unixThen make it executable with chmod +x /etc/rc.local.
Now either run that ln command manually or restart WSL 2 as shown above.
Edit /etc/ssh/sshd_config and set PasswordAuthentication yes.
Enable ssh with "sudo systemctl enable --now ssh".
Now you can install xpra server in WSL 2 and the xpra client on Windows.
You can see the WSL 2 IP address with ip a in WSL 2.