Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Wprowadzenie

Niniejszy artykuł jest przeznaczony dla administratorów systemów, którzy przygotowują typowe stanowiska robocze na komputerach działających pod kontrolą systemu Windows 10, w tym dla programistów.

Należy zauważyć, że istnieje pewien problem związany z brakiem możliwości integracji oprogramowania pobranego ze sklepu Microsoft Store do użycia w użytkowniczym obrazie Windows 10. Nie wchodząc w szczegóły, wyjaśnię, że problem ten wiąże się z tym, że programy zainstalowane ze sklepu Microsoft Store są powiązane z kontem Administrator, a przy zakończeniu tworzenia obrazu użytkownika narzędziem sysprep pojawią się związane z tym błędy.

Metoda omówiona w tym artykule pozwoli uniknąć takiego problemu przy przygotowywaniu obrazu systemu Windows 10 z wcześniej skonfigurowaną subsystemem WSL2, a także z wcześniej przygotowanym i skonfigurowanym obrazem systemu Ubuntu 20.04 z GUI KDE Plasma, który z kolei może mieć swój zestaw oprogramowania użytkowego.

W Internecie dostępnych jest wiele przykładów i przewodników po konfiguracji systemu WSL (tj. WSL1 i stosunkowo nowego WSL2), z konfiguracją interfejsu GUI dla systemów Linux opartych na systemie od wersji Ubuntu 16.04 do Ubuntu 20.04, ale głównie dotyczyły one pulpitów opartych na tzw. 'lekkim' xfce4, który ma zrozumiałe ograniczenia w ustawieniach użytkownika. Co do GUI KDE Plasma dla Ubuntu 20.04, w sieci nie znalazłem żadnych istotnych informacji. Jednak ta opcja oferuje użytkownikowi praktycznie nieograniczony zestaw ustawień zarówno wyglądu systemu, jak i ustawień sprzętowych, oczywiście z uwzględnieniem obecnych możliwości integracji systemów Linux w subsystemie WSL2.

Instalacja wymaganego zestawu oprogramowania i konfiguracja WSL2

Sprawdzamy aktualną wersję systemu Windows, w tym celu w pasku wyszukiwania Windows wpisujemy polecenie winver i otrzymujemy mniej więcej to:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Ważne jest, aby system operacyjny miał wersję 1903 lub 1909 (podane wersje systemu operacyjnego muszą mieć zainstalowane kumulacyjne aktualizacje KB4566116), lub 2004 (numer kompilacji nie mniejszy niż 19041), pozostałe informacje nie mają znaczenia. Jeśli numer wersji jest niższy, aby prawidłowo powtórzyć wyniki przedstawione w tym artykule, zaleca się zaktualizowanie do najnowszej wersji Windows.

Dla wygody dalszych działań instalujemy darmowy Windows Terminal, używając Microsoft Store (istnieje również możliwość pobrania z innych źródeł):

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Instalujemy X Server X410 za pośrednictwem tego samego Microsoft Store, to oprogramowanie jest płatne, ale istnieje darmowy okres próbny na 15 dni, co jest wystarczające do przeprowadzenia różnych testów.

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Jako darmową alternatywę dla X410 pobieramy i instalujemy serwer X VcXsrv.

W dowolnym dogodnym miejscu na dysku tworzymy katalog, w którym będziemy przechowywać nasze pliki. Na przykład utworzymy katalog C:wsl.

Pobieramy i instalujemy autonomiczny instalator Ubuntu 20.04, rozpakowujemy otrzymany plik za pomocą archiwizatora (np. 7-zip). Zmieniamy nazwę rozpakowanego katalogu o długiej nazwie Ubuntu_2004.2020.424.0_x64 na coś bardziej odpowiedniego, na przykład Ubuntu-20.04 i kopiujemy go do katalogu C:wsl (dalej w tekście po prostu wsl).

Pobieramy i rozpakowujemy katalog wsl wieloplatformowy serwer dźwiękowy PulseAudio v.1.1., wprowadzamy również poprawki w jego plikach konfiguracyjnych.

W pliku wslpulseaudio-1.1etcpulsedefault.pa w sekcji Ładowanie sterowników dźwiękowych statycznie edytujemy linię:

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


a w sekcji Dostęp do sieci edytujemy linię:

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


W pliku wslpulseaudio-1.1etcpulsedaemon.conf odkomentowujemy i zmieniamy linię

exit-idle-time = -1


Konfigurujemy subsystem WSL2 zgodnie z dokumentacją Microsoft. Jedyne zastrzeżenie — dystrybucję Ubuntu już pobraliśmy, a zainstalujemy ją w następnym kroku. Głównie konfiguracja sprowadza się do włączenia dodatkowych komponentów „Podsystem Windows dla systemu Linux” i „Platforma wirtualna” oraz późniejszego restartu w celu zastosowania zmian w ustawieniach komputera:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

W razie potrzeby pobieramy instalujemy pakiet aktualizacji dla jądra Linux w WSL2.
Uruchamiamy Windows Terminal i wybieramy tryb Command Prompt, naciskając klawisze Ctrl+Shift+2.

W pierwszej kolejności ustawiamy tryb WSL2, wprowadzając polecenie:

wsl  --set-default-version 2


Przechodzimy do katalogu z autonomicznym bootloaderem Ubuntu 20.04, w moim przypadku to wslUbuntu-20.04 i uruchamiamy plik ubuntu2004.exe. Gdy pojawi się prośba o nazwę użytkownika, podaję nazwisko engineer (można wpisać dowolne inne imię), wprowadzam swoje hasło i potwierdzam wprowadzone hasło dla podanego konta:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Pojawił się wiersz polecenia terminala, jądro Ubuntu 20.04 zostało zainstalowane. Sprawdzimy poprawność ustawienia trybu WSL2, w tym celu w Windows Terminal wybieramy zakładkę Windows PowerShell i wpisujemy komendę:

wsl -l -v


wynik wykonania powinien wyglądać następująco:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Konfigurujemy zaporę Microsoft Defender, tzn. wyłączamy ją dla sieci publicznej:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Konfiguracja Ubuntu 20.04

W Windows Terminal ponownie wybieramy zakładkę Command Prompt i instalujemy aktualizacje dla Ubuntu 20.04. W tym celu w wierszu poleceń wpisujemy:

sudo apt update && sudo apt upgrade -y


Instalujemy pulpitu KDE Plasma:

sudo apt install kubuntu-desktop -y


instalacja trwa do 30 minut w zależności od wydajności komputera i przepustowości połączenia z Internetem, w razie prośby instalatora potwierdzamy OK.
Instalujemy rosyjską lokalizację i słowniki Ubuntu 20.04. W tym celu w wierszu poleceń wpisujemy:

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 # uwaga: wybierz ru_RU.UTF-8 UTF-8, zobacz zrzuty ekranu poniżej.
sudo apt-get install --reinstall locales


Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Dodajemy najnowszą wersję pulpitu KDE Plasma:

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


Dodajemy swój zestaw aplikacji konsolowych, na przykład mc i neofetch:

sudo apt install mc neofetch -y


Sprawdzamy, co udało się osiągnąć, wpisując w wierszu poleceń neofetch, zobacz zrzut ekranu:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Edytujemy plik konfiguracyjny WSL /etc/wsl.conf:

sudo nano /etc/wsl.conf


do otwartego pustego okna edytora tekstu kopiujemy tekst:

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


zapisujemy zmiany (Ctrl+O), potwierdzamy operację i wychodzimy z edytora tekstu (Ctrl+X).

Eksportujemy skonfigurowany obraz Ubuntu-20.04 do stworzonego przez nas katalogu wsl. W tym celu w Windows Terminal ponownie wybieramy zakładkę Windows PowerShell i wpisujemy komendę:

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


stworzony obraz pomoże nam zautomatyzować operacje uruchamiania/ponownej instalacji skonfigurowanego Ubuntu 20.04, a w razie potrzeby umożliwi łatwe przeniesienie na inny komputer.

Przygotowanie plików bat i skrótów na pulpit Windows

Za pomocą edytora Notepad++ tworzymy pliki bat (koniecznie w kodowaniu OEM-866 dla poprawnego wyświetlania znaków cyrylicy):
Plik Install-Ubuntu-20.04-plasma-desktop.bat — służy do automatyzacji początkowej instalacji utworzonego obrazu Ubuntu 20.04 na komputerze z już skonfigurowanym subsystemem WSL2 i serwerem X. Jeśli nazwa użytkownika i hasło różnią się od podanych w przykładzie, należy wprowadzić odpowiednie zmiany w tym pliku bat:

@echo off
wsl --set-default-version 2
cls
echo Proszę czekać na zakończenie instalacji dystrybucji Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Dystrybucja Ubuntu-20.04 została pomyślnie zainstalowana!
echo Nie zapomnij zmienić domyślnego konta „root” na istniejące konto użytkownika,
echo lub użyj preinstalowanego konta „engineer”, hasło: „password”.
pause


Plik Reinstall-Ubuntu-20.04-plasma-desktop.bat — służy do przeinstalowania przygotowanego obrazu Ubuntu 20.04 na komputerze.

@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Proszę czekać na zakończenie przeinstalowania dystrybucji Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Dystrybucja Ubuntu-20.04 została pomyślnie przeinstalowana!
pause


Plik Set-default-user.bat — do ustawienia „domyślnego” użytkownika.

@echo off
set /p answer=Wprowadź istniejące konto w Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Konto użytkownika %answer% w Ubuntu-20.04 zostało ustawione jako domyślne!
pause


Plik Start-Ubuntu-20.04-plasma-desktop.bat — właściwe uruchomienie środowiska graficznego KDE Plasma.

@echo off
echo ===================================== Uwaga! ============================================
echo  Aby poprawnie działało GUI Ubuntu 20.04 w WSL2, należy używać serwera X.
echo  Uwaga: w przypadku używania VcXsrv Windows X Server, należy odkomentować
echo  linie w pliku Start-Ubuntu-20.04-plasma-desktop.bat, które zawierają "config.xlaunch" i
echo  "vcxsrv.exe", oraz skomentować wszystkie linie, które zawierają "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


Plik Start-Ubuntu-20.04-terminal.bat — uruchamianie graficznego terminala bez pulpitu KDE Plasma.

@echo off
echo ===================================== Uwaga! ============================================
echo  Aby poprawnie działało GUI Ubuntu 20.04 w WSL2, należy użyć serwera X.
echo  Uwaga: w przypadku użycia VcXsrv Windows X Server należy odkomentować
echo  linie w pliku Start-Ubuntu-20.04-plasma-desktop.bat, które zawierają "config.xlaunch" i
echo  "vcxsrv.exe", a zakomentować wszystkie linie, które zawierają "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


Dla wygody użytkowania w katalogu wsl przygotowujemy skróty wskazujące na odpowiednie pliki bat. Następnie zawartość katalogu wsl wygląda następująco:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Uruchomienie pulpitu KDE Plasma

Sprawdzamy, czy wszystkie przygotowania zostały wykonane, próbujemy uruchomić skrót Plasma-desktop. Pojawia się prośba o hasło, wprowadzamy hasło konta i… okno zamyka się. Po raz pierwszy to normalne. Próbujemy ponownie — i widzimy znany panel zadań KDE Plasma. Ustawiamy wymagany wygląd panelu zadań, dla łatwiejszej obsługi przenosimy go na prawą stronę ekranu i centrowujemy. Sprawdzamy ustawienia lokalizacji, w razie potrzeby dodajemy język rosyjski:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

W razie potrzeby umieszczamy skróty do zainstalowanych aplikacji linuxowych na panelu zadań KDE Plasma.

Jeśli Ubuntu 20.04 wymaga wylogowania się z konta użytkownika, aby zastosować zmiany w ustawieniach, lub musisz ponownie uruchomić system operacyjny, wpisz w terminalu Windows polecenie:

wsl -d Ubuntu20.04 --shutdown


Za pomocą skrótu Plasma-desktop lub Konsole można uruchomić GUI KDE Plasma Ubuntu 20.04. Na przykład zainstalujmy za pomocą Konsole edytora graficznego GIMP:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Po zakończeniu instalacji uruchamiamy z Konsole edytora graficznego GIMP:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
GIMP działa, co miało być sprawdzone.
A oto jak działają różne aplikacje linuxowe w KDE Plasma w WSL2:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
panel zadań KDE Plasma jest umieszczony po prawej stronie ekranu, a wideo w oknie Firefox jest odtwarzane z dźwiękiem.

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

W razie potrzeby można skonfigurować dostęp do Ubuntu 20.04 przez SSH i RDP, aby to zrobić, należy zainstalować odpowiednie usługi poleceniem:

sudo apt install ssh xrdp -y


uwaga: aby włączyć dostęp za pomocą hasła przez SSH należy edytować plik /etc/ssh/sshd_config, a konkretnie parametr PasswordAuthentication no należy ustawić na wartość PasswordAuthentication yes, zapisać zmiany i ponownie uruchomić Ubuntu 20.04.

Za każdym razem, gdy uruchamiamy Ubuntu 20.04, zmienia się wewnętrzny adres IP, przed skonfigurowaniem zdalnego dostępu należy sprawdzić aktualny adres IP za pomocą polecenia ip a:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Odpowiedni adres IP należy wprowadzić w ustawieniach sesji SSH i RDP przed uruchomieniem.
Tak wygląda zdalny dostęp przez SSH za pomocą MobaXterm:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
A tak wygląda zdalny dostęp przez RDP:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik

Używając serwera X vcxsrv zamiast x410

Uruchamiamy i konfigurujemy vcxsrv, uważnie ustawiając odpowiednie zaznaczenia:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Zapisujemy skonfigurowaną konfigurację w katalogu wslvcxsrv z domyślną nazwą config.xlaunch.

Edycja plików bat Start-Ubuntu-20.04-plasma-desktop.bat i Start-Ubuntu-20.04-terminal.bat zgodnie z podanymi w nich instrukcjami.

Uruchamiamy skrót Plasma-desktop, a oto co otrzymujemy:

Windows 10 + Linux. Konfiguracja GUI KDE Plasma dla Ubuntu 20.04 w WSL2. Krok po kroku przewodnik
Pulpit KDE Plasma całkowicie zasłania pulpit Windows, aby przełączać się między oknami aplikacji linuxowych i windowsowych, używamy znanego skrótu klawiszowego Alt+Tab, co nie jest zbyt wygodne.
Ponadto okazało się, że serwer X ma nieprzyjemną cechę vcxsrv – zawiesza się przy uruchamianiu niektórych aplikacji, w szczególności GIMP czy LibreOffice Writer. Możliwe, że warto poczekać, aż programiści naprawią zauważone "błędy", ale nie jest to pewne... Dlatego dla uzyskania akceptowalnych wyników lepiej użyć serwera X Microsoft x410.

Podsumowanie

Trzeba przyznać, że firma Microsoft wykonała dobrą robotę, produkt WSL2 okazał się całkiem funkcjonalny, a z mojego niezaawansowanego punktu widzenia jest dość udany. I jak mi wiadomo, programiści nadal intensywnie nad nim pracują, i być może za rok lub dwa ta podsystema zaprezentuje się w całej swojej funkcjonalnej pełni.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster