Klipper en PC con Windows (Usando WSL)

Con está guía obtendrás una instalación de Klipper que funciona en un PC con Windows 10 o 11, utilizando la herramienta del Subsistema de Windows para Linux (WSL).

Este método requiere que WSL se ejecute en un PC (Windows 10 o 11) todo el tiempo que está imprimiendo, NO se puede apagar.

Lista de materiales

  • Paciencia

  • Cable USB para conectar la MCU al PC

Instalación de WSL

Antes de nada, voy a responder a la gran pregunta, Qué es WSL?.

Es el Subsistema de Windows para Linux que permite a los desarrolladores ejecutar un entorno Linux, incluida la mayoría de las herramientas, utilidades y aplicaciones de línea de comandos, directamente en Windows, sin modificaciones, sin la sobrecarga de una máquina virtual tradicional o una configuración de arranque dual.

Para la mayoría de las personas esto no le será útil, pero no está de mas aclararlo. La instalación de WSL es muy sencilla. La documentación se puede consultar aquí, pero continua leyendo para conocer los pasos básicos para iniciar la instalación.

En el símbolo del sistema como administrador, ejecute el siguiente comando:

wsl --install

WSL comienza a instalarse, tenga paciencia, puede tardar bastante tiempo, ya que se tiene que descarga e instalar Ubuntu. En la tienda de Microsoft hay otro sistemas operativos de Linux disponibles y utilidades para facilitar el uso de WSL.

Una vez completado, nos informa que los cambios no se aplicarán hasta que se haya reiniciado. Continúe y reinicie su PC. Cuando se inicie la instalación debería continuar automáticamente y se abrirá una ventana de Ubuntu. Introduzca un nombre de usuario y contraseña.

Tenga presente el usuario y contraseña, habrá que utilizarlo más adelante.

Debería de aparecer una bienvenida en la interfaz de línea de comandos de Ubuntu.

Abra una ventana del símbolo del sistema y actualice WSL antes de continuar. Cierre WSL y vuelva a ponerlo en marcha (Ubuntu debería aparecer como cualquier otro programa en su menú) para que los cambios surtan efecto.

wsl --update
wsl --shutdown

Preparando el sistema para compartir los puertos de comunicación.

Desafortunadamente, WSL no tiene acceso automático a dispositivos USB o puertos de comunicación en serie. Por suerte, alguien ha agregado una herramienta que incluye está caracteristica.

Consulte el enlace anterior para verificar nuevas funciones y configuraciones.

En el símbolo del sistema, escriba el siguiente comando para instalar usbipd (ejecútelo como administrador)

winget install usbipd

Conecte la mcu(placa base) de la impresora a su PC. Comprueba que puedes ver el puerto COM en el administrador de dispositivos. En la imagen es el COM8.

Ejecute el siguiente comando y tome nota del BUSID de su mcu. en la imagen es '1-12'.

usbipd list

Dependiendo de su configuración y de si ha usado o no WSL anteriormente y/o Docker, es posible que deba configurar Ubuntu como predeterminado. Ejecute el siguiente comando para verificarlo. Si no es el predeterminado, utilice la segunda línea para activarlo como predeterminado.

Puede ejecutar el primer comando para comprobar que ahora es el predeterminado.

wsl --list
wsl --setdefault Ubuntu
wsl --list
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

Necesitamos conectar el dispositivo USB a WSL. Vamos a ejecutar el siguiente comando en el símbolo del sistema de windows. El dispositivo debería haber desaparecido de su lista de dispositivos.

usbipd wsl attach --busid=1-12

Comprueba que no está visible en WSL.

Ejecute el siguiente comando en Ubuntu.

Puede ver los resultados de ejecutar este comando antes y después de conectar el dispositivo USB a continuación.

Nos aparece un dispositivo STM32 que puedo indentificar que es mi mcu, ya que es el procesador que utiliza.

lsusb

Dentro de Ubuntu, ejecute los siguientes dos comandos. Se le pedirá la contraseña de sudo. Escriba la contraseña que estableció cuando creó su usuario al principio. Presione Y cuando se le solicite continuar con la instalación.

Configurando Ubuntu

Instala las herramientas de red, ya que más adelante las usaremos para obtener la dirección IP.

sudo apt install net-tools

Ahora, necesitamos tener una versión que soporte la activación de Systemd, porque se utiliza con la mayoría de los servicios (Klipper, Moonraker, etc.) en segundo plano.

Cómo habilitar Systemd en Ubuntu/WSL

WSL admite Systemd, pero hay que comprobar la versión que tengamos instalada.

  • Los nuevos usuarios de WSL con Windows 11 22H2 o posterior recibirán automáticamente la versión de la aplicación de WSL cuando se ejecuten wsl --install, a menos que se agregue específicamente la opción --inbox.

  • Los usuarios de Windows 10 necesitan KB5020030 o posterior. Tenga en cuenta que aún no está claro en el momento de esta actualización si funcionarán las versiones anteriores de Windows 10. Personalmente, solo he podido validarlo en Windows 10 22H2 hasta ahora.

Con la versión de Windows necesaria puede instalar o actualizar a la versión 1.0.0 (o posterior) de la aplicación WSL mediante varios métodos:

  • A través de Microsoft Store (como "Subsistema de Windows para Linux").

  • O desde la página del proyecto en el repositorio de GitHub. Para instalar una versión manualmente:

    1. Reinicie (para asegurarse de que WSL no esté en uso). Un simple wsl --shutdown puede funcionar, pero a menudo no lo hará.

    2. Descargue la versión 1.0.0 (o posterior) desde el enlace de arriba.

    3. Inicie un PowerShell de administrador y:

           Add-AppxPackage < <path>/Microsoft.WSL_1.0.3.0_x64_ARM64.msixbundle
           wsl --version # muestra la versión.

Para habilitar, inicie su distribución de Ubuntu (u otra Systemd) bajo WSL (normalmentewsl).

sudo -e /etc/wsl.conf

Agregue lo siguiente:

[boot]
systemd=true

Salga de Ubuntu y de nuevo:

wsl --shutdown

Luego reinicie Ubuntu.

sudo systemctl status

... debería mostrar sus servicios Systemd.

Instalación de Klipper

Ahora es la parte fácil. Es hora de instalar Klipper usando KIAUH como estamos acostumbrados.

Ejecute los siguientes comandos en Ubuntu:

cd ~
git clone https://github.com/th33xitus/kiauh.git

A continuación, inicie KIAUH e instale los componentes en el siguiente orden:

  1. Klipper

  2. Moonraker

  3. Mainsail o Fluidd.

Para obtener la dirección IP del dispositivo, ejecute el siguiente comando: (Busque la línea inet debajo de eth0)

/sbin/ifconfig

Escriba la ip en su navegador web y listo, ¡klipper tendría que dar señales de vida!

Ahora solo falta confgurar nuestra mcu como estamos acostumbrados, ya vemos el error que nos muestra la interface web, necesitamos configurar el printer.cfg. Sin embargo, debemos asegurarnos de que la MCU está conectada al puerto USB, para ello, en el símbolo del sistema de windows, ejecute el siguiente comando (añadiendo el código que identifica su mcu, recuerda que lo hemos buscamos anteriormente)

usbipd wsl attach --busid=1-12 

En Ubuntu, ejecute el siguiente comando para obtener el ID del dispositivo. Pegue esta ID en su archivo printer.cfg (usando la interfaz de usuario de mainsail o fluidd) y Klipper ya estaría funcional.

ls /dev/serial/by-id/*

Ahora solo queda realizar la configuración especifica para su impresora.

Última actualización