
Úvod
Tento článek je určen pro systémové administrátory, kteří připravují standardní pracovní stanice na počítačích s operačním systémem Windows 10, včetně pro vývojáře softwaru.
Je třeba poznamenat, že existuje určitý problém spojený s nemožností integrace softwaru získaného v online obchodě Microsoft Store pro použití v uživatelském obraze Windows 10. Aniž bych se zabýval podrobnostmi, upřesním, že tento problém souvisí s tím, že programy nainstalované z Microsoft Store jsou spojeny se služební uživatelskou účtem Administrátor, a při dokončení vytváření uživatelského obrazu pomocí sysprep se objevují chyby způsobené tímto okolnostem.
Způsob uvedený v tomto článku by měl zabránit tomuto problému při přípravě obrazu operačního systému Windows 10 s předem nastaveným subsystémem WSL2, jakož i s předem připraveným a nastaveným obrazem operačního systému Ubuntu 20.04 s GUI KDE Plasma, který může mít svůj vlastní soubor uživatelského softwaru.
Na internetu je velké množství příkladů a příruček o nastavení subsystému WSL (tj. WSL1 a relativně nového WSL2) s nastavením GUI rozhraní pro linuxové systémy založené na operačním systému od verze Ubuntu 16.04 až po Ubuntu 20.04, ale většinou se to týkalo pracovních ploch založených na tzv. "lehčím" xfce4, který má pochopitelná omezení v uživatelském nastavení. Ale pokud jde o GUI KDE Plasma pro Ubuntu 20.04, na internetu nebyly nalezeny žádné podstatné informace. Přitom tato varianta nabízí koncovému uživateli prakticky neomezenou sadu nastavení jak vzhledu systému, tak i nastavení hardwaru, samozřejmě s ohledem na aktuální možnosti integrace linuxových systémů, realizovaných v subsystému WSL2.
Instalace požadovaného softwarového balíčku a nastavení WSL2
Zkontrolujeme aktuální verzi Windows, k tomu do vyhledávacího panelu Windows zadáme příkaz winver a obdržíme přibližně následující:
Je důležité, aby operační systém měl verzi 1903 nebo 1909 (uvedené verze operačního systému musí mít nainstalovanou kumulativní aktualizaci KB4566116), nebo 2004 (číslo sestavení minimálně 19041), ostatní informace nejsou důležité. Pokud je číslo verze nižší, pro správné opakování výsledků uvedených v tomto článku se doporučuje aktualizovat na poslední verzi Windows.
Pro pohodlí dalších kroků nainstalujeme bezplatný Windows Terminal prostřednictvím Microsoft Store (také je možnost stahování z jiných zdrojů):
Nainstalujeme X Server X410 také prostřednictvím Microsoft Store, toto softwarové vybavení je placené, ale existuje bezplatné období na 15 dní, což je zcela dostatečné pro provádění různých testů.
Jako bezplatnou alternativu k X410 a nainstalujeme X-server VcXsrv.
Na libovolném místě na disku vytvoříme adresář, ve kterém budeme uchovávat naše soubory. Jako příklad vytvoříme adresář C:wsl.
a nainstalujeme samostatného instalátora Ubuntu 20.04, rozbalíme získaný soubor pomocí archivačního programu (například 7-zip). Přejmenujeme rozbalený adresář s dlouhým názvem Ubuntu_2004.2020.424.0_x64 na něco přijatelnějšího, například Ubuntu-20.04 a zkopírujeme ho do adresáře C:wsl (dále v textu jednoduše wsl).
a rozbalíme do adresáře wsl mezikontinentální zvukový server PulseAudio v.1.1., také provedeme úpravy v jeho konfiguračních souborech.
V souboru wslpulseaudio-1.1etcpulsedefault.pa v sekci Načíst zvukové ovladače staticky upravením řádku:
load-module module-waveout sink_name=output source_name=input record=0
a v sekci Síťový přístup upravením řádku:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
V souboru wslpulseaudio-1.1etcpulsedaemon.conf odkomentujeme a změníme řádek
exit-idle-time = -1
Nastavujeme subsystém WSL2 podle Microsoftu. Jediná poznámka — distribuci Ubuntu jsme už stáhli a instalovat ji budeme v dalším kroku. V podstatě se nastavení soustředí na aktivaci dalších komponent 'Podsystem Windows pro Linux' a 'Platforma virtuálního stroje' a následné restartování pro aplikaci změn v nastavení počítače:
Pokud je to nutné a nainstalujeme aktualizační balíček pro jádro Linux v WSL2.
Spustíme Windows Terminal a vybereme režim Command Prompt stisknutím kláves Ctrl+Shift+2.
Nejprve nastavíme režim WSL2, k tomu zadáme příkaz:
wsl --set-default-version 2
Přejdeme do adresáře se samostatným spouštěčem Ubuntu 20.04, v mém případě to je wslUbuntu-20.04 a spustíme soubor ubuntu2004.exe. Při zobrazení výzvy k zadání uživatelského jména uvedu jméno engineer (můžete zadat jakékoli jiné jméno), zadat své heslo a potvrdit zadané heslo pro daný účet:
Objevila se výzva terminálu, jádro Ubuntu 20.04 bylo nainstalováno. Zkontrolujeme správnost nastavení režimu WSL2, k tomu v aplikaci Windows Terminal zvolíme záložku Windows PowerShell a zadáme příkaz:
wsl -l -v
výsledek by měl vypadat takto:
Nastavujeme bránu firewall Microsoft Defender, tedy ji vypneme pro veřejnou síť:
Nastavení Ubuntu 20.04
V aplikaci Windows Terminal znovu zvolíme záložku Příkazový řádek a nainstalujeme aktualizace pro Ubuntu 20.04. K tomu v příkazovém řádku zadáme:
sudo apt update && sudo apt upgrade –y
Instalujeme pracovní plochu KDE Plasma:
sudo apt install kubuntu-desktop -y
instalace trvá až 30 minut v závislosti na výkonu počítače a šířce pásma internetového připojení; při zobrazení dotazu instalačního programu potvrdíme OK.
Instalujeme ruskou lokalizaci a slovníky pro Ubuntu 20.04. K tomu v příkazovém řádku zadáme:
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 # poznámka: vyberte ru_RU.UTF-8 UTF-8, viz snímky obrazovky níže.
sudo apt-get install --reinstall locales
Přidáváme poslední verzi pracovní plochy KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Přidáváme svou sadu konzolových aplikací, například mc a neofetch:
sudo apt install mc neofetch -y
Kontrolujeme, co se nám podařilo, zadáme do příkazového řádku neofetch, viz snímek obrazovky:
Upravujeme konfigurační soubor WSL /etc/wsl.conf:
sudo nano /etc/wsl.conf
do otevřeného prázdného okna textového editoru zkopírujeme následující text:
[automount]
enabled = true
root = /mnt
options = "metadata,umask=22,fmask=11"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
uložíme změny (Ctrl+O), potvrdíme operaci a opustíme textový editor (Ctrl+X).
Exportujeme nastavený obraz Ubuntu-20.04 do vytvořeného adresáře wsl. K tomu v aplikaci Windows Terminal znovu zvolíme záložku Windows PowerShell a zadáme příkaz:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
vytvořený obraz nám pomůže automatizovat spuštění/přeinstalování nastaveného Ubuntu 20.04 a v případě potřeby usnadní přenos na jiný počítač.
Příprava bat-souborů a zkratek na pracovní ploše Windows
Pomocí editoru Notepad++ vytváříme bat-soubory (povinně v kódování OEM-866 pro správné zobrazení znaků cyrilice):
Soubor Install-Ubuntu-20.04-plasma-desktop.bat — je určen k automatizaci počáteční instalace vytvořeného obrazu Ubuntu 20.04 na počítači se již nakonfigurovaným WSL2 a X serverem. Pokud se uživatelské jméno a heslo liší od uvedených v příkladu, je nutné provést příslušné úpravy v tomto bat-souboru:
@echo off
wsl --set-default-version 2
cls
echo Čekejte na dokončení instalace distribuce Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribuce Ubuntu-20.04 byla úspěšně nainstalována!
echo Nezapomeňte změnit výchozí účet „root“ na existující uživatelský účet,
echo nebo použijte předinstalovaný účet „engineer“, heslo: „password“.
pause
Soubor Reinstall-Ubuntu-20.04-plasma-desktop.bat — je určen pro přeinstalaci připraveného obrazu Ubuntu 20.04 na počítači.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Čekejte na dokončení přeinstalace distribuce Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Distribuce Ubuntu-20.04 byla úspěšně přeinstalována!
pause
Soubor Set-default-user.bat — pro nastavení uživatele „výchozího“.
@echo off
set /p answer=Zadejte existující účet v Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Uživatelský účet %answer% v Ubuntu-20.04 byl nastaven jako výchozí!
pause
Soubor Start-Ubuntu-20.04-plasma-desktop.bat — vlastně spuštění pracovní plochy KDE Plasma.
@echo off
echo ===================================== Pozor! ============================================
echo Pro správnou funkci GUI Ubuntu 20.04 ve WSL2 je nutné použít X Server.
echo Poznámka: V případě použití VcXsrv Windows X Server je nutné odkomentovat
echo řádky v souboru Start-Ubuntu-20.04-plasma-desktop.bat, které obsahují "config.xlaunch" a
echo "vcxsrv.exe", a zakomentovat všechny řádky, které obsahují "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.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
Soubor Start-Ubuntu-20.04-terminal.bat — spuštění grafického terminálu bez pracovního prostředí KDE Plasma.
@echo off
echo ===================================== Pozor! ============================================
echo Pro správnou funkci GUI Ubuntu 20.04 v WSL2 je třeba použít X Server.
echo Poznámka: při použití VcXsrv Windows X Server je nutné odkomentovat
echo řádky v souboru Start-Ubuntu-20.04-plasma-desktop.bat, které obsahují "config.xlaunch" a
echo "vcxsrv.exe", a zakomentovat všechny řádky, které obsahují "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.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
Také pro usnadnění používání v adresáři wsl připravujeme zástupce, které odkazují na odpovídající bat soubory. Po tomto bude obsah adresáře wsl vypadat následovně:
Spuštění pracovní plochy KDE Plasma
Kontrolujeme, že všechny přípravné kroky byly splněny, zkoušíme spustit zástupce Plasma-desktop. Objeví se výzva k zadání hesla, zadáme heslo pro účet a… okno se zavře. Při prvním spuštění je to normální. Zkoušíme to znovu — a vidíme známý panel úloh KDE Plasma. Upravujeme požadovaný vzhled panelu úloh, například pro usnadnění používání je panel přesunut doprava a centrován. Kontrolujeme nastavení lokalizace, v případě potřeby přidáváme ruský jazyk:
Pokud je to nutné, umístíme zástupce pro nainstalované linuxové aplikace na panel úloh KDE Plasma.
Pokud Ubuntu 20.04 vyžaduje odhlášení uživatele pro použití změn v nastavení, nebo je třeba restartovat operační systém, zadejte v Windows Terminal příkaz:
wsl -d Ubuntu20.04 --shutdown
Pomocí zástupce Plasma-desktop nebo Konsole můžeme spustit GUI KDE Plasma Ubuntu 20.04. Například nainstalujeme pomocí Konsole grafický editor GIMP:
Po dokončení instalace spouštíme z Konsole grafický editor GIMP:
GIMP funguje, což bylo třeba ověřit.
A takto fungují různé linuxové aplikace v KDE Plasma v WSL2:
nastavený panel úloh KDE Plasma je na pravé straně obrazovky. a video se v okně Firefox přehrává se zvukem.
Pokud je to nutné, lze nastavit přístup k Ubuntu20.04 přes SSH a RDP, k tomu je potřeba nainstalovat odpovídající služby pomocí příkazu:
sudo apt install ssh xrdp -y
poznámka: pro povolení přístupu pomocí hesla SSH je třeba upravit soubor /etc/ssh/sshd_config, konkrétně parametr PasswordAuthentication no je třeba nastavit na hodnotu PasswordAuthentication yes, uložit změny a restartovat Ubuntu 20.04.
Při každém spuštění Ubuntu 20.04 se mění vnitřní ip adresa, před nastavením vzdáleného přístupu je třeba zjistit aktuální ip adresu pomocí příkazu ip a:
Tuto ip adresu je třeba zadat do nastavení relací SSH a RDP před spuštěním.
Takto vypadá vzdálený přístup pomocí SSH MobaXterm:
A takto vypadá vzdálený přístup pomocí RDP:
Použití X-serveru vcxsrv místo x410
Spouštíme a nastavujeme vcxsrv, pečlivě nastavíme odpovídající zaškrtávací políčka:




Uložíme nakonfigurovanou konfiguraci do složky wslvcxsrv s výchozím názvem config.xlaunch.
Upravujeme bat soubory Start-Ubuntu-20.04-plasma-desktop.bat a Start-Ubuntu-20.04-terminal.bat v souladu s pokyny, které obsahují.
Spouštíme zástupce Plasma-desktop, a tohle dostaneme:
Desktop KDE Plasma plně zakrývá pracovní stůl Windows, pro přepínání mezi okny linuxových a windows aplikací používáme známou kombinaci kláves Alt+Tab, což není zrovna pohodlné.
Kromě toho se ukázala nepříjemná vlastnost X-serveru vcxsrv – padá při spuštění některých aplikací, zejména GIMP nebo LibreOffice Writer. Možná by stálo za to počkat, až vývojáři odstraní zaznamenané „chyby“, ale to není jisté... Takže pro dosažení přijatelných výsledků je lepší použít X Server Microsoft x410.
Závěr
Musím uznat, že společnost Microsoft odvedla dobrou práci, produkt WSL2 se ukázal být celkem funkční a podle mého nezkušeného názoru – velmi povedený. A pokud vím, vývojáři pokračují v jeho vylepšování a možná – za rok nebo dva, se tento subsystém ukáže ve své plné funkčnosti.
Zdroj: habr.com
