Creando mi propio sistema operativo para tablets: Instalación y modificación de Debian GNU/Linux en Surface Go

Mar. 9, 2020

Desde hace algunos años utilizo una tableta como ordenador principal, me gusta su versatilidad. Pero, la mayoría de las tabletas vienen con un sistema operativo bloqueado, como iPadOS, Windows 10S o Android. Como me gustan las cosas a mi manera (rara), me pregunté si podría escapar de estas "cárceles de software" instalando un sistema operativo libre en una tableta. Es posible, ¡sigue leyendo para descubrir cómo escapé!

Hardware: Surface Go

Si estás considerando instalar otro sistema operativo en una tableta, definitivamente deberías investigar sobre el hardware de la tableta. No todas las tabletas se pueden reinstalar con un sistema operativo personalizado, algunas tienen cargadores de arranque bloqueados, chips propietarios u otros obstáculos.

Microsoft Surface Go - una tableta ultraportátil con pantalla táctil de 10" (con teclado, lápiz y adaptador de USB-C a ethernet y USB 3.0)

Conoce la Surface Go, es una tableta relativamente pequeña (pantalla de 10"). Tiene un procesador Intel de 64 bits "normal", tiene un cargador de arranque que se puede desbloquear y su hardware es bien conocido, ya que es similar a la antigua "Surface Pro 6". El hardware antiguo es algo bueno si estás pensando en sistemas operativos libres. Cuanto más antiguo se vuelve el hardware, mayor es la probabilidad de que la gente haya encontrado maneras de hacerlo funcionar con software libre, como Debian GNU/Linux.

¡Actualizar primero!

Antes de borrar el sistema operativo propietario de la tableta, debes usarlo para actualizar el firmware. Actualizar el firmware desde cualquier cosa que no sea Windows es virtualmente imposible. El nuevo firmware para la Surface corrigió muchos errores y mejoró el rendimiento de la tableta; ¡no querrás perderte esto!

Comprobar actualizaciones manualmente usando Windows Update

Tenga en cuenta las numerosas actualizaciones de firmware, solo puede instalarlas desde Windows

Puede llevar algún tiempo, sea paciente o tome fotos :-)

Elegir un sistema operativo

Una vez que hayas seleccionado el hardware de la tableta, debes elegir un sistema operativo. Por varias razones, te recomiendo que consideres elegir un sistema operativo libre. Con el software libre eres, literalmente, libre de hacerlo funcionar como quieras. Me gusta Debian, una distribución GNU/Linux.

Debian GNU/Linux - El sistema operativo universal

La distribución Debian GNU/Linux se encuentra entre las distribuciones más antiguas disponibles. Es especial porque sus mantenedores han ratificado un contrato social, un documento que proporciona garantías de que Debian es abierto y libre. Se puede instalar en casi cualquier hardware, de ahí su lema "el sistema operativo universal".

Crear una memoria USB de arranque

La instalación de Debian se realiza mediante una memoria USB de arranque. Utilicé otra computadora para descargar los archivos de instalación desde https://debian.org. Debes crear un medio de instalación para llevar estos archivos de instalación a la tableta.

Puede usar otro ordenador para crear una memoria USB de arranque, yo usé mi ThinkPad X1

En otra computadora portátil, utilicé algunos comandos de terminal para crear la unidad USB de arranque. Si estás en Windows o Mac, puedes usar otras herramientas para realizar esta tarea, como la Utilidad de Discos, Rufus o unetbootin.

Iniciar el instalador

Conecta la unidad USB de arranque a la tableta Surface; yo utilicé un adaptador de USB-C a ethernet y USB 3.0. La conexión de red cableada es útil durante la instalación porque Debian a menudo no puede cargar el firmware/controladores para los chips WiFi propietarios.

Conectando la unidad USB de arranque a la tableta Surface usando el adaptador de USB-C a USB 3.0 y ethernet

La forma más fácil de arrancar la tableta Surface desde la unidad USB es a través de "Opciones de inicio avanzadas" en la Configuración de Windows; reiniciará tu computadora y te ofrecerá diferentes opciones de arranque y recuperación.

"Opciones de inicio avanzadas" desde la Configuración de Windows le permite usar una unidad USB como medio de arranque

Elija "Linpus Lite" para arrancar el instalador

Elige "Usar un dispositivo" y luego selecciona "Linpus lite". Con un poco de suerte, serás recibido con el menú del instalador de Debian GNU/Linux.

Menú del instalador de Debian GNU/Linux en Surface Go - yo feliz

Continúa con la instalación respondiendo preguntas como el idioma que deseas usar y la distribución del teclado que tienes. El instalador intentará reconocer tu hardware de red. Desafortunadamente, muchos proveedores mantienen los controladores de sus dispositivos (firmware) cerrados, lo que hace imposible que Debian los incluya con su colección estándar de software (que debe ser software libre).

La falta de firmware hace que el hardware no se pueda usar durante la instalación

Aunque es posible cargar estos controladores de dispositivos no libres desde (otra) unidad USB, mi experiencia es que es difícil precargar exactamente los controladores de dispositivos que necesitarás. Mi estrategia es conectar la computadora a una conexión de red cableada durante la instalación y preocuparme por los controladores faltantes después. Es más fácil agregarlos más tarde si tu sistema está en línea.

Interfaz gráfica de usuario

Muchas aplicaciones (navegación web, edición de fotos, dibujo) solo funcionan bien a través de una interfaz gráfica de usuario. Puedes elegir entre muchas opciones diferentes si usas software libre. La primera decisión que debes tomar es si deseas un "entorno de escritorio" completo o solo un "gestor de ventanas".

Entorno de Escritorio

Un entorno de escritorio te brinda una experiencia de usuario general, que incluye paneles, menús del sistema y applets de estado. Viene con su propio conjunto de aplicaciones (del sistema) y apariencia. Si bien la mayoría de los entornos de escritorio ofrecen una configuración estándar completa, muchos de ellos ofrecen opciones avanzadas de personalización. Consulta sus sitios web, lee sobre sus principios de diseño y elige algo que te guste. Los entornos de escritorio comunes para Debian son:

GNOME: https://www.gnome.org y https://wiki.debian.org/Gnome

Plasma de KDE: https://kde.org/plasma-desktop y https://wiki.debian.org/KDE

XFCE: https://xfce.org y https://wiki.debian.org/Xfce

LXDE: https://lxde.org y https://wiki.debian.org/LXDE

MATE: https://mate-desktop.org y https://wiki.debian.org/MATE

Gestor de Ventanas

A diferencia de un entorno de escritorio completo, un gestor de ventanas solo proporciona una forma de administrar las ventanas de las aplicaciones. Los gestores de ventanas se eligen porque son extremadamente mínimos y requieren que el usuario agregue manualmente todos los extras. Si te gusta tomar tus propias decisiones, elegir un gestor de ventanas podría ser un buen punto de partida para tu interfaz gráfica de usuario. Los más comunes son:

awesome: https://awesomewm.org

Openbox: http://openbox.org/

i3wm: https://i3wm.org

dwm: https://dwm.suckless.org

xmonad: https://xmonad.org

Realmente deberías tomarte tu tiempo para tomar tu propia decisión, ya que elegir la base para la interfaz gráfica de usuario tiene un gran impacto en la experiencia general. Es una elección personal, impulsada por las preferencias y tu disposición a ajustarla manualmente. Mi elección, porque tengo años de experiencia con él, es usar el gestor de ventanas Openbox en combinación con algunas herramientas adicionales que optimizan mi experiencia.

Optimizando la experiencia

Este es un paso esencial cuando instalas un sistema operativo libre en una computadora. Después de la instalación, la configuración predeterminada a menudo no se adapta a tu hardware, preferencias y casos de uso específicos.

Estas fueron algunas de las cosas que hice además del gestor de ventanas Openbox:

Actualizar la versión 'estable' estándar de Debian a su rama 'inestable' más vanguardista. Esto significa que obtendrás nuevas versiones de software más rápido, pero las cosas a veces pueden romperse. Me gusta el software nuevo (ya que soy desarrollador), es posible que quieras reconsiderar esto.

Instalar varios controladores de dispositivos no libres (firmware) para que todos los componentes de hardware funcionen, Debian tiene una página detallada sobre esto: https://wiki.debian.org/Firmware. Es posible que requiera un poco de investigación, análisis de archivos de registro, para averiguar qué firmware requiere tu computadora.

Usar gnome-network-manager y su applet para ver el estado del WiFi y para permitirme conectarme rápidamente a diferentes redes inalámbricas.

Instalar Sound on Debian para que funcione el altavoz de la tableta. Asegúrate de verificar las opciones de volumen/silencio antes de considerar que tu sistema de audio está roto (¡por defecto, está silenciado!).

Instalar Blueman para permitirme conectarme a varios dispositivos Bluetooth.

Usar tint2 como barra de estado, barra de tareas y barra de inicio rápido (que ofrece accesos directos a aplicaciones de uso frecuente).

Crear un script que rota automáticamente la pantalla si giro la tableta.

Instalar tlp para mejorar drásticamente la duración de la batería.

Instalar Compton para reducir en gran medida las 'sacudidas' (mejorando la suavidad) al desplazarse con la pantalla de la tableta en modo vertical.

Instalar mis aplicaciones favoritas en Debian GNU/Linux: navegadores web Firefox y Chromium, aplicación de correo/calendario/contactos Evolution, explorador de archivos Thunar, emulador de terminal XFCE-terminal, manipulación de imágenes GIMP, edición de gráficos vectoriales Inkscape, cliente SFTP Filezilla, Libre Office, Xournal lápiz/notas.

Instalar onboard, un teclado virtual para permitir la entrada de texto cuando el teclado de hardware está desconectado.

Aplicar manualmente una corrección del kernel de linux para que el Surface Pen funcione con el kernel de Linux más reciente, lo que requiere que compile mi propio kernel parcheado.

Desactivar el Arranque Seguro para que mi kernel de Linux personalizado sea arrancable.

Instalación en curso - observe el cable de red conectado

Compilando mi kernel de Linux personalizado

Compilar el kernel de Linux en una Surface Go lleva algunas horas

El teclado virtual 'integrado'

La entrada con lápiz funciona usando mi kernel de Linux personalizado y la aplicación Xournal

Usando el sistema operativo personalizado en la tableta para crear contenido para este blog

Leyendo un artículo en mi tableta en modo vertical

Conclusión

Después de muchas horas de experimentación y ajuste, creé una experiencia de sistema operativo para tableta que funciona. Puedo usarla para leer, dibujar, programar y diseñar.

La sensación de comprensión que desarrollarás durante todo el proceso de "construir tu propio sistema operativo" es increíble, tanto desde una perspectiva técnica como de interacción del usuario. ¡Es una gran oportunidad para aprender y perfeccionar tus habilidades!

Actualización:

Lee mis publicaciones de seguimiento sobre:

Cómo migrar y administrar tu biblioteca de fotos usando software libre, ¡ahora uso mi tableta "WillemOS" para hacer esto!

Configurar la sincronización de archivos sin problemas entre tu tableta y teléfono inteligente usando protocolos abiertos y software libre.

Refinando mi SO de tableta con Surface Go 2 i3wm y 4G/LTE

Usando la Surface Go personalizada (derecha) para programar, similar a como trabajo usando un iPad Pro (izquierda)