domingo, 27 de marzo de 2022

PinePhone - Flashear el sistema operativo en la microSD

¿Que es flashear?

Flashear es cargar datos en un chip de memoria de estado sólido, en especial los que contienen el sistema operativo para dispositivos y periféricos electrónicos. Como SmartPhone, Tablet, etc.

Prioridad de arranque

El PinePhone tiene una memoria interna llamada eMMC y otra externa llamada microSD, siempre arranca primero desde la tarjeta microSD. Por lo tanto, se recomienda tener a mano una tarjeta microSD. No es posible bloquearse el teléfono cuando falla la instalación en el almacenamiento interno (el eMMC), ya que una tarjeta microSD correctamente flasheada siempre se iniciará.

Nota: El hardware del PinePhone no admite el arranque desde USB, una memoria USB activa no arrancará.

Resumen de instalación en tarjeta microSD

Para instalar una imagen en la tarjeta microSD, se tiene que seguir los siguientes pasos:

  • Descargar una imagen en formato .img de un sistema operativo para el teléfono PinePhone, como por ejemplo Mobian, Manjaro plasma mobile, etc... (Normalmente cuando se descarga de internet esta imagen viene comprimida, en algún formato libre como .xz)
  • Extraemos el archivo comprimido (.xz, .gz, etc...), para que la imagen del archivo una vez descomprimida quede con extensión .img
  • Pasar la imagen a una tarjeta microSD
  • Conectar la tarjeta microSD al teléfono (asegúrese de usar la ranura superior, NO la inferior)
  • Encienda el teléfono y disfrute usándolo.

 

 

 
 

Uso de Balena Etcher para flashear el sistema operativo

En este manual vamos hacer uso de la aplicación balena etcher, pues es el método mas mas fácil de usar.

1- Descargamos balena etcher desde la web oficial, (nos bajamos la appimage en formato comprimido, no es necesario instalar el archivo .deb), se descomprime y se ejecuta pulsado con el ratón.
2- Introducimos la tarjeta microSD en el lector de nuestro pc.
3- Arrancamos balena etcher.



4- Pulsamos en Flash from file, para buscar la imagen que vamos a flashear en la tarjeta microSD.



5- En este manual vamos a flashear la imagen llamada: multi.img que incluye 15 sistemas operativos instalados para su uso y demostración.




6- Pulsamos en Select target para indicarle en que unidad vamos a flashear la imagen anterior, en este manual estoy usando una tarjeta microSD de 32GB, entonces seleccionamos dicha unidad, y por ultimo pulsamos en Select (1)

IMPORTANTE: En la captura de pantalla vemos que ha montado la tarjeta microSD en la siguiente unidad: /dev/sdd (la unidad no te tiene que coincidir con este manual, pues eso depende de la cantidad de unidades que estés utilizando en tu pc. Pero es muy importante que te fijes y recuerdes en que unidad lo ha montado, mas adelante explico el porque hago esta puntualización)



7- Solo nos falta pulsar en Flash! para que empiece a grabar el sistema operativo en la tarjeta microSD




8- Al pulsar en Flash, nos pide la contraseña de administrador, ya que este proceso solo puede ser realizado por un administrador del sistema operativo.




Observamos como esta flasheando perfectamente.




Una vez flasheada el sistema operativo, el propio balena etcher, verifica que la instalación no contenga errores y sea correcta




Y si todo es correcto y no habido errores, balena etcher nos informa que el flasheo a terminado correctamente.




Insertar la tarjeta microSD en el PinePhone

Si has flasheado una imagen que solo contiene un sistema operativo, como puede ser: Mobian, Manjaro Plasma Mobile, Ubuntu touch, etc.. Ya puedes insertar la tarjeta microSD en el PinePhone, y empezar a disfrutar del teléfono.

 

Nota muy importante: 

  1. La tarjeta microSD es la parte superior.
  2. Normalmente la imágenes (.img) de los sistemas operativos ocupan muy poco espacio, muy pocos GB. Ejemplo real: la imagen multi.img de este tutorial ocupa solo 10.5GB, si tenemos una microSD de 32GB, lógicamente estamos desperdiciando espacio. Entonces el primer arranque del sistema operativo se demora mas de lo normal, porque el propio sistema en el primer arranque detecta el espacio máximo de la microSD, y lo que hace es redimensionar la partición del sistema a su máximo tamaño.
  3. No penséis que el sistema no arranca o que el teléfono se ha quedado colgado, pues normalmente cuando esta redimensionando la partición, no aparece ninguna imagen, y da la sensación que no hace nada y que no ha funcionado, o que se ha estropeado. 

 

 

 

 

 
 

 Imágenes de mas de un sistema operativo 

Como hemos usado la imagen multi.img que incluye mas de un sistema operativo (15 sistemas, en el momento de escribir este manual), también incluye el cargador de arranque llamado: p-boot, y ocupa solo 10.5GB, en una tarjeta microSD de 32GB. Aquí nosotros tenemos que redimensionar manualmente, la partición del sistema, para usar el tamaño máximo de la tarjeta microSD.

NOTA MUY IMPORTANTE:

  1. No podemos usar el programa Gparted para redimensionar, porque la imagen de multi.img usa el sistema de archivos btrfs en la partición del sistema, y actualmente gparted no puede redimensionar (ampliar o reducir espacio), en particiones con formato btrfs. Y actualmente aunque lo hagas no te va a funcionar bien, y en unos 5 ó 6 reinicios del teléfono, ya no te va arrancar el sistema operativo.
  2. Para redimensionar usaremos la consola de comandos, y usaremos como ejemplo, para este manual la unidad: /dev/sdd (pero lo mas normal es que NO coincida la misma unidad de tu pc)

 

 Redimensionar la partición al tamaño máximo 

Lo mas fácil es hacerlo todo el proceso desde el pc con un sistema operativo Linux. Como Debian GNU/Linux. 

Es imprescindible tener instalado la librería: btrfs para poder redimensionar dicha partición.

En Debian GNU/Linux instalamos el siguiente paquete, con la ayuda de synaptic o bien desde consola usando el siguiente comando:
apt install btrfs-progs


El proceso de redimensión es el siguiente:

1- Abrimos una consola de comandos y nos logeamos como usuario administrador usando el comando: su -

O como usuario normal anteponiendo el comando: sudo, todo depende de como tengas configurado tu sistema operativo Debian GNU/Linux

2- Ejecutamos el siguiente comando: blkid

NOTA: yo aconsejo usar el comando blkid, porque nos va a mostrar las dos particiones (la del gestor de arranque PARTUUID="12345678-01" y la de los sistemas operativos PARTUUID="12345678-02") que se han creado en la tarjeta microSD, y así es mas fácil de comprender.

Usamos el siguiente comando para ver todos los discos duros y todas las particiones que tienen los discos duros o discos ssd. Para ello usamos el comando: 

blkid

 

 

Observamos en al imagen superior que las dos ultimas lineas hacen referencia al dispositivo /dev/sdd, y contiene dos particiones: /dev/sdd1 y /dev/sdd2 (este dispositivo cambiará dependiendo de la cantidad de discos duros o discos ssd que tengas instalado en tu pc)

¿como sabemos que unidad es la que buscamos?

Tenemos que buscar la partición que tiene el PARTUUID="12345678-02" ya que al flashear la microSD se crean dos particiones: PARTUUID="12345678-01" para el gestor de arranque que incluye el p-boot y PARTUUID="12345678-02" que es el que incluye todos los sistemas operativos (Mobian, Manjaro, Ubuntu Touch, etc...), incluye también: Jumpdrive, el acceso a la conexión FEL, y el arranque a la unidad eMMC.

 



3- Ahora usamos el siguiente comando (solo nos mostrará lo que hacer, para asegurarnos que el resultado es el que esperamos):

echo ", +" | sudo sfdisk -n -N 2 /dev/sdd

  • sfdisk = es el programa para manejar las los discos y particiones desde la consola de comandos. 
  • -n = Este parámetro es para que no cree automáticamente una tabla de partición predeterminada en un dispositivo vacío. La tabla de particiones debe ser creada explícitamente por el usuario. Básicamente lo que hace es enseñarnos el antes y el después sin hacer los cambios reales
  • N 2 = Este parámetro es para indicarle que la partición que vamos a usar, es la segunda (/dev/sdd2)
  • /dev/sdd = Es para indicarle que disco o dispositivo vamos a usar para redimensionar

 

 

 

En la siguiente imagen explico la salida del comando.

 



4- Ahora si vamos a realizar los cambios, usamos el mismo comando de anteior, pero quitamos el parámetro -n.
echo ", +" | sudo sfdisk -N 2 /dev/sdd


 

En la siguiente imagen explico la salida del comando.

 


 

5- Vamos a montar la partición, que hemos redimensionado en el directorio /mnt (El directorio /mnt tiene la finalidad de albergar los puntos de montaje de los distintos dispositivos de almacenamiento como por ejemplo discos duros externos, particiones de unidades externas, etc. Aunque actualmente se usa el directorio /media para hacer esto mismo. El directorio /mnt sigue encontrandose en el sistema, aunque esta vacío, por eso vamos a usar este directorio). Recordar que sdd2 es para este manual que que en tu caso puede variar por /sdb2 o /sdc2, etc.


mount /dev/sdd2 /mnt

 


 

6- Toca redimensionamos (resize) la partición (/mnt) con el sistema de ficheros (btrfs) al tamaño maximo (max) usando el siguiente comando:
btrfs filesystem resize max /mnt


 

Observamos como esta redimensionado el dispositivo /dev/sdd2 desde los 9.547GB al tamaño máximo de la microSD (en este manual es de 32GB)




7- Usamos el siguiente comando para observar que se ha redimensionado al tamaño máximo, que teníamos sin usar:
df-h

 

 

Y vemos como ha realizado los cambios perfectamente

 


 

8- como es correcto, procedemos a desmontar la unidad
umount /mnt

 

 

ya podemos insertar la tarjeta microSD en el PinePhone y disfrutar del teléfono.

 

 

 


 

 


Resumen de comandos usados


Recordar instalar el siguiente paquete en Debian GNU/Linux (en otras distribuciones puede tener otro nombre): btrfs-progs



echo ", +" | sudo sfdisk -n -N 2 /dev/sdd


echo ", +" | sudo sfdisk -N 2 /dev/sdd


sudo mount /dev/sdd2 /mnt


sudo btrfs filesystem resize max /mnt


sudo df -h


sudo umount /mnt

 


Algunas fotos del p-boot del PinePhone





 

 
 

No hay comentarios: