Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
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
wsl -l -v
Rendu :
NAME STATE VERSION * Ubuntu Stopped 1
Ici, on utilise la version 1.
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.
wsl --set-default-version 2
Install WSL 2 on Windows 10 Archive du 13/06/2019 le 07/07/2020
La ligne de commande est identique à celle de la distribution.
wsl ~ -d Ubuntu
Ils sont dans /mnt/.
apt update apt upgrade
Pour avoir le support GPU / OpenGL, il suffit d'installer les derniers drivers NVIDIA récents.
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
.xz mais garder le .tar.wsl.exe --import "Gentoo" gentoo_folder stage3-amd64.tar --version 2c:\Users\YOURUSERNAME\.wslconfig[wsl2] #kernel= memory=8GB #processors= #swap=8GB #swapFile= # Use networkingMode when you can't access on Internet. networkingMode=mirrored # localhostForwarding is not compatible with networkingMode=mirrored #localhostForwarding=true
wsl ~ -d Gentoo[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 :
nameserver 8.8.8.8 nameserver 8.8.4.4
exitwsl --shutdown puis wsl ~ -d Gentooping 8.8.8.8ping www.lemonde.fr# 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).
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
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
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"
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.
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/123szg/0123szg/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
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.
emerge --sync layman -S sed -i "s/123szg/0123szg/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 --backtrack=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
Un lecteur amovible ne sera pas détecté comme du “plug and play”.
Pour monter le nouveau lecteur :
mount -t drvfs f: /mnt/f