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!
- Para la instalación de el acceso ROOT es necesario el Desbloqueo de Bootloader.
- Podremos revisar la pagina "https://wiki.postmarketos.org/wiki/All_devices" o "https://kupfer.gitlab.io/devices/index.html" para corroborar si nuestro dispositivo móvil es compatible.
- PostmarketOS es probablemente la manera más directa de ejecutar GNU/Linux en un dispositivo, por favor corroborar completamente todo lo que la guía indique que deba revisar en el proceso de instalación
- Es necesario un dispositivo con Linux para su instalación así que, es recomendable usar un pendrive booteable si no cuenta con un computador con Linux.
- Algunos proveedores asignan un "Codename" al dispositivo móvil, es importante que revises si tu dispositivo móvil cuenta con uno, porque encontrar cosas como su software original suele hacerse con este "Codename"
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: