Documentation for 2023.2 can be changed permanently at the moment.
With the current status documentation, everything can be created and used under WSL but 2023.2 under WSL2 is currently being evaluated.

[wsl2]
memory=<size>GB
processors=<cnt>
Mount external ext4 drive (optional)
Show drives on powershell: GET-CimInstance -query "SELECT * from Win32_DiskDrive"
sudo apt-get install firefox
change console from dash to bash
sudo dpkg-reconfigure dash
Enable i386 architecture
sudo apt-get updateDownload and run plnx-env-setup.sh(optional, not longer recommended from AMD): https://www.xilinx.com/support/answers/73296.html
sudo ./plnx-env-setup.sh
Install packages(see https://support.xilinx.com/s/article/000035572?language=en_US → PetaLinux_2023.2_OS_Package_List.xlsx)
Note:
From excel additional to python3 also python was recommended which is not longer possible to install
sudo apt-get install iproute2 gawk python3 build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint bc libtinfo5 subversion u-boot-tools -y
sudo chown <owner>:<owner> /tools/Xilinx
Install Vitis
run:$ ./xsetup
#...
#(original part)
#...
#all extensions to setup environment and
# load petalinux environment, can be overwrite via project scripts
export LM_LICENSE_FILE=<path to license file>
export GLOBAL_VIVADO=2023.2
source /tools/Xilinx/PetaLinux/${GLOBAL_VIVADO}/tool/settings.sh
# additional TE environment variables to change timeout and used jobs
# additional TE envirnmoent variables
export TE_TIMEOUT=200
export TE_RUNNING_JOBS=16
export TE_WSL_USAGE=1
export TE_EDITOR=notepad++.exe
#export TE_SERIAL_PS=<path>
export TE_COM=/mnt/<path to putty on winOS>
export TE_PLX_SSTATE_CACHE_DOWNLOAD=~/design/sstate-cache/downloads_${GLOBAL_VIVADO}/downloads
export TE_PLX_SSTATE_CACHE_AARCH64=~/design/sstate-cache/sstate_aarch64_${GLOBAL_VIVADO}/aarch64
export TE_PLX_SSTATE_CACHE_ARM=~/design/sstate-cache/sstate_arm_${GLOBAL_VIVADO}/arm
export TE_PLX_SSTATE_CACHE_MB_FULL=~/design/sstate-cache/sstate_mb-full_${GLOBAL_VIVADO}/mb-full
# finish
echo "TE Enviroment Variables"
echo "TE_TIMEOUT=${TE_TIMEOUT}"
echo "TE_RUNNING_JOBS=${TE_RUNNING_JOBS}"
echo "TE_WSL_USAGE=${TE_WSL_USAGE}"
echo "TE_EDITOR=${TE_EDITOR}"
echo "TE_SERIAL_PS=${TE_SERIAL_PS}"
echo "TE_COM=${TE_COM}"
echo "TE_PLX_SSTATE_CACHE_DOWNLOAD=${TE_PLX_SSTATE_CACHE_DOWNLOAD}"
echo "TE_PLX_SSTATE_CACHE_AARCH64=${TE_PLX_SSTATE_CACHE_AARCH64}"
echo "TE_PLX_SSTATE_CACHE_ARM=${TE_PLX_SSTATE_CACHE_ARM}"
echo "TE_PLX_SSTATE_CACHE_MB_FULL=${TE_PLX_SSTATE_CACHE_MB_FULL}" # finish
function x_run () {
sudo ip link add bond0 type bond
# replace xx:xx:xx:xx:xx:xx with win 10 MAC
sudo ip link set dev bond0 address xx:xx:xx:xx:xx:xx
}
# xSetup only needed in case wsl is rebooted
echo "Refresh XSetup? y/N"
read xsetup
if [ "${xsetup}" == "y" ]; then x_run; fi
#show version
lsb_release -a
#Sometimes Vmmem did not release DDR memory # ############### #Solution 1: # ####### #shutdown (close all running application before) wsl --shutdown #start WSL again wsl #Solution 2: #todo
# Resize VHD
# ###############
# see: https://docs.microsoft.com/en-us/windows/wsl/vhd-size
#
#1 open powershell as admin
#Terminate WSL
wsl --shutdown
# https://learn.microsoft.com/en-us/windows/wsl/disk-space#how-to-locate-the-vhdx-file-and-disk-path-for-your-linux-distribution
#find your distribution installation.
#replace <distribution-name> with your Ubuntu Version, for example Ubuntu-22.04
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
#Copy the path to that file, it should look something like %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxx\LocalState\ext4.vhdx
# This path will be called "<pathToVHD>" below
# -------------------------#start diskpartdiskpart# ----------
diskpart
#inside diskpart console
#select disk
DISKPART> Select vdisk file="<pathToVHD>"
#check details
DISKPART> detail vdisk
#(optional) shrink size
DISKPART> compact vdisk
#expand for example to 512GB <sizeInMegaBytes>=512000
#Note: WSL2 and Ubuntu 22.04 has default maximum size from harddisk
DISKPART> expand vdisk maximum=512000
#exit
DISKPART> exit
# ----------
#start WSL from powershell
sudo mount -t devtmpfs none /dev
# "/dev: none already mounted on /dev." warning can be ignored
mount | grep ext4
#resize fs to 512GB <sizeInMegaBytes>=512000M
sudo resize2fs /dev/sdb 512000M
#change manually with sudo dpkg-reconfigure locales
Table of contents


VCXsrv is not longer needed with newest WSL und Ubuntu 22.04



sudo apt install build-essential
sudo apt install net-tools
export DISPLAY=<host IP>:0.0
export LIBGL_ALWAYS_INDIRECT=1
Currently not tested with newest WSL und Ubuntu 22.04

#...
#(original part)
#...
#all extensions to setup environment and
# load petalinux environment, can be overwrite via project scripts
export GLOBAL_VIVADO=2021.2
source /tools/Xilinx/PetaLinux/${GLOBAL_VIVADO}/tool/settings.sh
# additional TE environment variables to change timeout and used jobs
# additional TE envirnmoent variables
export TE_TIMEOUT=200
export TE_RUNNING_JOBS=16
export TE_WSL_USAGE=1
export TE_EDITOR=notepad++.exe
#export TE_SERIAL_PS=<path>
export TE_COM=/mnt/<path to putty on winOS>
export TE_PLX_SSTATE_CACHE_DOWNLOAD=~/design/sstate-cache/downloads_${GLOBAL_VIVADO}/downloads
export TE_PLX_SSTATE_CACHE_AARCH64=~/design/sstate-cache/sstate_aarch64_${GLOBAL_VIVADO}/aarch64
export TE_PLX_SSTATE_CACHE_ARM=~/design/sstate-cache/sstate_arm_${GLOBAL_VIVADO}/arm
export TE_PLX_SSTATE_CACHE_MB_FULL=~/design/sstate-cache/sstate_mb-full_${GLOBAL_VIVADO}/mb-full
# finish
echo "TE Enviroment Variables"
echo "TE_TIMEOUT=${TE_TIMEOUT}"
echo "TE_RUNNING_JOBS=${TE_RUNNING_JOBS}"
echo "TE_WSL_USAGE=${TE_WSL_USAGE}"
echo "TE_EDITOR=${TE_EDITOR}"
echo "TE_SERIAL_PS=${TE_SERIAL_PS}"
echo "TE_COM=${TE_COM}"
echo "TE_PLX_SSTATE_CACHE_DOWNLOAD=${TE_PLX_SSTATE_CACHE_DOWNLOAD}"
echo "TE_PLX_SSTATE_CACHE_AARCH64=${TE_PLX_SSTATE_CACHE_AARCH64}"
echo "TE_PLX_SSTATE_CACHE_ARM=${TE_PLX_SSTATE_CACHE_ARM}"
echo "TE_PLX_SSTATE_CACHE_MB_FULL=${TE_PLX_SSTATE_CACHE_MB_FULL}" # finish
function x_run () {
#XServer Display
export DISPLAY=xxx.xxx.xxx.xxx:0.0
# replace xxx.xxx.xxx.xxx with your win 10 host IP
export LIBGL_ALWAYS_INDIRECT=1
sudo /etc/init.d/dbus start
sudo /etc/init.d/xrdp start
# replace xx:xx:xx:xx:xx:xx with win 10 MAC
sudo ip link set dev bond0 address xx:xx:xx:xx:xx:xx
}
# x-server Setup only needed in case wsl is rebooted
echo "Refresh XSetup? y/N"
read xsetup
if [ "${xsetup}" == "y" ]; then x_run; fi
#show version
lsb_release -a