Windows 10 + Linux. Configuración de la GUI de KDE Plasma para Ubuntu 20.04 en WSL2. Guía paso por paso





Introducción



Este artículo está destinado a los administradores de sistemas que preparan lugares de trabajo típicos en computadoras que ejecutan Windows 10, incluidos los desarrolladores de software.



Cabe destacar que existe cierto problema relacionado con la imposibilidad de integrar el software obtenido de la Microsoft Store on-line para usar en una imagen personalizada de Windows 10. Sin entrar en detalles, aclararé que este problema se debe a que los programas instalados desde la Microsoft Store están vinculados con la cuenta de servicio del Administrador, y cuando la utilidad completa la creación de una imagen personalizada sysprep, se producen errores debido a esta circunstancia.



El método discutido en este artículo para evitar tal problema al preparar una imagen de Windows 10 con un subsistema WSL2 preconfigurado, así como con una imagen pre-preparada y configurada de Ubuntu 20.04 con la GUI de KDE Plasma, que a su vez puede tener su propio conjunto de software personalizado.



En Internet hay una gran cantidad de ejemplos y guías para configurar subsistemas WSL (es decir, WSL1 y el relativamente nuevo WSL2), con la configuración de la interfaz GUI para sistemas Linux basados ​​en el sistema operativo a partir de Ubuntu 16.04 a Ubuntu 20.04, pero principalmente se trata de escritorios basados ​​en los llamados. Xfce4 "ligero", que tiene limitaciones comprensibles en la configuración del usuario. Pero en lo que respecta a la GUI de KDE Plasma para Ubuntu 20.04, no se encontró información significativa en la red. Pero es esta opción la que proporciona al usuario final un conjunto casi ilimitado de configuraciones tanto para la apariencia del sistema como para la configuración del hardware, por supuesto, teniendo en cuenta las capacidades de integración actuales de los sistemas Linux implementados en el subsistema WSL2.



Instalación del paquete de software requerido y configuración de WSL2



Verificamos la versión actual de Windows, para esto, en la barra de búsqueda de Windows, ingresamos el comando winvery obtenemos algo como lo siguiente:





Es importante que el sistema operativo tenga la versión 1903 o 1909 (las versiones especificadas del sistema operativo deben tener instalada la actualización acumulativa KB4566116), o 2004 (número de compilación no menor que 19041), el resto de la información no importa. Si el número de versión es menor, se recomienda que actualice a la última versión de Windows para repetir correctamente los resultados presentados en este artículo.



Para la conveniencia de otras acciones, instale el Terminal de Windows gratuito usando Microsoft Store (también existe la posibilidad de descargar desde otras fuentes):





Instalamos X Server X410 a través de la misma Microsoft Store, este software es de pago, pero hay un período gratuito de 15 días, que es suficiente para varias pruebas.





Como alternativa gratuita a X410, descargue e instale el servidor VcXsrv X.



En cualquier lugar conveniente del disco, cree un directorio en el que almacenaremos nuestros archivos. Creemos un directorio como ejemplo C:\wsl.



Descargue e instale el instalador fuera de línea de Ubuntu 20.04, descomprima el archivo resultante usando un archivador (por ejemplo, 7-zip). Cambie el nombre del directorio descomprimido con un nombre largo Ubuntu_2004.2020.424.0_x64a algo más aceptable, por ejemplo, Ubuntu-20.04y cópielo en un directorio C:\wsl(en adelante, simplemente \wsl).



Descargue y descomprima el \wslservidor de sonido multiplataforma PulseAudio v.1.1 en el directorio y también realice correcciones en sus archivos de configuración.



En el archivo \wsl\pulseaudio-1.1\etc\pulse\default.padebajoLoad audio drivers statically editar la línea:



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


y en la sección, Network accessedite la línea:



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


En el archivo, \wsl\pulseaudio-1.1\etc\pulse\daemon.confdescomenta y cambia la línea



exit-idle-time = -1


Configuramos el subsistema WSL2 de acuerdo con la documentación de Microsoft. La única nota es que ya hemos descargado la distribución de Ubuntu y la instalaremos en el siguiente paso. Básicamente, la configuración se reduce a habilitar los componentes adicionales "Subsistema de Windows para Linux" y "Plataforma de máquina virtual", y luego reiniciar para aplicar los cambios a la configuración de la computadora:







Si es necesario, descargue e instale el paquete de actualización para el kernel de Linux en WSL2.

Inicie Windows Terminal y seleccione el modo de símbolo del sistema presionando las teclas Ctrl+Shift+2.



En primer lugar, configuramos el modo de funcionamiento WSL2, para ello ingresamos el comando:



wsl  --set-default-version 2


Vaya al directorio con el cargador de arranque fuera de línea Ubuntu 20.04, en mi caso, este es \wsl\Ubuntu-20.04y ejecute el archivo ubuntu2004.exe. Cuando se me solicita un nombre de usuario, especifico un nombre engineer(puede ingresar cualquier otro nombre), ingrese su contraseña y confirme la contraseña ingresada para la cuenta especificada:





Aparece un indicador de terminal, el kernel de Ubuntu 20.04 está instalado. Verifiquemos la corrección de la configuración del modo WSL2, para esto, en la Terminal de Windows, seleccione la pestaña Windows PowerShell e ingrese el comando:



wsl -l -v


el resultado de la ejecución debería ser así:







Configuramos el firewall de Microsoft Defender, es decir deshabilítelo para la red pública:









Configuración de Ubuntu 20.04



En Windows Terminal, seleccione la pestaña Símbolo del sistema nuevamente e instale las actualizaciones para Ubuntu 20.04. Para hacer esto, en la línea de comando, ingrese:



sudo apt update && sudo apt upgrade –y


Instalación del escritorio KDE Plasma:



sudo apt install kubuntu-desktop -y


la instalación tarda hasta 30 minutos, dependiendo del rendimiento de la computadora y el ancho de banda del canal de acceso a Internet, cuando lo solicite el instalador, confirmamos OK.

Instalación de la localización y los diccionarios de ruso Ubuntu 20.04. Para hacer esto, en la línea de comando, ingrese:



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






Agregue la última versión del escritorio KDE Plasma:



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


Agregar un conjunto de aplicaciones de consola, por ejemplo mc, y neofetch:



sudo apt install mc neofetch -y


Verificamos lo que sucedió, lo ingresamos en la línea de comando neofetch, mira la captura de pantalla:





Editando el archivo de configuración de WSL /etc/wsl.conf:



sudo nano /etc/wsl.conf


copie el texto en la ventana del editor de texto vacía abierta:



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


guardar los cambios ( Ctrl+O), confirmar la operación y salir del editor de texto ( Ctrl+X).



Exportamos la imagen Ubuntu-20.04 personalizada al directorio que creamos \wsl. Para hacer esto, en la Terminal de Windows, seleccione la pestaña Windows PowerShell nuevamente e ingrese el comando:



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


la imagen creada nos ayudará a automatizar las operaciones de inicio / reinstalación del Ubuntu 20.04 configurado, si es necesario, nos permitirá transferirlo fácilmente a otro equipo.



Preparación de archivos bat y accesos directos al escritorio de Windows



Con el editor Notepad ++, cree archivos bat (obligatorio en la codificación OEM-866 para la visualización correcta de caracteres cirílicos):

Archivo Install-Ubuntu-20.04-plasma-desktop.bat: diseñado para automatizar la instalación inicial de la imagen de Ubuntu 20.04 creada en una computadora con un subsistema WSL2 y un servidor X ya configurado. Si el nombre de usuario y la contraseña difieren de los especificados en el ejemplo, debe realizar los cambios adecuados en este archivo 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


Archivo Reinstall-Ubuntu-20.04-plasma-desktop.bat: destinado a reinstalar la imagen preparada de Ubuntu 20.04 en la computadora.



@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


Archivo Set-default-user.bat: para establecer el usuario "predeterminado".



@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


El archivo Start-Ubuntu-20.04-plasma-desktop.bates el lanzamiento real del escritorio 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


Archivo Start-Ubuntu-20.04-terminal.bat: inicia un terminal gráfico sin el escritorio 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


Además, para facilitar su uso, \wslpreparamos accesos directos en el directorio que apuntan a los archivos bat correspondientes. Después de eso, el contenido del directorio se \wslve así:







Iniciar el escritorio KDE Plasma



Comprobamos que se han completado todas las acciones preparatorias, intentamos lanzar el atajo Plasma-desktop. Aparece una solicitud de contraseña, ingrese la contraseña de la cuenta y ... la ventana se cierra. Está bien la primera vez. Intentando de nuevo, vemos la barra de tareas familiar de KDE Plasma. Personalizamos la apariencia requerida de la barra de tareas, por ejemplo, para facilitar su uso, el panel se mueve al lado derecho de la pantalla y se centra. Verificamos la configuración de localización, si es necesario, agregamos el idioma ruso:







Si es necesario, coloque accesos directos para las aplicaciones de Linux instaladas en la barra de tareas de KDE Plasma.



Si Ubuntu 20.04 requiere que cierre sesión en la cuenta de usuario para aplicar los cambios en la configuración, o necesita reiniciar el sistema operativo, para hacer esto, ingrese el comando en la Terminal de Windows:



wsl -d Ubuntu20.04 --shutdown


Con el acceso directo Plasma-desktopo, Konsolepuede iniciar la GUI de KDE Plasma Ubuntu 20.04. Por ejemplo, instalemos usando el Konsoleeditor de gráficos GIMP:





Una vez completada la instalación, ejecute el Konsoleeditor gráfico GIMP desde el editor gráfico:





El GIMP funciona, que es lo que querías comprobar.

Y así es como funcionan las diversas aplicaciones de Linux en KDE Plasma en WSL2:





la barra de tareas personalizada de KDE Plasma está en el lado derecho de la pantalla. y el video en la ventana de Firefox se reproduce con sonido.









Si es necesario, puede configurar el acceso a Ubuntu20.04 mediante SSHy RDP, para ello necesita instalar los servicios adecuados con el comando:



sudo apt install ssh xrdp -y


nota: para habilitar el acceso con contraseña por software, SSHdebe editar el archivo /etc/ssh/sshd_config, es decir, el parámetro PasswordAuthentication nodebe establecerse en un valor PasswordAuthentication yes, guardar los cambios y reiniciar Ubuntu20.04.



Cada vez que inicia Ubuntu20.04, la dirección IP interna cambia, antes de configurar el acceso remoto, debe especificar la dirección IP actual usando el comando ip a:





En consecuencia, se requiere la dirección IP en la configuración de la sesión SSHy RDPantes de comenzar.

Así es como se ve el acceso remoto al SSHsoftware usando MobaXterm:





Y así es como se ve el acceso remoto RDP:







Usando el servidor vcxsrv X en lugar de x410



Inicie y configure vcxsrv, marque cuidadosamente las casillas correspondientes:











Guardamos la configuración configurada en un directorio \wsl\vcxsrvcon un nombre estándar config.xlaunch.



Editamos archivos bat Start-Ubuntu-20.04-plasma-desktop.baty Start-Ubuntu-20.04-terminal.batde acuerdo con las instrucciones disponibles en ellos.



Lanzamos el atajo Plasma-desktop, y esto es lo que obtenemos:





El escritorio KDE Plasma cierra por completo el escritorio de Windows, usamos una combinación de teclas muy conocida para cambiar entre ventanas de linux y aplicaciones de Windows Alt+Tab, lo cual no es muy conveniente.

Además, se reveló una característica desagradable del servidor X vcxsrv: se bloquea al iniciar algunas aplicaciones, en particular, el mismo GIMP o LibreOffice Writer. Quizás debería esperar a que los desarrolladores eliminen los "errores" notados, pero esto no es seguro ... Por lo tanto, para obtener resultados aceptables, es mejor utilizar Microsoft X Server x410.



Conclusión



Aún así, debemos rendir homenaje a Microsoft, el producto WSL2 resultó ser bastante funcional y, en mi opinión poco sofisticada, muy exitoso. Y hasta donde yo sé, los desarrolladores continúan trabajando duro para "terminarlo", y tal vez, en un año o dos, este subsistema aparecerá en toda su integridad funcional.



All Articles