PostmarketOS & Kupfer Linux

Corriendo Linux en Dispositivos Móviles

Mientras una parte de la comunidad de desarrolladores considero una buena idea el desarrollo de sistemas basados en Android (Custom ROMS), otro se fue por una rama mucho más especifica, el desarrollo de sistemas Linux para los dispositivos móviles, y si bien una gran parte quiso mantener los controladores/Drivers para evitar romper la mayor cantidad de paquetes y funciones, otra rama no confiaba en los propietarios o distribuidores, adicionalmente no querían tener que utilizar un kernel desactualizado, por ello decidieron recrear todo, los controladores, los sistemas y ejecutar código completamente nuevo, creando distribuciones Linux que se ejecutan en controladores y sistemas completamente diseñados por la comunidad, esto permitiendo el uso de la última versión del Kernel Linux, pero trayendo consigo una dificultad muy grande, que era dada por tener que reconstruir todo el sistema de ficheros desde cero.

PostmarketOS es la solución ideal para lo que buscamos, servidores que funcionen consumiendo la cantidad de recursos justa (incluso pudiéndose ejecutar en Barebone, es decir, incluso sin interfaz gráfica), pero su cantidad de dispositivos compatibles es mucho menor a la de la comunidad de ROMS, y la mayoría de características del dispositivo suelen dejar de estar funcionales, pero a cambio, permite la ejecución de sistemas Linux completamente puros y que su consumo es considerablemente bajo a la comparativa de la ejecución de sistemas Android en general. No utiliza una capa de compatibilidad como lo es Halium, ejecuta directamente en tu hardware Linux de la manera más directa posible, incluso en algunos casos muy particulares (como lo es el OnePlus 6/6t) pudiendo ejecutarse sin el cargador de arranque oficial y simplemente arrancando completamente desde código hecho por su comunidad.

Su instalación varia mucho dependiendo de cada dispositivo y como se ejecute, pero trataré de abarcarlo de la manera más general posible.

También existen proyectos que buscan adaptar PostmarketOS y su código a cosas como Arch Linux, como lo es Kupfer Project, que cuentan con sus propias guias de instalación que no son muy distintas a la de PostmarketOS.

IMPORTANTE!

Instalación

Antes que nada es necesario descargar la última versión del Firmware o de la ROM Stock del dispositivo móvil, esto suele proveerlo el fabricante o paginas externas que almacenan esto. Contando con este y con el Bootloader Desbloqueado podemos continuar con el procedimiento. Por lo general el Bootloader o el modo fastboot se abre con el dispositivo apagado, al intentar arrancarlo con el botón de encendido y volumen abajo presionados al mismo tiempo.

Aquí una tabla de como acceder al modo Fastboot:

Fabricante Combinación de teclas Nota
Google Pixel Volumen abajo + Encendido Accede directamente al Bootloader.
Xiaomi Volumen abajo + Encendido Accede al modo Fastboot (logo de Fastboot con conejo).
Motorola Volumen abajo + Encendido Entra al menú del Bootloader y con las teclas se puede seleccionar el Fastboot.
OnePlus Volumen Arriba + Encendido o Volumen Arriba + Volumen Abajo + USB (según modelo) Entra al Bootloader.
Oppo Volumen arriba + encendido En algunos modelos el modo Fastboot puede estar restringido.
Una vez se está en modo Fastboot, debes conectar el dispositivo móvil y es necesario descargar una herramienta que nos permitirá instalar todo, está herramienta es conocida como "ADB & Fastboot" suele ser dada por Google y está disponible tanto para Windows, Mac y GNU/Linux.

Recordemos que el procedimiento de instalación se realizará en un sistema Linux, por lo que lo ideal será buscar como instalar está herramienta para su distribución. También deberá instalar pmbootstrap la cual es una herramienta por lo general fácil de encontrar y muchos de los sistemas Linux cuentan con el en su repositorio:

# Alpine Linux, postmarketOS:
apk add pmbootstrap
# Arch Linux:
pacman -S pmbootstrap
# Debian:
apt install pmbootstrap
# Fedora:
dnf install pmbootstrap
# Void Linux:
xbps-install -S pmbootstrap
# Gentoo:
emerge -va app-eselect/eselect-repository
eselect repository enable guru
emaint -r guru sync
emerge -va dev-util/pmbootstrap
# Nix/NixOS
nix run nixpkgs#pmbootstrap

Una vez tengamos la herramienta instalada, debemos iniciarla con el comando:

pmbootstrap init

Debemos configurar lo necesario para nuestro dispositivo y seleccionar nuestro respectivo dispositivo con su Codename, es recomendable que se instale Phosh dentro de las opciones de apartado gráfico, pues es el más simple y que más nos facilitará la configuración sin consumir recursos.

Una vez seleccionadas las opciones de compilación, debemos ejecutar:

pmbootstrap install

Posterior a esto, se ejecuta:

pmbootstrap flasher flash_kernel && pmbootstrap flasher flash_rootfs --partition userdata

Nota: Corrobore si se instala en la partición userdata o se utiliza la que viene por defecto en la wiki de su dispositivo en PostmarketOS, y si es necesario hacer un paso extra.

Luego, reiniciamos el dispositivo con:

fastboot reboot

Y debería arrancar sin problema alguno PostmarketOS.

Una vez tengas instalado esto, puedes seguir leer el documento de guía general para creación de servidores con dispositivos Linux: