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 2
c:\Users\YOURUSERNAME\.wslconfig
[wsl2] #kernel= memory=8GB #processors= #swap=8GB #swapFile= 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
exit
wsl --shutdown
puis wsl ~ -d Gentoo
ping 8.8.8.8
ping 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