Windows 10 + Linux. Configuration de l'interface graphique KDE Plasma pour Ubuntu 20.04 dans WSL2. Guide étape par étape





introduction



Cet article est destiné à l'attention des administrateurs système qui préparent des lieux de travail typiques sur des ordinateurs exécutant Windows 10, y compris les développeurs de logiciels.



Il est à noter qu'il existe un certain problème lié à l'impossibilité d'intégrer des logiciels obtenus à partir du Microsoft Store en ligne pour une utilisation dans une image personnalisée de Windows 10. Sans entrer dans les détails, je préciserai que ce problème est dû au fait que les programmes installés à partir du Microsoft Store sont liés avec le compte de service Administrateur, et lorsque l'utilitaire termine la création d'une image personnalisée sysprep, des erreurs dues à cette circonstance se produisent.



La méthode décrite dans cet article pour éviter un tel problème lors de la préparation d'une image de Windows 10 avec un sous-système WSL2 préconfiguré, ainsi qu'avec une image pré-préparée et configurée d'Ubuntu 20.04 avec l'interface graphique KDE Plasma, qui à son tour peut avoir son propre ensemble de logiciels personnalisés.



Il existe un grand nombre d'exemples et de guides sur Internet pour configurer les sous-systèmes WSL (c'est-à-dire WSL1 et le WSL2 relativement nouveau), avec la configuration de l'interface graphique pour les systèmes Linux basés sur le système d'exploitation à partir d'Ubuntu 16.04 et se terminant par Ubuntu 20.04, mais cela concernait principalement bureaux basés sur le soi-disant. "Lightweight" xfce4, qui a des limites compréhensibles dans les paramètres utilisateur. Mais en ce qui concerne l'interface graphique KDE Plasma pour Ubuntu 20.04, il n'y avait aucune information substantielle sur le net. Mais c'est cette option qui fournit à l'utilisateur final un ensemble presque illimité de paramètres pour l'apparence du système et les paramètres de l'équipement, bien sûr, en tenant compte des capacités d'intégration actuelles des systèmes Linux implémentés dans le sous-système WSL2.



Installation de la suite logicielle requise et configuration de WSL2



Nous vérifions la version actuelle de Windows, pour cela, dans la barre de recherche Windows, entrez la commande winveret obtenez quelque chose comme ce qui suit:





Il est important que le système d'exploitation ait la version 1903 ou 1909 (les versions du système d'exploitation spécifiées doivent être avec la mise à jour cumulative KB4566116 installée), ou 2004 (numéro de version pas moins de 19041), le reste des informations n'a pas d'importance. Si le numéro de version est inférieur, il est recommandé de mettre à niveau vers la dernière version de Windows pour répéter correctement les résultats présentés dans cet article.



Pour faciliter d'autres actions, installez le terminal Windows gratuit à l'aide du Microsoft Store (il existe également la possibilité de télécharger à partir d'autres sources):





Nous installons X Server X410 via le même Microsoft Store, ce logiciel est payant, mais il y a une période gratuite de 15 jours, ce qui est largement suffisant pour divers tests.





Comme alternative gratuite à X410, téléchargez et installez le serveur VcXsrv X.



Dans n'importe quel endroit pratique sur le disque, créez un répertoire dans lequel nous stockerons nos fichiers. Créons un répertoire comme exemple C:\wsl.



Téléchargez et installez le programme d'installation hors ligne Ubuntu 20.04, décompressez le fichier résultant à l'aide d'un archiveur (par exemple 7-zip). Renommez le répertoire décompressé avec un nom long Ubuntu_2004.2020.424.0_x64en quelque chose de plus acceptable, par exemple, Ubuntu-20.04et copiez-le dans un répertoire C:\wsl(ci-après simplement \wsl).



Téléchargez et décompressez le \wslserveur audio multiplateforme PulseAudio v.1.1 dans le répertoire , et apportez également des corrections à ses fichiers de configuration.



Dans le fichier \wsl\pulseaudio-1.1\etc\pulse\default.pasousLoad audio drivers statically éditez la ligne:



load-module module-waveout sink_name=output source_name=input record=0


et dans la section, Network accesséditez la ligne:



load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1


Dans le fichier, \wsl\pulseaudio-1.1\etc\pulse\daemon.confdécommentez et modifiez la ligne



exit-idle-time = -1


Nous configurons le sous-système WSL2 conformément à la documentation Microsoft. La seule remarque est que nous avons déjà téléchargé la distribution Ubuntu, et nous l'installerons à l'étape suivante. Fondamentalement, la configuration se résume à l'activation des composants supplémentaires «Sous-système Windows pour Linux» et «Plateforme de la machine virtuelle», puis au redémarrage pour appliquer les modifications aux paramètres de l'ordinateur:







Si nécessaire, téléchargez et installez le package de mise à jour pour le noyau Linux dans WSL2.

Lancez Windows Terminal et sélectionnez le mode Invite de commandes en appuyant sur les touches Ctrl+Shift+2.



Tout d'abord, nous définissons le mode de fonctionnement WSL2, pour cela, nous entrons la commande:



wsl  --set-default-version 2


Accédez au répertoire avec le chargeur de démarrage Ubuntu 20.04 hors ligne, dans mon cas, c'est \wsl\Ubuntu-20.04et exécutez le fichier ubuntu2004.exe. Lorsqu'on me demande un nom d'utilisateur, je spécifie un nom engineer(vous pouvez entrer n'importe quel autre nom), entrez votre mot de passe et confirmez le mot de passe entré pour le compte spécifié:





Une invite de terminal apparaît, le noyau Ubuntu 20.04 est installé. Vérifions l'exactitude du paramètre de mode WSL2, pour cela, dans le terminal Windows, sélectionnez l'onglet Windows PowerShell et entrez la commande:



wsl -l -v


le résultat de l'exécution devrait être comme ceci:







Nous configurons le pare-feu Microsoft Defender, c'est-à-dire désactivez-le pour le réseau public:









Configurer Ubuntu 20.04



Dans le Terminal Windows, sélectionnez à nouveau l'onglet Invite de commandes et installez les mises à jour pour Ubuntu 20.04. Pour ce faire, sur la ligne de commande, entrez:



sudo apt update && sudo apt upgrade –y


Installation du bureau KDE Plasma:



sudo apt install kubuntu-desktop -y


l'installation prend jusqu'à 30 minutes, en fonction des performances de l'ordinateur et de la bande passante du canal d'accès Internet, à l'invite de l'installateur, nous confirmons OK.

Installation de la localisation et des dictionnaires russes Ubuntu 20.04. Pour ce faire, sur la ligne de commande, entrez:



sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # :  ru_RU.UTF-8 UTF-8, .  .
sudo apt-get install --reinstall locales






Ajoutez la dernière version du bureau KDE Plasma:



sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y


Ajout d'un ensemble d'applications console, par exemple mc, et neofetch:



sudo apt install mc neofetch -y


Nous vérifions ce qui s'est passé, le saisissons dans la ligne de commande neofetch, voir capture d'écran:





Modification du fichier de configuration WSL /etc/wsl.conf:



sudo nano /etc/wsl.conf


copiez le texte dans la fenêtre de l'éditeur de texte vide ouverte:



[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true


enregistrer les modifications ( Ctrl+O), confirmer l'opération et quitter l'éditeur de texte ( Ctrl+X).



Nous exportons l'image Ubuntu-20.04 personnalisée vers le répertoire que nous avons créé \wsl. Pour ce faire, dans le Terminal Windows, sélectionnez à nouveau l'onglet Windows PowerShell et entrez la commande:



wsl --export Ubuntu-20.04 c:\wsl\Ubuntu-plasma-desktop


l'image créée nous aidera à automatiser les opérations de démarrage / réinstallation de l'Ubuntu 20.04 configuré, si nécessaire, elle nous permettra de la transférer facilement sur un autre ordinateur.



Préparation des fichiers de chauve-souris et des raccourcis vers le bureau Windows



À l'aide de l'éditeur Notepad ++, créez des fichiers bat (obligatoire dans l'encodage OEM-866 pour l'affichage correct des caractères cyrilliques):

Fichier Install-Ubuntu-20.04-plasma-desktop.bat- conçu pour automatiser l'installation initiale de l'image Ubuntu 20.04 créée sur un ordinateur avec un sous-système WSL2 et un serveur X déjà configuré. Si le nom d'utilisateur et le mot de passe diffèrent de ceux spécifiés dans l'exemple, vous devez apporter les modifications appropriées à ce fichier bat:



@echo off
wsl --set-default-version 2
cls
echo     Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo  Ubuntu-20.04  !
echo        «root»     ,
echo      «engineer», : «password».
pause


Fichier Reinstall-Ubuntu-20.04-plasma-desktop.bat- destiné à réinstaller l'image Ubuntu 20.04 préparée sur l'ordinateur.



@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo     Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo  Ubuntu-20.04  !
pause


Fichier Set-default-user.bat- pour définir l'utilisateur "par défaut".



@echo off
set /p answer=     Ubuntu (engineer):
c:\wsl\Ubuntu-20.04\ubuntu2004.exe config --default-user %answer%
cls
echo    %answer%  Ubuntu-20.04   !
pause


Le fichier Start-Ubuntu-20.04-plasma-desktop.batest le lancement réel du bureau KDE Plasma.



@echo off
echo ===================================== ! ============================================
echo     GUI Ubuntu 20.04  WSL2   X Server.
echo  :    VcXsrv Windows X Server  
echo     Start-Ubuntu-20.04-plasma-desktop.bat,  "config.xlaunch" 
echo  "vcxsrv.exe",    ,  "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "if [ -z \"$(pidof plasmashell)\" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul


Fichier Start-Ubuntu-20.04-terminal.bat- lance un terminal graphique sans le bureau KDE Plasma.



@echo off
echo ===================================== ! ============================================
echo     GUI Ubuntu 20.04  WSL2   X Server.
echo  :    VcXsrv Windows X Server  
echo     Start-Ubuntu-20.04-plasma-desktop.bat,  "config.xlaunch" 
echo  "vcxsrv.exe",    ,  "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul


De plus, pour faciliter l'utilisation, nous \wslpréparons des raccourcis dans le répertoire pointant vers les fichiers bat correspondants. Après cela, le contenu du répertoire \wslressemble à ceci:







Lancement du bureau KDE Plasma



Nous vérifions que toutes les actions préparatoires sont terminées, nous essayons de lancer le raccourci Plasma-desktop. Une demande de mot de passe apparaît, entrez le mot de passe du compte et ... la fenêtre se ferme. C'est bon la première fois. En essayant à nouveau, nous voyons la barre des tâches familière de KDE Plasma. Nous configurons l'apparence requise de la barre des tâches, par exemple, pour une facilité d'utilisation, le panneau est déplacé vers le côté droit de l'écran et centré. Nous vérifions les paramètres de localisation, si nécessaire, ajoutons la langue russe:







Si nécessaire, placez des raccourcis pour les applications Linux installées dans la barre des tâches de KDE Plasma.



Si Ubuntu 20.04 vous oblige à vous déconnecter du compte d'utilisateur pour appliquer les modifications aux paramètres, ou si vous devez redémarrer le système d'exploitation, pour ce faire, entrez la commande dans le terminal Windows:



wsl -d Ubuntu20.04 --shutdown


En utilisant le raccourci Plasma-desktopou, Konsolevous pouvez lancer l'interface graphique KDE Plasma Ubuntu 20.04. Par exemple, installons à l'aide de l' Konsoleéditeur graphique GIMP:





Une fois l'installation terminée, exécutez l' Konsoleéditeur graphique GIMP à partir de l' éditeur graphique:





Le GIMP fonctionne, c'est ce que vous vouliez vérifier.

Et voici comment les différentes applications Linux fonctionnent dans KDE Plasma dans WSL2:





la barre des tâches personnalisée de KDE Plasma se trouve sur le côté droit de l'écran. et la vidéo dans la fenêtre Firefox joue avec le son.









Si nécessaire, vous pouvez configurer l'accès à Ubuntu20.04 par SSHet RDP, pour cela, vous devez installer les services appropriés avec la commande:



sudo apt install ssh xrdp -y


Remarque: pour activer l'accès par mot de passe par le logiciel, SSHvous devez éditer le fichier /etc/ssh/sshd_config, à savoir, le paramètre PasswordAuthentication nodoit être défini sur valeur PasswordAuthentication yes, enregistrer les modifications et redémarrer Ubuntu20.04.



Chaque fois que vous démarrez Ubuntu20.04, l'adresse IP interne change, avant de configurer l'accès à distance, vous devez spécifier l'adresse IP actuelle à l'aide de la commande ip a:





En conséquence, l'adresse IP est requise dans la configuration de la session SSHet RDPavant de commencer.

Voici à quoi ressemble l'accès SSHlogiciel à distance à l' aide de MobaXterm:





Et voici à quoi ressemble l'accès à distance RDP:







Utilisation du serveur vcxsrv X au lieu de x410



Lancez et configurez vcxsrv, cochez attentivement les cases appropriées:











Nous sauvegardons la configuration configurée dans un répertoire \wsl\vcxsrvavec un nom standard config.xlaunch.



Nous éditons les fichiers de chauve-souris Start-Ubuntu-20.04-plasma-desktop.batet Start-Ubuntu-20.04-terminal.batconformément aux instructions qui y sont disponibles.



Nous lançons le raccourci Plasma-desktop, et voici ce que nous obtenons:





Le bureau KDE Plasma ferme complètement le bureau Windows, pour basculer entre les fenêtres des applications Linux et Windows, nous utilisons une combinaison de touches bien connue Alt+Tab, ce qui n'est pas très pratique.

De plus, une fonctionnalité désagréable du serveur X a été révélée vcxsrv- il se bloque lors du lancement de certaines applications, en particulier le même GIMP ou LibreOffice Writer. Peut-être devrions-nous attendre que les développeurs suppriment les "bugs" remarqués, mais ce n'est pas certain ... Donc, pour obtenir des résultats acceptables, il est préférable d'utiliser Microsoft X Server x410.



Conclusion



Néanmoins, nous devons rendre hommage à Microsoft, le produit WSL2 s'est avéré assez fonctionnel et, à mon avis peu sophistiqué, très réussi. Et pour autant que je sache, les développeurs continuent à travailler dur pour le "terminer", et peut-être - dans un an ou deux, ce sous-système apparaîtra dans toute sa complétude fonctionnelle.



All Articles