Outils pour utilisateurs

Outils du site


prog:wsl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
prog:wsl [2021/07/11 23:18] – Mise à jour rootprog:wsl [2024/10/19 00:00] (Version actuelle) – backtrace -> backtrack root
Ligne 1: Ligne 1:
-====Premiers pas===+=====Installation=====
- +
-===Installation===+
  
   * Sous PowerShell (Admin) :   * Sous PowerShell (Admin) :
  
   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
 +  Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  
-  * Installer la distribution Linux le Windows Store : https://docs.microsoft.com/en-us/windows/wsl/install-manual+  * Définir une adresse IP
  
-  * Sous PowerShell (Admin) :+Cette étape ne doit être faite que si ''WSL'' définit une adresse IP non compatible avec le réseau Ethernet.
  
-  Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform+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 : 
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +[[https://github.com/microsoft/WSL/issues/4210#issuecomment-648570493|WSL2 Set static ip?]] {{ :prog:wsl:wsl2_set_static_ip_issue_4210_microsoft_wsl_14_10_2022_10_05_02_.html |Archive du 21/06/2019 le 14/10/2022}} 
 + 
 +=====Distribution Ubuntu===== 
 + 
 +  * Installer la distribution Linux le Windows Store : https://docs.microsoft.com/en-us/windows/wsl/install-manual
  
   * Lancer l'installation de la distribution depuis le Windows Store en cliquant sur Lancer.   * Lancer l'installation de la distribution depuis le Windows Store en cliquant sur Lancer.
Ligne 48: Ligne 62:
 [[https://www.thomasmaurer.ch/2019/06/install-wsl-2-on-windows-10/|Install WSL 2 on Windows 10]] {{ :prog:wsl:install_wsl_2_on_windows_10_-_thomas_maurer_2020-07-07_16_54_08_.html |Archive du 13/06/2019 le 07/07/2020}} [[https://www.thomasmaurer.ch/2019/06/install-wsl-2-on-windows-10/|Install WSL 2 on Windows 10]] {{ :prog:wsl:install_wsl_2_on_windows_10_-_thomas_maurer_2020-07-07_16_54_08_.html |Archive du 13/06/2019 le 07/07/2020}}
  
-===Lancement===+====Lancement====
  
 La ligne de commande est identique à celle de la distribution. La ligne de commande est identique à celle de la distribution.
Ligne 63: Ligne 77:
  
 <code bash> <code bash>
-apt-get update+apt update 
 +apt upgrade
 </code> </code>
  
-====Gentoo==== 
  
-===Installation===+=====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 [[https://github.com/intel/compute-runtime/|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*''
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +[[https://devblogs.microsoft.com/commandline/oneapi-l0-openvino-and-opencl-coming-to-the-windows-subsystem-for-linux-for-intel-gpus/|OneAPI/L0, OpenVINO and OpenCL coming to the Windows Subsystem for Linux for Intel GPUs]] {{ :prog:wsl:oneapi_l0_openvino_and_opencl_coming_to_the_windows_subsystem_for_linux_for_intel_gpus_-_windows_command_line_20_10_2022_12_19_04_.html |Archive du 04/11/2021 le 20/10/2022}} 
 + 
 +[[https://www.intel.com/content/www/us/en/artificial-intelligence/harness-the-power-of-intel-igpu-on-your-machine.html|Harness the power of Intel iGPU on your machine]] {{ :prog:wsl:harness_the_power_of_intel_igpu_on_your_machine_20_10_2022_12_04_09_.html |Archive du 04/11/2021 le 20/10/2022}} 
 + 
 +[[https://github.com/intel/compute-runtime/releases/|Release 22.41.24420]] {{ :prog:wsl:releases_intel_compute-runtime_20_10_2022_12_33_50_.html |Archive du 14/10/2022 le 20/10/2022}} 
 +=====Distribution Gentoo===== 
 + 
 +====Installation====
  
   * Télécharger le [[https://gentoo.org/downloads/|stage 3]].   * Télécharger le [[https://gentoo.org/downloads/|stage 3]].
Ligne 85: Ligne 133:
   * Lancer la console Gentoo : ''wsl ~ -d Gentoo''   * Lancer la console Gentoo : ''wsl ~ -d Gentoo''
  
-===Configuration===+====Configuration==== 
 + 
 +===Créer / remplacer les fichiers===
  
-  * Créer / remplacer les fichiers : 
 <file ini /etc/wsl.conf> <file ini /etc/wsl.conf>
 [network] [network]
Ligne 121: Ligne 170:
 LDFLAGS="-Wl,--as-needed -Wl,-O0" LDFLAGS="-Wl,--as-needed -Wl,-O0"
  
-USE="--gtk -nls -doc -rdoc -alsa gmp threads openmp"+USE="X gtk -nls -doc -rdoc -alsa gmp threads openmp"
  
-VIDEO_CARDS="dummy"+VIDEO_CARDS="nvidia"
  
 FEATURES="-ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox splitdebug noclean compressdebug" FEATURES="-ipc-sandbox -pid-sandbox -mount-sandbox -network-sandbox splitdebug noclean compressdebug"
Ligne 147: Ligne 196:
 [[https://developer.moe/gentoo-on-wsl-2|Running Gentoo on Window 10 WSL 2]] {{ :prog:wsl:gentoo_on_windows_10_wsl_2_2020-07-10_09_49_57_.html |Archive du 11/2020 le 10/07/2020}} [[https://developer.moe/gentoo-on-wsl-2|Running Gentoo on Window 10 WSL 2]] {{ :prog:wsl:gentoo_on_windows_10_wsl_2_2020-07-10_09_49_57_.html |Archive du 11/2020 le 10/07/2020}}
  
-  * Configure des options de compilation+Vous devez impérativement utiliser WSL 2 avec des drivers [[https://developer.nvidia.com/cuda/wsl|NVIDIA]] ({{ :prog:wsl:gpu_in_windows_subsystem_for_linux_wsl_nvidia_developer_2022-05-28_23_07_57_.html |archive du 2022 le 28/05/2022}}) à jour et [[https://docs.microsoft.com/en-us/windows/ai/directml/gpu-cuda-in-wsl|Windows 10 21H2 / Windows 11]] ({{ :prog:wsl:enable_nvidia_cuda_on_wsl_2_microsoft_docs_2022-05-28_23_09_00_.html |archive du 14/02/2022 le 28/05/2022}}). 
 + 
 +===Configure des options de compilation===
  
 <file txt /etc/portage/package.use> <file txt /etc/portage/package.use>
-sys-devel/binutils default-gold +sys-devel/llvm gold 
-sys-devel/gcc -fortran+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 
 +</file> 
 + 
 +<file txt /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 
 +</file> 
 + 
 +<file txt /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"
 </file> </file>
  
-  * Installation des entêtes du noyau+===Installation des entêtes du noyau===
  
-Exécuter ''uname -r'' pour connaître le numéro de version. Ici : ''4.19.104-microsoft-standard''.+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. Récupérer alors les sources associées.
Ligne 165: Ligne 244:
 tar xvzf 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 mv WSL2-Linux-Kernel-linux-msft-5.4.72 linux
 +cd linux
 +cp /proc/config.gz .
 +gunzip config.gz
 +mv config .config
 </code> </code>
  
 ''portage'' proposera toujours d'installer ''gentoo-sources''. Il suffira de ne jamais faire de ''eselect kernel set X''. ''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+===Mettre à jour le système la première fois===
  
 <code bash> <code bash>
Ligne 181: Ligne 264:
 emerge -C cpuid2cpuflags emerge -C cpuid2cpuflags
  
-sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass+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 eix-update
 emerge --oneshot --deep -va sys-devel/gcc emerge --oneshot --deep -va sys-devel/gcc
Ligne 194: Ligne 280:
 # Update all packages with the newly built compiler # Update all packages with the newly built compiler
 # This will take a long time, ~1-5 hours # This will take a long time, ~1-5 hours
-emerge --oneshot --emptytree --deep @world +emerge --oneshot --emptytree --deep --keep-going -va @world 
-emerge --oneshot --deep @preserved-rebuild+emerge --oneshot --deep --keep-going -va @preserved-rebuild
 emerge --ask --depclean emerge --ask --depclean
 </code> </code>
Ligne 203: Ligne 289:
 [[https://wiki.gentoo.org/wiki/Upgrading_GCC|Upgrading GCC]] {{ :prog:wsl:upgrading_gcc_-_gentoo_wiki_2020-07-11_12_02_22_.html |Archive du 10/04/2020 le 11/07/2020}} [[https://wiki.gentoo.org/wiki/Upgrading_GCC|Upgrading GCC]] {{ :prog:wsl:upgrading_gcc_-_gentoo_wiki_2020-07-11_12_02_22_.html |Archive du 10/04/2020 le 11/07/2020}}
  
-===Mise à jour===+====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 [[https://github.com/microsoft/WSL2-Linux-Kernel/releases|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_entetes_du_noyau|Installation des entêtes du noyau]]. 
 + 
 +===Paquets===
  
 <code bash> <code bash>
 emerge --sync emerge --sync
-sed -i "s/12sg/012sg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass+layman -S 
 +sed -i "s/123szg/0123szg/g" /var/db/repos/gentoo/eclass/flag-o-matic.eclass
 eix-update eix-update
  
Ligne 213: Ligne 316:
 emerge -1vuDaN --keep-going @world emerge -1vuDaN --keep-going @world
 # Update long mais plus complet et gérant mieux les conflits. # 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 --backtrack=30 --update --deep --newuse --keep-going -va --autounmask-keep-masks --with-bdeps=y --complete-graph=y --autounmask-write --verbose-conflicts @world
  
-emerge -va @live-rebuild+emerge -va --keep-going @live-rebuild
 emerge --oneshot --keep-going @preserved-rebuild emerge --oneshot --keep-going @preserved-rebuild
 emerge --ask --depclean emerge --ask --depclean
prog/wsl.1626038288.txt.gz · Dernière modification : 2021/07/11 23:18 de root