Windows + WSL2/Ubuntu = INCREIBLE

ciberobrero

Madmaxista
Desde
15 Abr 2017
Mensajes
27.006
Reputación
69.133
Recientemente compré de oferta un Acer Nitro 5 que es un portátil gaming, pero para programar y hacer análisis de datos. Viene con una Nvidia 3050 y la Intel integrada.

Inicialmente instalé Ubuntu con Gnome Shell que me parece la mejor propuesta de escritorio con diferencia (tecla de Windows inicia launchpad y vista general de los escritorios virtuales a la vez).

Primer gran problema: drivers de nvidia para Linux, una castaña. Gnome sólo tiene soporte de gestos trackpad bajo Wayland y resulta que Wayland se lleva mal con los drivers de Nvidia, que son los que controlan el monitor externo, por tanto el renderizado en el monitor externo se hace con copias de memoria entre buffers, sin nada de aceleración, con lo que la tosquedad es digna de Slackware de 1997 sobre mi 486 DX2. Solución, volver a XOrg y renunciar a los gestos avanzados (hay una manera de conseguir gestos pero el resultado es muchisimo peor que el nativo con Wayland).

El caso es que para meter CUDA y poder hacer regresiones lineales sobre la tarjeta gráfica (y pruebas con Stable diffusion) cambié los drivers. Boom. Perdí la capacidad de sleep, el ordenador se colgaba al cerrar la tapa y había que reiniciarlo. Eso fue la gota que colmó el vaso con el escritorio Linux, desgraciadamente.

Había visto videos de gente que trabajaba con WSL2 y los volví a echar un vistazo. Concluí que en realidad eso es lo que solucionaba todos mis problemas: Dejar a Windows maneje el hardware, la gráfica y el touchpad en particular, pero trabajar sobre Linux.




La verdad es que la experiencia es increíble. No me entero de que estoy bajo Windows, ya que tengo el navegador (Vivaldi con su quickcommands en F2) y el editor (VSCode) a pantalla completa y manejo todo o casi todo con combinaciones de teclas. La batería dura mucho más porque todos los drivers están más pulidos.

Los de Microsoft han sacado lo que llaman el "Windows Terminal" que es un terminal con el que puedes enlazar directamente con el perfil WSL2 que quieras (Ubuntu) y tiene "modo Quake". El Visual Studio Code puede iniciarse en modo WSL2 con dicho perfil también, así que lo que ves ahí es la estructura de directorios de Ubuntu, tienes todos los paquetes de Ubuntu disponibles y el Linux "ve" toda la memoria del ordenador disponible ya que es WSL2 a través de Windows quien la gestiona, no se asigna como una máquina virtual.




El acceso a la tarjeta gráfica es directo. He instalado el paquete tensorflow-directml y despues reemplacé la dependencia de numpy por numpy-mkl (aprovechando la CPU Intel) y scipy-mkl, además de reemplazar OpenBLAS y LAPACK por MKL. Ya he hecho una regresión lineal de ejemplo con tensorflow.keras con la GPU, antes de meterme a una prueba multioutput que me han pedido sobre datos clínicos

Ahora me queda, ya con tiempo, Gnomizar Windows, o macosxificarlo un poco, a ver si consigo que el botón de Windows saque un launcher con la vista de escritorios como Gnome y algún otro atajo de teclado (la ayuda en F1 es perder F1, por ejemplo)
 

Esa fue mi tesitura, no había una solución ya no perfecta sino que lo dejase usable. Pero es que WSL ofrece la perfecta.

Además ofrece la opción de uso ocasional Windowsero, como usar el portatil para algún juego (sin wine ni cosas desas)
 
No, Wayland no se lleva mal con los drivers de Nvidia, Nvidia se lleva mal con cualquier cosa que no sea Windows. ¿p`probaste a iniciar en X11? Nvidia con Wayland da problemas por culpa de Nvidia que hace lo que quiere pero en X11 suele funcionar bien. Igualmente, si compraste un portátil con Nvidia para programar pues primer error, Nvidia solo es buena en tema de CUDA cores y eso, para lo demás es bastante castaña(tampoco es que ROCm se ponga las pilas). Pero también depende del hardware.

Yo uso Ubuntu 22.04 con una Nvidia 2070 y Wayland y va perfecto, de hecho con X11 tenái siempre que activar al sincronización vertical y con Wayland ya viene por defecto. Y uso Nvidia por que la empresa escogió el portátil, si fuese por mi a Nvidia le escupiría en la cara.

Por lo demás, si a ti WSL2(es es una máquina virtual paravirtualizada) te va bien, adelante. Ahora bien, que sepas que WSL no sigue las reglas del host. tu puedes ponerle unas reglas de seguridad a Windows pero WSL es un agujero ya que Windows no las sincroniza con el subsistema.

Historias de hardware que no funciona en Linux hay miles e historias de hardware que no funciona en Windows hay miles. Solo hay que saber qué escoger y saber comprar bien.
 
Última edición:
No, Wayland no se lleva mal con los drivers de Nvidia, Nvidia se lleva mal con cualquier cosa que no sea Windows. ¿p`probaste a iniciar en X11? Nvidia con Wayland da problemas por culpa de Nvidia que hace lo que quiere pero en X11 suele funcionar bien. Igualmente, si compraste un portátil con Nvidia para programar pues primer error, Nvidia solo es buena en tema de CUDA cores y eso, para lo demás es bastante castaña(tampoco es que ROCm se ponga las pilas). Pero también depende del hardware.

Yo uso Ubuntu 22.04 con una Nvidia 2070 y Wayland y va perfecto, de hecho con X11 tenái siempre que activar al sincronización vertical y con Wayland ya viene por defecto. Y uso Nvidia por que la empresa escogió el portátil, si fuese por mi a Nvidia le escupiría en la cara.

Por lo demás, si a ti WSL2(es es una máquina virtual paravirtualizada) te va bien, adelante. Ahora bien, que sepas que WSL no sigue las reglas del host. tu puedes ponerle unas reglas de seguridad a Windows pero WSL es un agujero ya que Windows no las sincroniza con el subsistema.

Historias de hardware que no funciona en Linux hay miles e historias de hardware que no funciona en Windows hay miles. Solo hay que saber qué escoger y saber comprar bien.

Es lo que he dicho, que los drivers de NVidia para Linux son una castaña

Wayland lo use en el trabajo en una empresa ya en 2018. Con este portatil y la pantalla integrada va bien, pero con el monitor externo pues ya entra la 3050 en juego y mal. Ya comenté que me pasé a Xorg con la que el monitor externo funciona pero los gestos de Gnome para el trackpad están implementados para Wayland y la opción X11 con programas externos es bastante peor. No obstante me quedé ahí hasta que en una de estas cambié el driver por temas de ML y el portátil empezó a crashear al bajar la tapa, no pude restarurarlo y no pude más.

No sé pq dices portátil para programar y NVidia, necesito NVidia para CUDA, con Radeon los backends de Keras van 2-10 veces más lentos y muchos procesos son directamente incompatibles. Necesito NVidia para tener los menos problemas para prototipos ML.

El flujo de trabajo con WSL2 la verdad es que es ideal para mi. Además el ahorro en batería se nota (dura el doble). Acabo de poner acceso directo al home del usuario Ubuntu a través del explorer, qué gozada!
 
Como curiosidad, he copiado unos cuantos GB desde el explorer de Windows al home del usuario de Ubuntu y el proceso WSL Vmmem crecía sin parar. Parece que Linux conserva buffers y no devuelve la memoria.

Hay que eliminar los buffers manualmente con

$ sudo su - root
# echo 3 > /proc/sys/vm/drop_caches
 
@ansem_lionheart @SoloLeo qué tal va KDE con NVidia? Tiene gestos trackpad chupiguays? Nunca he sido fan de KDE pero no descarto volver. Los escritorios virtuales de Windows son una chufla.
 
@ansem_lionheart @SoloLeo qué tal va KDE con NVidia? Tiene gestos trackpad chupiguays? Nunca he sido fan de KDE pero no descarto volver. Los escritorios virtuales de Windows son una chufla.

Solo uso Nvidia con Gnome y me va perfecto así que no puedo decirte que tal va en Plasma :/ ¿has buscado vídeos en internet? es para que no vayas haciendo distro-hopping
 
Muy sano. Yo mantengo un Windows en Virtuabox para ejecutar las 2 o 3 aplicaciones que necesito pero no existen para GNU/Linux.
 
Volver