Outils pour utilisateurs

Outils du site


prog:wsl

Ceci est une ancienne révision du document !


Premiers pas

Installation

  • Sous PowerShell (Admin) :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • Sous PowerShell (Admin) :
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  • 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-get update

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="dummy"
 
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

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} -O3 -g0 -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer"
CXXFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer"
FCFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer"
FFLAGS="${COMMON_FLAGS} -O3 -g0 -fomit-frame-pointer"
LDFLAGS="${LDFLAGS} -Wl,-O3"

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 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

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

Réinstaller la mise à jour du noyau WSL2.

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
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 @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.1626280115.txt.gz · Dernière modification : 2021/07/14 18:28 de root