
Introduzione
Questo articolo è rivolto agli amministratori di sistema che stanno preparando postazioni di lavoro standard su computer con sistema operativo Windows 10, compresi gli sviluppatori software.
È importante notare che esiste un problema legato all'impossibilità di integrare il software acquistato nel Microsoft Store online per l'utilizzo nell'immagine utente di Windows 10. Senza entrare nei dettagli, specifico che questo problema è dovuto al fatto che i programmi installati dal Microsoft Store sono associati all'account amministrativo, e al termine della creazione dell'immagine utente utilizzando sysprep si verificano errori correlati a questa circostanza.
Il metodo descritto in questo articolo permette di evitare tale problema durante la preparazione dell'immagine del sistema operativo Windows 10, con il sottosistema WSL2 preconfigurato e un'immagine di Ubuntu 20.04 con GUI KDE Plasma già preparata e configurata, che può includere il proprio set di software personalizzato.
In rete ci sono numerosi esempi e guide per la configurazione delle sottosistemi WSL (ossia WSL1 e la relativamente nuova WSL2), con impostazioni dell'interfaccia GUI per i sistemi Linux a partire dalla versione Ubuntu 16.04 fino a Ubuntu 20.04, ma principalmente si è parlato di ambienti desktop basati sul cosiddetto «leggero» xfce4, che presenta chiaramente delle limitazioni nelle impostazioni utente. Tuttavia, per quanto riguarda la GUI KDE Plasma per Ubuntu 20.04, non si è trovata alcuna informazione sostanziale in rete. Ma proprio questa opzione offre all'utente finale un set quasi illimitato di configurazioni sia per l'aspetto del sistema che per le impostazioni hardware, ovviamente tenendo conto delle attuali possibilità di integrazione dei sistemi Linux implementati nella sottosistema WSL2.
Installazione del set di software richiesto e configurazione di WSL2
Controlliamo la versione corrente di Windows; per fare ciò, nella barra di ricerca di Windows inseriamo il comando winver e otteniamo all'incirca quanto segue:
È importante che il sistema operativo abbia la versione 1903 o 1909 (le versioni del sistema operativo indicate devono avere l'aggiornamento cumulativo KB4566116 installato), oppure 2004 (numero di build almeno 19041); le altre informazioni non sono rilevanti. Se il numero di versione è inferiore, per ottenere risultati corretti secondo quanto esposto in questo articolo, si raccomanda di aggiornarsi all'ultima versione di Windows.
Per facilitare le azioni successive, installiamo il Windows Terminal gratuito tramite il Microsoft Store (è anche possibile scaricarlo da altre fonti):
Installiamo X Server X410 dallo stesso Microsoft Store; questo software è a pagamento, ma offre un periodo di prova gratuito di 15 giorni, sufficiente per condurre varie prove.
Come alternativa gratuita a X410, e installiamo il server X VcXsrv.
In un luogo a scelta sul disco, creiamo una directory in cui memorizzeremo i nostri file. Come esempio, creeremo la directory C:wsl.
e installiamo il pacchetto di installazione offline di Ubuntu 20.04, estraiamo il file ottenuto con un programma di archiviazione (ad esempio, 7-zip). Rinominiamo la directory estratta con un nome lungo Ubuntu_2004.2020.424.0_x64 in qualcosa di più accettabile, ad esempio Ubuntu-20.04 e lo copiamo nella cartella C:wsl (di seguito semplicemente wsl).
e scompattiamo nella cartella wsl server audio multipiattaforma PulseAudio v.1.1., e apportiamo anche modifiche ai suoi file di configurazione.
Nel file wslpulseaudio-1.1etcpulsedefault.pa nella sezione Carica i driver audio in modo statico modifichiamo la riga:
load-module module-waveout sink_name=output source_name=input record=0
nella sezione Accesso alla rete modifichiamo la riga:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
Nel file wslpulseaudio-1.1etcpulsedaemon.conf decommentiamo e modifichiamo la riga
exit-idle-time = -1
Configuriamo il sotto-sistema WSL2 in conformità con Microsoft. L'unico appunto è che la distribuzione Ubuntu l'abbiamo già scaricata, e la installeremo nel passaggio successivo. Fondamentalmente, la configurazione consiste nell'attivare componenti aggiuntivi come "Sottosistema Windows per Linux" e "Piattaforma virtuale", e successivamente riavviare per applicare le modifiche nelle impostazioni del computer:
Se necessario e installiamo il pacchetto di aggiornamenti per il kernel Linux in WSL2.
Avviamo Windows Terminal e scegliamo la modalità di lavoro del Prompt dei Comandi premendo i tasti Ctrl+Shift+2.
In primo luogo, impostiamo la modalità WSL2, per farlo immettiamo il comando:
wsl --set-default-version 2
Passiamo alla cartella con il caricatore di avvio autonomo di Ubuntu 20.04, nel mio caso si tratta di wslUbuntu-20.04 e avviamo il file ubuntu2004.exe. Quando appare la richiesta del nome utente, inserisco il nome engineer (è possibile inserire un altro nome), inserire la propria password e confermare la password inserita per l'account specificato:
È comparsa la riga del terminale, il kernel di Ubuntu 20.04 è installato. Verifichiamo la corretta configurazione della modalità WSL2, per farlo in Windows Terminal scegliamo la scheda Windows PowerShell e inseriamo il comando:
wsl -l -v
il risultato dell'esecuzione dovrebbe essere questo:
Configuriamo il firewall di Microsoft Defender, ovvero disattiviamolo per la rete pubblica:
Configurazione di Ubuntu 20.04
In Windows Terminal scegliamo di nuovo la scheda Command Prompt e installiamo gli aggiornamenti per Ubuntu 20.04. Per fare ciò nella linea di comando inseriamo:
sudo apt update && sudo apt upgrade –y
Installiamo l'ambiente desktop KDE Plasma:
sudo apt install kubuntu-desktop -y
l'installazione richiede fino a 30 minuti a seconda delle prestazioni del computer e della larghezza di banda della connessione Internet, quando appare la richiesta dell'installatore confermiamo OK.
Installiamo la localizzazione russa e i dizionari di Ubuntu 20.04. Per fare ciò nella linea di comando inseriamo:
sudo apt install language-pack-it language-pack-kde-it -y
sudo apt install libreoffice-l10n-it libreoffice-help-it -y
sudo apt install hunspell-it mueller7-dict -y
sudo update-locale LANG=it_IT.UTF-8
sudo dpkg-reconfigure locales # nota: scegliamo it_IT.UTF-8 UTF-8, vedere gli screenshot qui sotto.
sudo apt-get install --reinstall locales
Aggiungiamo l'ultima versione dell'ambiente desktop KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Aggiungiamo il nostro set di applicazioni per la console, ad esempio mc e neofetch:
sudo apt install mc neofetch -y
Controlliamo cosa abbiamo ottenuto, digitando nella riga di comando neofetch, vedere lo screenshot:
Modifichiamo il file di configurazione WSL /etc/wsl.conf:
sudo nano /etc/wsl.conf
nella finestra vuota dell'editor di testo aperta incolliamo il testo:
[automount]
enabled = true
root = /mnt
options = "metadata,umask=22,fmask=11"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
salviamo le modifiche (Ctrl+O), confermiamo l'operazione e usciamo dall'editor di testo (Ctrl+X).
Esportiamo l'immagine di Ubuntu-20.04 configurata nella directory che abbiamo creato wsl. A questo scopo, di nuovo nel Windows Terminal, scegliamo la scheda Windows PowerShell e digitiamo il comando:
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
l'immagine creata ci aiuterà ad automatizzare le operazioni di avvio/reinstallazione della configurazione di Ubuntu 20.04 e, se necessario, ci permetterà di trasferirla facilmente su un altro computer.
Preparazione di file bat e collegamenti sul desktop di Windows
Utilizzando l'editor Notepad++, creiamo file bat (assicurandoci di utilizzare la codifica OEM-866 per un'uscita corretta dei caratteri cirillici):
File Install-Ubuntu-20.04-plasma-desktop.bat — progettato per automatizzare l'installazione iniziale dell'immagine di Ubuntu 20.04 su un computer già configurato con il sottosistema WSL2 e un server X. Se il nome utente e la password sono diversi da quelli indicati nell'esempio, è necessario apportare le modifiche corrispondenti a questo file bat:
@echo off
wsl --set-default-version 2
cls
echo Attendere il completamento dell'installazione della distribuzione Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo La distribuzione Ubuntu-20.04 è stata installata con successo!
echo Non dimenticare di cambiare l'account predefinito «root» con un account utente esistente,
echo oppure utilizzare l'account preinstallato «engineer», password: «password».
pause
File Reinstall-Ubuntu-20.04-plasma-desktop.bat — progettato per reinstallare l'immagine preparata di Ubuntu 20.04 su un computer.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Attendere il completamento della reinstallazione della distribuzione Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo La distribuzione Ubuntu-20.04 è stata reinstallata con successo!
pause
File Set-default-user.bat — per impostare l'utente «predefinito».
@echo off
set /p answer=Inserisci un'account esistente in Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo L'account utente %answer% in Ubuntu-20.04 è stato impostato come predefinito!
pause
File Start-Ubuntu-20.04-plasma-desktop.bat — avvio del desktop KDE Plasma.
@echo off
echo ===================================== Attenzione! ============================================
echo Per un corretto funzionamento dell'interfaccia grafica di Ubuntu 20.04 in WSL2 è necessario utilizzare un X Server.
echo Nota: se si utilizza VcXsrv Windows X Server, è necessario decommentare
echo le righe nel file Start-Ubuntu-20.04-plasma-desktop.bat contenenti "config.xlaunch" e
echo "vcxsrv.exe", e commentare tutte le righe contenenti "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
File Start-Ubuntu-20.04-terminal.bat — avvio del terminale grafico senza l'ambiente desktop KDE Plasma.
@echo off
echo ===================================== Attenzione! ============================================
echo Per un corretto funzionamento dell'interfaccia grafica di Ubuntu 20.04 in WSL2 è necessario utilizzare un X Server.
echo Nota: se si utilizza VcXsrv Windows X Server, è necessario decommentare
echo le righe nel file Start-Ubuntu-20.04-plasma-desktop.bat che contengono "config.xlaunch" e
echo "vcxsrv.exe", e commentare tutte le righe che contengono "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
Inoltre, per facilitare l'uso nella directory wsl prepariamo collegamenti che puntano ai corrispondenti file bat. Dopo di che il contenuto della directory wsl si presenta nel seguente modo:
Avvio del desktop KDE Plasma
Verifichiamo che tutte le operazioni preliminari siano state eseguite, proviamo a lanciare il collegamento Plasma-desktop. Compare a password prompt, enter the account password, and… the window closes. The first time this is normal. We try again — and see the familiar KDE Plasma taskbar. We configure the desired appearance of the taskbar; for convenience, it is moved to the right side of the screen and centered. We check the localization settings and, if necessary, add the Italian language:
If needed, we move the shortcuts for the installed Linux applications to the KDE Plasma taskbar.
If Ubuntu 20.04 requires you to log out of the user account to apply changes in settings, or you need to restart the OS, enter the command in Windows Terminal:
wsl -d Ubuntu20.04 --shutdown
Using the shortcut Plasma-desktop o Konsole you can start the KDE Plasma GUI of Ubuntu 20.04. For example, let's install the Konsole graphic editor GIMP:
After the installation is complete, we launch from Konsole graphic editor GIMP:
GIMP is working, which is what needed to be verified.
And here is how various Linux applications work in KDE Plasma on WSL2:
the configured KDE Plasma taskbar is on the right side of the screen, and the video in the Firefox window is playing with sound.
If necessary, access to Ubuntu 20.04 can be configured. SSH e RDP, è necessario installare i servizi appropriati con il comando:
sudo apt install ssh xrdp -y
nota: per abilitare l'accesso tramite password, SSH è necessario modificare il file /etc/ssh/sshd_config, in particolare il parametro PasswordAuthentication no deve essere impostato su PasswordAuthentication yes, salvare le modifiche e riavviare Ubuntu 20.04.
Ad ogni avvio di Ubuntu 20.04, l'indirizzo IP interno cambia, prima di configurare l'accesso remoto è necessario verificare l'indirizzo IP attuale con il comando ip a:
Di conseguenza, questo indirizzo IP deve essere inserito nelle impostazioni delle sessioni SSH e RDP prima di avviare.
Ecco come appare l'accesso remoto tramite SSH utilizzando MobaXterm:
Ed ecco come appare l'accesso remoto tramite RDP:
Utilizzo del server X vcxsrv invece di x410
Avviamo e configuramo vcxsrv, prestando attenzione a selezionare le opzioni appropriate:




Salviamo la configurazione impostata nella cartella wslvcxsrv con il nome standard config.xlaunch.
Modifichiamo i file bat Start-Ubuntu-20.04-plasma-desktop.bat e Start-Ubuntu-20.04-terminal.bat in base alle istruzioni contenute in essi.
Avviamo il collegamento Plasma-desktop, ecco cosa otteniamo:
Il desktop KDE Plasma copre completamente il desktop Windows, per passare tra le finestre delle applicazioni linux e windows utilizziamo la nota combinazione di tasti Alt+Tab, il che non è molto comodo.
Inoltre, è emersa una sgradevole caratteristica del server X vcxsrv – esso tende a “crashare” durante l’avvio di alcune applicazioni, in particolare di GIMP o LibreOffice Writer. Potrebbe essere necessario attendere che gli sviluppatori risolvano i bug riscontrati, ma non è certo... Quindi, per ottenere risultati accettabili, è meglio utilizzare X Server Microsoft x410.
Conclusione
Tuttavia, bisogna riconoscere i meriti della Microsoft, il prodotto WSL2 risulta essere piuttosto funzionante e, dal mio punto di vista inesperto, piuttosto soddisfacente. E per quanto ne so, gli sviluppatori continuano a perfezionarlo e, forse, tra un anno o due, questo sottosistema si presenterà nella sua piena funzionalità.
Fonte: habr.com
