Windows 10 en Raspberry Pi. ¿Se puede instalar?

Es una pregunta que llevo haciéndome un tiempo, y que finalmente me propuesto investigar. Así que he estado unos días informándome sobre el tema y haciendo unas pruebas, y la conclusión es que sí se puede instalar Windows 10 en Raspberry Pi como sistema operativo. Vamos a analizar cómo ha sido el proceso de instalación y qué tal funciona este Windows 10 en una Raspberry Pi 3 que tengo por casa.

Windows 10 en Raspberry Pi. ¡Huid, insensatos!

¿A quién no le gustaría instalar el sistema operativo más usado en el Mundo, Windows 10, en un ordenador de 35 euros? Suena extremadamente bien, pero lo primero que tengo que comentar es que instalar Windows 10 en Raspberry Pi es una muy mala idea. Un poco más abajo vamos a ver cómo hacerlo funcionar (funcionar, funciona), pero ya os adelanto que las placas Raspberry, por su arquitectura de procesadores ARM, no están diseñadas para correr bajo un sistema operativo Windows. Excepto que te guste curiosear y probar las cosas por ti mismo (como me pasa a mí muchas veces), te recomiendo que dediques tu tiempo a otra cosa porque instalar Windows 10 en Raspberry sólo te va a provocar dolores de cabeza.

Con el paso de los años, Microsoft ha ido liberando cada vez más trocitos de su core. Tal es así que incluso es posible ejecutar aplicaciones programadas en .NET Core en entornos Unix, aunque este tema lo trataremos en otro artículo 🙂 Pero de momento no existe una descarga oficial de Windows 10 para Raspberry Pi, así que vamos a ver cómo llevar a cabo la instalación.

Instalación

Cuando empecé a recopilar información para ver cuál era la mejor forma de instalar Windows 10 en mi Raspberry, vi que multitud de sitios en Internet recomendaban instalar por separado los controladores USB y Ethernet. Pero por suerte, hay una mini comunidad de desarrolladores que ha construido un programa llamado Windows on ARM Deployer for Raspberry Pi, que es lo que vamos a utilizar para instalar Windows 10 en Raspberry. A continuación os detallo paso por paso cómo descargar una imagen de Windows 10 ARM para instalar en nuestra Raspberry Pi.

Importante: Tras instalar Windows 10 en mi tarjeta SD, sólo he conseguido que me funcione en una Raspberry Pi 3 b+. La misma tarjeta SD en una Raspberry Pi 4 no me ha funcionado.

Requisitos

  • Raspberry Pi 3 B (o B+).
  • Tarjeta Micro SD. Recomiendo mínimo 16 GB, en mi caso usaré una de 32 GB.
  • Mucha paciencia.

#1 Descargar una imagen de Windows 10 ARM

Lo primero que tenemos que hacer es descargar una imagen de Windows 10 ARM de este sitio: https://uupdump.ml/ Tenemos que pinchar en la caja azul que dice «Browse the list of known builds».

Buscar descarga adecuada de Windows 10

Una vez dentro, nos aparece una lista de compilaciones (Builds) de Windows 10 para las distintas Arquitecturas. MUY IMPORTANTE, tenemos que fijarnos en que la que bajemos sea para arquitectura ARM64 (no confundir como amd64 ni x64). Os recomiendo buscar en la caja de texto la revisión 17134. Cometí el error de comenzar con la última Build (19624 a la hora de escribir este artículo) y no me funcionó. Después de consultar en foros, me recomendaron la 17134 y con esta no tuve problema. Damos a buscar y bajamos hasta abajo del todo. Pinchamos en «Windows 10 Insider Preview 17134.1 (rs4_release) arm64«

Seleccionar la versión adecuada

Se nos abrirá en otra página donde nos preguntará cuál es el idioma que queremos Windows 10. Yo he seleccionado Español, y a continuación le damos a «Next». Ahora nos pregunta qué versión de Windows 10 queremos. Os recomiendo dejar marcado Windows 10 Pro y quitar las demás. Le damos de nuevo a «Next».

Seleccionar Windows 10 Pro para Raspberry

Por último, nos aparece una página de resumen donde tenemos que marcar «Download using aria2 and convert» y darle al botón «Create download package». A continuación se descargará en nuestro PC un fichero ZIP llamado «17134.1_arm64_es-es_professional_561e1a0f_convert.zip» o similar. Tenemos que descomprimir este fichero zip en una ruta que no contenga espacios. Yo he ido a mi unidad D: y he creado dentro una carpeta que se llama Temp.

Una vez se haya descomprimido el zip, tenemos que hacer doble click en el fichero «aria2_download_windows.cmd» si estamos en Windows. También hay scripts para el caso en que estuviéramos en Mac o Linux. A continuación se nos abrirá una consola que preparará para nosotros el archivo ISO de la imagen de Windows 10 que necesitaremos en el siguiente paso. Este es el primer momento donde necesitaremos tirar de paciencia, ya que este proceso tardará entre 10 y 20 minutos dependiendo de cómo de potente será nuestro ordenador. Así que tiempo para un café o una cerveza.

Una vez terminado el proceso de la consola, aparecerá en esa misma carpeta un fichero ISO con un tamaño cercano a los 4 GB. ¡Pasamos al siguiente paso!

Generar ISO de Windows 10

#2 Instalar la imagen de Windows 10 en la tarjeta Micro SD

A continuación tenemos que «montar» el ISO que se ha generado en el paso anterior. Para ello hacemos doble click sobre el fichero ISO, y eso nos crea una «unidad virtual» que en mi caso se ha etiquetado como E: (en vuestro caso puede ser diferente) y cuyo fichero clave que vamos a necesitar más adelante está en E:\sources\install.wim.

instalar windows 10

Dejamos ahí nuestra unidad montada, y nos vamos a la web https://github.com/WOA-Project/WOA-Deployer-Rpi/releases/latest para descargar la última versión de la herramienta Windows on ARM Deployer que os comenté en la introducción. Buscamos «WOA.Deployer.zip» de la última versión que exista, en mi caso la 2.1.1

Descargar WOA Deployer 2.1.1

Descomprimimos el zip en cualquier parte y hacemos doble click en el archivo «WoaDeployer.exe» para ejecutar la herramienta. En primer lugar es MUY IMPORTANTE seleccionar la unidad correcta donde esté la Micro SD. Si te equivocas, vas a eliminar los datos de todo el disco duro así que mejor no meter la pata. A continuación tenemos que hacer click en Browse para buscar el archivo install.wim que hemos generado previamente montando la ISO, y que en mi caso está en la ruta E:\sources\install.wim.

Descargar WOA Deployer 2.1.1

Una vez tengamos ambas cosas configuradas, hacemos click en el botón «Deploy» que comenzará el proceso de instalación de Windows 10 en la Micro SD. ¿Recordais el café o cerveza que nos hemos tomado antes? Pues en este caso el proceso puede tardar entre 45 minutos y 2 horas, así que cuidado con las cervezas 🙂 Al cabo de ese rato (1 hora en mi caso), nos aparece un mensaje emergente diciendo que el proceso ha terminado y que ya podemos expulsar la tarjeta SD de forma segura (desde el icono de la parte de abajo a la derecha). En caso de no encontrar la forma, reiniciamos nuestro PC y ya podremos extraer la SD.

¡Enhorabuena! Por fin hemos completado la instalación de Windows 10 en la SD que ahora sí introduciremos en nuestra Raspberry Pi 3 b (o b+).

Despliegue de Windows 10 en SD finalizado

#3 Configuración inicial de arranque

Ahora debemos introducir la tarjeta SD en nuestra Raspberry, conectarla a un monitor con un cable HDMI y conectar por USB un teclado y un ratón. Esto es importante ya que tendremos que completar el asistente típico de Windows donde configuraremos nuestro Windows 10.

Una vez tengamos todo enganchado, conectamos por último la fuente de alimentación para encender nuestra Raspberry. Veremos en pantalla que el sistema ejecuta algunas comprobaciones hasta llegar a una línea de consola que pone «Shell>». Una vez aquí, tenemos que configurar el sistema operativo para que arranque directamente Windows 10 (esto se hace una única vez). Para ello, tenemos que ecribir «exit» y darle al Enter.

Arranque inicial de Windows 10 en Raspberry

Ya estamos en la BIOS del sistema, donde no funcionará el ratón y tendremos que ir navegando con el teclado. Bajamos hasta la opción «Boot Maintenance Manager» y damos a Enter. Después, «Boot Options» y a continuación «Change Boot Order». Una vez aquí, tenemos que cambiar el orden para que «SD/MMC on Broadcom SDHOST» aparezca encima de «UEFI Shell». De esta forma aparecerá abajo en amarillo «Configuration changed».

Orden de arranque

Ahora presionamos F10 para guardar y confirmamos con la tecla ‘y’ como nos pedirá. Ahora vamos a «Boot Manager» y finalmente a «SD/MMC on Broadcom SDHOST». Si todo ha ido bien, al cabo de unos segundos Windows 10 comenzará a iniciarse, y veremos el famoso logo de Windows en la pantalla.

Iniciando Windows 10

#4 Configurando Windows 10 en Raspberry Pi

Ya estamos en el último paso, en el que Windows nos va a ir haciendo algunas preguntas para configurar el sistema (una vez más, debemos armarnos de un poco más de paciencia). Tendremos que ir rellenando la región en la que estamos, nuestra cuenta de Outlook, el contrato de licencia de uso de Windows 10, y alguna cosa más. Es importante la configuración de Red, ya que si hemos conectado el cable Ethernet a la Raspberry, nos mostrará una pantalla de Red donde debe identificar nuestra conectividad a internet. Y si no, tendremos la opción de conectarnos a nuestra red WiFi.

Configurar red en Windows 10

También nos preguntará si habilitamos el reconocimiento de voz, Cortana, nuestra ubicación … yo recomiendo dar que No a todo y compartir lo mínimo posible. Al cabo de un rato, ¡por fin! habremos terminado la instalación y nos aparecerán los mensajes típicos de «Estamos preparando todo para ti» y «Esto puede tardar varios minutos» …

Esto puede tardar unos minutos

Finalmente al cabo de unos minutos conseguiremos arrancar Windows 10 en Raspberry Pi y estará listo para el primer uso!

Windows 10 en Raspberry Pi

Experiencia de uso

Una vez hemos llegado a este punto, podemos utilizar Windows 10 en nuestra Raspberry Pi 3b+. Lo primero que he hecho ha sido reiniciar el sistema, para confirmar que toda la configuración de arranque está correctamente. Pues bien, no ha tardado mucho en apagar Windows la verdad, pero ha tardado unos 3 o 4 minutos de reloj desde que ha empezado a iniciarse hasta que ha llegado otra vez a la pantalla inicial de Windows.

A continuación he abierto un Administrador de Tareas (que ha tardado bastante en abrir) para ver cómo está funcionando el hardware de mi Raspberry con Windows 10. Y el resultado habla por sí solo:

  • CPU al 100% de forma constante,
  • RAM: 700 MB de RAM consumidos (de 1 GB total que tiene la Raspberry)
  • Disco: entre el 50 y el 100% de forma constante. Recordemos que en este caso el «disco» es nuestra tarjeta SD, que son bastante más lentas que los discos sólidos SSD que se montan hoy día en torres y portátiles.
Task Manager en Windows 10

En cuanto a la conexión de Red, como os he comentado antes tengo un cable de red Ethernet conectado a mi Raspberry y parece que funciona sin problemas. He abierto una consola cmd y ejecutando la instrucción ‘ping google.es’ vemos como los paquetes viajan por la red además con buena latencia (4 ms). Esto es totalmente normal ya que dispongo de una buena conexión de fibra óptica de 600 Mbps.

Ping desde Windows 10

Me he venido arriba y he abierto Microsoft Edge para probar la navegación por Internet. ¡Error! Se me ha quedado pillado un buen rato, y al cabo de un par de minutos ha vuelto a responder abriendo Edge a trompicones. Para hacer la prueba he cargado la web del diario elpais.com, que tiene bastantes imágenes y vídeos en la Home, y le ha costado unos minutos cargar la página completa. Una vez cargada he intentado hacer scroll hacia abajo para navegar por los titulares, pero ha sido realmente decepcionante. Muy mal rendimiento para una de las cosas que más hacemos en nuestro día a día.

Edge en Windows 10

Por último, he conectado un pincho USB y lo reconoce sin problema. He entrado dentro de mi unidad USB y he creado una carpeta para guardar con Paint las capturas de pantalla que he ido haciendo para incluirlos en este artículo.

Unidad USB en Windows 10

Como curiosidad, si os fijais en mi unidad C: vemos que tiene 19 GB disponibles de 29.4 GB efectivos (mi tarjeta SD es de 32 GB). Esto nos da una pista de que más o menos únicamente la instalación de Windows 10 ocupa unos 10 GB de espacio. Por lo tanto una tarjeta SD de 16 GB también nos hubiera valido, aunque nos dejaría solo unos 6 GB disponibles.

Rendimiento

Antes de comenzar a redactar el artículo, tenia pensado instalar los programas típicos del estilo Crystal Diskmark para analizar la velocidad de lectura/escritura en el disco, y el rendimiento tanto de la CPU como de la GPU. Pero en mi opinión no merece la pena ya que con el análisis de experiencia de usuario que he hecho hasta ahora es más que suficiente para determinar que el rendimiento de Windows 10 en Raspberry Pi es realmente malo.

Windows 10 en Raspberry Pi 4

Ya que funciona tan mal en mi Raspberry Pi 3, he pensado en probar la misma tarjeta Micro SD con Windows 10 ya instalada en mi Raspberry Pi 4. Debido a la gran diferencia de hardware entre ambas placas, la mejora en la experiencia de usuario debería ser sustancial. Por si no lo has visto aún, te dejo el artículo en el que comparamos el hardware de las distintas Raspberry Pi.

Pues bien, he de decir que mi Raspberry Pi 4 no es capaz de arrancar con la Micro SD donde tenemos ya instalado Windows 10. He estado investigando un poco por internet y parece ser que el desarrollo sobre la Pi 4 es diferente al de la Pi 3 y aún no está tan evolucionado. Esperemos que en las próximas semanas o meses los desarrolladores le den un empujón al soporte de Windows 10 en Raspberry 4, porque realmente me he quedado con las ganas de probarlo en la Pi 4.

Conclusiones

De todo este proceso voy a sacar dos conclusiones. La primera es que hacer funcionar Windows 10 en Raspberry es básicamente un reto divertido para quien le guste pelearse con estas cosas. Por lo tanto es mejor no perder el tiempo si no es por este motivo.

Y por otra parte, es interesante el hecho de que ya haya versiones de Windows 10 que, aunque horriblemente mal, ya funcionen sobre Raspberry. Está claro que es una buena base, y que si evoluciona con el tiempo podríamos llegar a ver una Raspberry de 60 euros competir con ordenadores baratos de 200 y 300 euros.

Me he quedado con ganas de ver qué tal funciona Windows 10 en mi Raspberry Pi 4, así que estaré atento para actualizar el artículo cuando esté disponible.