Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Запровадження

Ця стаття призначена для системних адміністраторів, які готують типові робочі місця на комп'ютерах під керуванням Windows 10, у тому числі для розробників ПЗ.

Слід зазначити, що існує певна проблема, пов'язана з неможливістю інтеграції ПЗ, отриманого в on-line магазині Microsoft Store для використання в образі Windows 10. Не вдаючись у подробиці уточню, що дана проблема пов'язана з тим, що встановлені з Microsoft Store програми пов'язуються зі службовим обліковим записом Administrator, і при завершенні створення користувача образу утилітою sysprep виникають зумовлені цією обставиною помилки.

Розглянутий у цій статті спосіб дозволити уникнути такої проблеми при підготовці образу ОС Windows 10 з попередньо налаштованою підсистемою WSL2, а також із заздалегідь підготовленим та налаштованим чином ОС Ubuntu 20.04 з GUI KDE Plasma, який у свою чергу може мати свій набір програмного забезпечення.

У мережі Інтернет є велика кількість прикладів та посібників з налаштування підсистем WSL (тобто WSL1 та порівняно нової WSL2), з налаштуванням GUI інтерфейсу для linux систем на базі ОС починаючи з версії Ubuntu 16.04 і закінчуючи Ubuntu 20.04, але в основному це стосувалося робочих столів з урахуванням т.зв. «легковаго» xfce4, що має цілком зрозумілі обмеження в налаштуваннях користувача. Але щодо GUI KDE Plasma для Ubuntu 20.04, в мережі не знайшлося якоїсь істотної інформації. Але саме цей варіант надає кінцевому користувачеві практично необмежений набір як зовнішнього вигляду системи, так і налаштувань обладнання, звичайно з урахуванням поточних можливостей інтеграції linux-систем, реалізованих у підсистемі WSL2.

Встановлення необхідного набору програмного забезпечення та налаштування WSL2

Перевіряємо поточну версію Windows, для цього в рядку пошуку Windows вводимо команду winver і отримуємо приблизно таке:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Важливо, щоб ОС мала версію 1903 або 1909 (зазначені версії ОС повинні бути з встановленим накопичувальним оновленням KB4566116), або 2004 (номер складання не менше 19041), решта інформації не має значення. Якщо номер версії менший, то для повторення результатів, викладених у цій статті, рекомендується оновитися до останньої версії Windows.

Для зручності подальших дій встановлюємо безкоштовний Windows Terminal, використовуючи Microsoft Store (також існує можливість завантаження з інших джерел):

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Встановлюємо X Server X410 через той же Microsoft Store, це платне, але є безкоштовний період в 15 днів, що цілком достатньо для проведення різних тестів.

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Як безкоштовна альтернатива X410 викачуємо та встановлюємо X-сервер VcXsrv.

У будь-якому зручному місці на диску створюємо каталог, в якому зберігатимемо наші файли. Як приклад створимо каталог C:wsl.

Викачуємо і встановлюємо автономний інсталятор Ubuntu 20.04, розпаковуємо отриманий файл за допомогою архіватора (наприклад 7-zip). Перейменовуємо розпакований каталог із довгим ім'ям Ubuntu_2004.2020.424.0_x64 у щось більш прийнятне, наприклад Ubuntu-20.04 та копіюємо його в каталог C:wsl (далі за текстом просто wsl).

Викачуємо та розпаковуємо в каталог wsl кросплатформний звуковий сервер PulseAudio v.1.1., також вносимо виправлення до його файлів конфігурації.

У файлі wslpulseaudio-1.1etcpulsedefault.pa у розділі Load audio drivers statically редагуємо рядок:

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


а в розділі Network access редагуємо рядок:

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


У файлі wslpulseaudio-1.1etcpulsedaemon.conf розкоментуємо та змінюємо рядок

exit-idle-time = -1


Налаштовуємо підсистему WSL2 відповідно до документацією Microsoft. Єдине зауваження – дистрибутив Ubuntu ми вже завантажили, і встановлюватимемо його на наступному кроці. В основному, налаштування зводиться до включення додаткових компонентів «Підсистема Windows для Linux» та «Платформа віртуальної машини», і наступного перезавантаження для застосування змін у налаштуваннях комп'ютера:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

При необхідності викачуємо і встановлюємо пакет оновлень для ядра Linux WSL2.
Запускаємо Windows Terminal та вибираємо режим роботи Command Prompt натисканням клавіш Ctrl+Shift+2.

Насамперед встановлюємо режим роботи WSL2, для цього вводимо команду:

wsl  --set-default-version 2


Переходимо до каталогу з автономним завантажувачем Ubuntu 20.04, у моєму випадку це wslUbuntu-20.04 та запускаємо файл ubuntu2004.exe. Якщо з'явиться запит імені користувача, вказую ім'я engineer (можна ввести будь-яке інше ім'я), ввести свій пароль та підтвердити введений пароль для вказаного облікового запису:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
З'явився рядок запрошення терміналу, ядро ​​Ubuntu 20.04 встановлено. Перевіримо правильність налаштування режиму WSL2, для цього в Windows Terminal вибираємо закладку Windows PowerShell і вводимо:

wsl -l -v


результат виконання має бути таким:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Налаштовуємо брандмауер Microsoft Defender, тобто. відключаємо його для загальнодоступної мережі:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Налаштування Ubuntu 20.04

У Windows Terminal знову вибираємо закладку Command Prompt та встановлюємо оновлення для Ubuntu 20.04. Для цього в командному рядку вводимо:

sudo apt update && sudo apt upgrade –y


Встановлюємо робочий стіл KDE Plasma:

sudo apt install kubuntu-desktop -y


установка займає до 30 хвилин в залежності від продуктивності комп'ютера та пропускної спроможності каналу доступу в Internet, при появі запиту установника підтверджуємо OK.
Встановлюємо російську локалізацію та словники Ubuntu 20.04. Для цього в командному рядку вводимо:

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


Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Додаємо останню версію робочого столу KDE Plasma:

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


Додаємо свій набір консольних додатків, наприклад mc и neofetch:

sudo apt install mc neofetch -y


Перевіряємо, що вийшло, вводимо до командного рядка neofetch, див. скріншот:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Редагуємо конфігураційний файл WSL /etc/wsl.conf:

sudo nano /etc/wsl.conf


у порожнє вікно текстового редактора, що відкрилося, копіюємо текст:

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


зберігаємо зміни (Ctrl+O), підтверджуємо операцію та виходимо з текстового редактора (Ctrl+X).

Експортуємо налаштований образ Ubuntu-20.04 у створений нами каталог wsl. Для цього в Windows Terminal знову вибираємо закладку Windows PowerShell і вводимо:

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


створений образ допоможе нам автоматизувати операції запуску/перевстановлення налаштованої Ubuntu 20.04, при необхідності дозволить легко перенести на інший комп'ютер.

Підготовка bat-файлів та ярликів на робочий стіл Windows

За допомогою редактора Notepad++ створюємо bat-файли (обов'язково у кодуванні OEM-866 для коректного виведення символів кирилиці):
Файл Install-Ubuntu-20.04-plasma-desktop.bat — призначений для автоматизації початкової установки створеного образу Ubuntu 20.04 на комп'ютері з налаштованою підсистемою WSL2 і X-сервером. Якщо ім'я користувача та пароль відрізняється від зазначених у прикладі, необхідно внести відповідні зміни до цього bat-файлу:

@echo off
wsl --set-default-version 2
cls
echo Ожидайте окончания установки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно установлен!
echo Не забудьте сменить учетную запись по умолчанию «root» на существующую учетную запись пользователя,
echo либо используйте предустановленную учетную запись «engineer», пароль: «password».
pause


Файл Reinstall-Ubuntu-20.04-plasma-desktop.bat — призначений для повторного встановлення підготовленого образу Ubuntu 20.04 на комп'ютері.

@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:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно переустановлен!
pause


Файл Set-default-user.bat — для встановлення користувача за промовчанням.

@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause


Файл Start-Ubuntu-20.04-plasma-desktop.bat - Власне запуск робочого столу 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: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


Файл Start-Ubuntu-20.04-terminal.bat - запуск графічного терміналу без робочого столу 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: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


Також для зручності використання у каталозі wsl готуємо ярлики, що вказують на відповідні bat-файли. Після чого вміст каталогу wsl виглядає наступним чином:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Запуск робочого столу KDE Plasma

Перевіряємо, що всі підготовчі дії виконані, пробуємо запустити ярлик Plasma-desktop. З'являється запит пароля, вводимо пароль для облікового запису і вікно закривається. Вперше це нормально. Пробуємо ще раз і бачимо знайому панель завдань KDE Plasma. Налаштовуємо потрібний зовнішній вигляд панелі завдань, на прикладі для зручності використання панель переноситься в праву частину екрана і центрується. Перевіряємо налаштування локалізації, при необхідності додаємо російську мову:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

У разі потреби виносимо ярлики для встановлених linux-додатків на панель завдань KDE Plasma.

Якщо Ubuntu 20.04 вимагає вийти з облікового запису користувача для застосування змін в налаштуваннях, або Вам необхідно перезавантажити ОС, для цього в Windows Terminal введіть команду:

wsl -d Ubuntu20.04 --shutdown


За допомогою ярлика Plasma-desktop або Konsole можна запустити GUI KDE Plasma Ubuntu 20.04. Наприклад, встановимо за допомогою Konsole графічний редактор GIMP:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Після закінчення установки запускаємо з Konsole графічний редактор GIMP:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
GIMP працює, що й потрібно перевірити.
А ось як працюють різні linux-додатки в KDE Plasma у WSL2:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
панель завдань KDE Plasma знаходиться в правій частині екрана. а відео у вікні Firefox відтворюється зі звуком.

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

При необхідності можна налаштувати доступ до Ubuntu20.04 SSH и RDP, для цього необхідно встановити відповідні служби командою:

sudo apt install ssh xrdp -y


примітка: для включення парольного доступу SSH потрібно відредагувати файл /etc/ssh/sshd_config, а саме параметр PasswordAuthentication no необхідно встановити значення PasswordAuthentication yes, зберегти зміни та перезавантажити Ubuntu20.04.

При кожному запуску Ubuntu20.04 змінюється внутрішня IP-адреса, перед налаштуванням віддаленого доступу необхідно уточнити поточну IP-адресу за допомогою команди ip a:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Відповідно, цю ip-адресу необхідно внести до налаштувань сесій SSH и RDP перед запуском.
Ось так виглядає віддалений доступ по SSH за допомогою MobaXterm:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
А ось так виглядає віддалений доступ по RDP:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво

Використання X-сервера vcxsrv замість x410

Запускаємо та налаштовуємо vcxsrv, уважно встановлюємо відповідні прапорці:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Зберігаємо налаштовану конфігурацію в каталозі wslvcxsrv зі стандартним ім'ям config.xlaunch.

Редагуємо bat-файли Start-Ubuntu-20.04-plasma-desktop.bat и Start-Ubuntu-20.04-terminal.bat відповідно до наявних у них інструкцій.

Запускаємо ярлик Plasma-desktop, і ось що отримуємо:

Windows 10+Linux. Налаштування GUI KDE Plasma для Ubuntu 20.04 у WSL2. Покрокове керівництво
Робочий стіл KDE Plasma повністю закриває робочий стіл Windows, для перемикання між вікнами linux-і windows-додатків використовуємо відому комбінацію клавіш Alt+Tabщо не зовсім зручно.
Крім того, з'ясувалась неприємна особливість X-сервера vcxsrv - він "падає" при запуску деяких програм, зокрема того ж GIMP або LibreOffice Writer. Можливо, слід почекати, коли розробники приберуть помічені «баги», але це не точно… Так що для отримання прийнятних результатів краще використовувати X Server Microsoft x410.

Висновок

Все-таки треба віддати належне компанії Microsoft, продукт WSL2 вийшов цілком робочим, і на мій недосвідчений погляд дуже вдалим. І наскільки мені відомо, розробники продовжують посилено його «допилювати», і можливо — через рік-другий, ця підсистема постане у всій своїй функціональній повноті.

Джерело: habr.com

Додати коментар або відгук