Outils pour utilisateurs

Outils du site


prog:wsl

Installation

  • Sous PowerShell (Admin) :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  • Définir une adresse IP

Cette étape ne doit être faite que si WSL définit une adresse IP non compatible avec le réseau Ethernet.

Pour connaître l'adresse IP depuis Linux, lancer ip a. Côté Windows, lancer ipconfig.

Il n'est pas possible de définir une adresse IP statique sur WSL. Mais il est possible d'en ajouter une.

Commencer par redémarrer l'ordinateur pour que l'interface réseau vEthernet (WSL) ne soit pas définie. Exécuter en ligne de commande avec droits administrateur :

wsl -d "Ubuntu-22.04" -u root ip addr add 172.20.0.176/16 dev eth0 label eth0:1
netsh interface ip add address "vEthernet (WSL)" 172.20.0.177 255.255.0.0

WSL2 Set static ip? Archive du 21/06/2019 le 14/10/2022

Distribution Ubuntu

  • Lancer l'installation de la distribution depuis le Windows Store en cliquant sur Lancer.
  • Vérifier la version de WSL utilisé :
wsl -l -v

Rendu :

  NAME      STATE           VERSION
* Ubuntu    Stopped         1

Ici, on utilise la version 1.

  • Passage à la version 2 :
wsl --set-version Ubuntu 2

Le message doit s'afficher :

La conversion est en cours. Cette opération peut prendre quelques minutes...
Pour plus d’informations sur les différences de clés avec WSL 2, visitez https://aka.ms/wsl2
La conversion est terminée.

Si le message d'erreur apparaît :

WSL 2 nécessite une mise à jour de son composant noyau. Pour plus d’informations, visitez https://aka.ms/wsl2kernel

Installer la mise à jour de WSL 2 puis relancer la commande de changement de version.

  • Utiliser la défaut la version 2 :
wsl --set-default-version 2

Install WSL 2 on Windows 10 Archive du 13/06/2019 le 07/07/2020

Lancement

La ligne de commande est identique à celle de la distribution.

  • Lancement
wsl ~ -d Ubuntu
  • Disques dur

Ils sont dans /mnt/.

  • Première utilisation
apt update
apt upgrade

Configuration spécial WSL

  • OpenGL

Pour avoir le support GPU / OpenGL, il suffit d'installer les derniers drivers NVIDIA récents.

  • OpenCL

OpenCL n'est supporté pour le moment que par Intel.

Il faut installer les paquets ocl-icd-libopencl1 et ocl-icd-opencl-dev ainsi que les drivers spécifiques à Intel. Il ne faut pas que intel-opencl-icd soit installé depuis les dépôts Ubuntu.

Si l'installation des drivers spécifiques n'est pas fait, le programme risque de planter au premier appel de la fonction cl*.

apt install ocl-icd-libopencl1 ocl-icd-opencl-dev
cd /tmp/neo
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.12260.1/intel-igc-core_1.0.12260.1_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.12260.1/intel-igc-opencl_1.0.12260.1_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.41.24420/intel-level-zero-gpu-dbgsym_1.3.24420_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/22.41.24420/intel-level-zero-gpu_1.3.24420_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.41.24420/intel-opencl-icd-dbgsym_22.41.24420_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/22.41.24420/intel-opencl-icd_22.41.24420_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.41.24420/libigdgmm12_22.2.0_amd64.deb
sudo dpkg -i *.deb

OneAPI/L0, OpenVINO and OpenCL coming to the Windows Subsystem for Linux for Intel GPUs Archive du 04/11/2021 le 20/10/2022

Harness the power of Intel iGPU on your machine Archive du 04/11/2021 le 20/10/2022

Release 22.41.24420 Archive du 14/10/2022 le 20/10/2022

Distribution Gentoo

Installation

  • Télécharger le stage 3.
  • Décompresser le .xz mais garder le .tar.
  • wsl.exe --import "Gentoo" gentoo_folder stage3-amd64.tar --version 2
  • Créer le fichier c:\Users\YOURUSERNAME\.wslconfig
/mnt/c/Users/YOURUSERNAME/.wslconfig
[wsl2]
#kernel=
memory=8GB
#processors=
#swap=8GB
#swapFile=
localhostForwarding=true
  • Lancer la console Gentoo : wsl ~ -d Gentoo

Configuration

Créer / remplacer les fichiers

/etc/wsl.conf
[network]
generateResolvConf = false
 
[automount]
enabled = true
options = "metadata"
mountFsTab = false

Vérifier si le fichier /etc/resolv.conf est un lien symbolique ou un fichier. Si c'est un lien symbolique, vérifier son contenu et supprimer le lien. Puis éditer le fichier avec le contenu ci-dessous :

/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
  • Quitter la console Gentoo : exit
  • Redémarrer la VM : wsl --shutdown puis wsl ~ -d Gentoo
  • Vérifier que la connexion Internet fonctionne : ping 8.8.8.8
  • Vérifier que le DNS fonctionne : ping www.lemonde.fr
/etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O0 -ggdb2 -g2 -pipe -fno-omit-frame-pointer"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
LDFLAGS="-Wl,--as-needed -Wl,-O0"
 
USE="X gtk -nls -doc -rdoc -alsa gmp threads openmp"
 
VIDEO_CARDS="nvidia"
 
FEATURES="-ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox splitdebug noclean compressdebug"
 
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="*"
MAKEOPTS="-j8"
EMERGE_DEFAULT_OPTS="-j8 --load-average=8"
CHOST="x86_64-pc-linux-gnu"
PYTHON_TARGETS="python3_9"
RUBY_TARGETS="ruby30"
 
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
 
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

Running Gentoo on Window 10 WSL 2 Archive du 11/2020 le 10/07/2020

Vous devez impérativement utiliser WSL 2 avec des drivers NVIDIA (archive du 2022 le 28/05/2022) à jour et Windows 10 21H2 / Windows 11 (archive du 14/02/2022 le 28/05/2022).

Configure des options de compilation

/etc/portage/package.use
sys-devel/llvm gold
sys-devel/gdb source-highlight
net-libs/nodejs system-icu
 
sys-devel/clang-runtime -abi_x86_32
sys-libs/libomp -abi_x86_32
 
dev-lang/php curl
/etc/portage/package.env
sys-devel/clang-runtime prod
sys-devel/clang-common prod
sys-devel/clang prod
sys-devel/llvm-common prod
sys-devel/llvm prod
sys-devel/llvmgold prod
sys-libs/compiler-rt prod
sys-libs/compiler-rt-sanitizers prod
sys-libs/libomp prod
sys-devel/gcc prod
/etc/portage/env/prod
COMMON_FLAGS="${COMMON_FLAGS} -O2 -g0 -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS} -O2 -g0 -fomit-frame-pointer"
CXXFLAGS="${COMMON_FLAGS} -O2 -g0 -fomit-frame-pointer"
FCFLAGS="${COMMON_FLAGS} -O2 -g0 -fomit-frame-pointer"
FFLAGS="${COMMON_FLAGS} -O2 -g0 -fomit-frame-pointer"
LDFLAGS="${LDFLAGS} -Wl,-O2"

Installation des entêtes du noyau

Exécuter uname -r pour connaître le numéro de version. Ici : 5.4.72-microsoft-standard-WSL2.

Récupérer alors les sources associées.

cd /usr/src/
wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-5.4.72.tar.gz
tar xvzf linux-msft-5.4.72.tar.gz
mv WSL2-Linux-Kernel-linux-msft-5.4.72 linux
cd linux
cp /proc/config.gz .
gunzip config.gz
mv config .config

portage proposera toujours d'installer gentoo-sources. Il suffira de ne jamais faire de eselect kernel set X.

Mettre à jour le système la première fois

emerge --sync
emerge -1va portage
 
emerge -va eix gentoolkit
 
emerge -1 cpuid2cpuflags -va
echo "*/* $(cpuid2cpuflags)" >> /etc/portage/package.use
emerge -C cpuid2cpuflags
 
eselect profile list
eselect profile set default/linux/amd64/xx.x/systemd
 
sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass
eix-update
emerge --oneshot --deep -va sys-devel/gcc
gcc-config --list-profiles
gcc-config 2
source /etc/profile
emerge --oneshot --usepkg=n -va sys-devel/libtool binutils
binutils-config -l
binutils-config 2
source /etc/profile
 
# Update all packages with the newly built compiler
# This will take a long time, ~1-5 hours
emerge --oneshot --emptytree --deep --keep-going -va @world
emerge --oneshot --deep --keep-going -va @preserved-rebuild
emerge --ask --depclean

CPU_FLAGS_X86 Archive du 29/03/2020 le 11/07/2020

Upgrading GCC Archive du 10/04/2020 le 11/07/2020

Mise à jour

Noyau

Pour savoir la version du noyau de la VM, lancer : uname -a.

Pour savoir la dernière version du noyau existant, aller dans le dépôt Github de WSL2-Linux-Kernel et vérifier la dernière version disponible.

Lancer la mise à jour avec wsl --update.

Arrêter wsl. Faire exit depuis WSL. Faire wsl --shutdown pour arrêter les machines virtuelles.

Relancer la machine virtuelle avec wsl ~ -d Gentoo.

Mettre à jour les entêtes conformément au paragraphe Installation des entêtes du noyau.

Paquets

emerge --sync
layman -S
sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass
eix-update
 
# Update rapide
emerge -1vuDaN --keep-going @world
# Update long mais plus complet et gérant mieux les conflits.
emerge --backtrace=30 --update --deep --newuse --keep-going -va --autounmask-keep-masks --with-bdeps=y --complete-graph=y --autounmask-write --verbose-conflicts @world
 
emerge -va --keep-going @live-rebuild
emerge --oneshot --keep-going @preserved-rebuild
emerge --ask --depclean
eclean-dist -d

Commandes spécifiques

  • Monter un lecteur amovible

Un lecteur amovible ne sera pas détecté comme du “plug and play”.

Pour monter le nouveau lecteur :

mount -t drvfs f: /mnt/f
prog/wsl.txt · Dernière modification : 2023/04/16 09:05 de root