Lunes 01/05/2017

Con la llegada de la Raspberry Pi 3 se ha producido un cambio drástico en el sistema de arranque. En los modelos anteriores era necesario tener insertada la tarjeta micro SD para que la Raspberry arrancara, pero desde el modelo 3, ya no es necesario. Si no tiene la tarjeta SD conectada, busca en los puertos USB algún dispositivo de almacenamiento masivo, que tenga el sistema operativo, para proceder al arranque.

Sin embargo, está característica, no está activada por defecto. Es necesario programar el SoC, un Broadcom BCM2837, para activarla. Hay que resaltar que esta memoria es del tipo OTP (One-Time Programmable), es decir que los cambios que efectuemos no se pueden deshacer. Usted debe decidir si "se arriesga" a efectuar este cambio ya que, una vez realizado, no hay vuelta atrás.

Toda la documentación necesaria se encuentra en esta dirección de la página oficial (en inglés). A continuación describiré los pasos que he seguido para hacerlo en mi Raspberry.

En primer lugar hay que bajarse una imagen de Raspbian desde aquí e instalarla en una tarjeta micro SD siguiendo los pasos habituales. Introducirla en la Raspberry arrancarla y abrir una terminal. En ella tecleamos lo siguiente:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Este comando agregará al archivo "/boot/config.txt" una línea, al final, con "program_usb_boot_mode=1". Seguidamente reiniciamos, desde la misma terminal, con:

sudo reboot

Una vez reiniciado, comprobamos que hemos programado correctamente la memoria PROM (OTP) con:

vcgencmd otp_dump | grep 17:

y debe arrojarnos:

17:3020000a

Asegúrese de que la salida es 17:3020000a Si no es así el bit no ha sido programado con éxito.

Una vez efectuados los pasos anteriores, recuerde borrar de la tarjeta SD la linea que hemos añadido, con objeto de evitar programar otra Raspberry si volvemos a utilizarla.

Seguidamente grabamos en nuestro disco duro una imagen de Raspbian de la misma manera que lo haríamos en una tarjeta SD (Importante: esta imagen debe ser la versión 2017-04-10 o posterior).

Conectamos, el disco duro, a la Raspberry Pi (sin la tarjeta SD). Arrancamos y transcurridos entre cinco y diez segundos aparecerá el proceso de arranque. Redimensionará el espacio del disco para ocuparlo completamente y ya podemos funcionar como de costumbre con la ventaja de poseer mayor espacio de almacenamiento y evitar fallos por corrupción de la tarjeta.

Si deseamos volver a usar la Raspberry Pi con una tarjeta micro SD, basta con insertarla en su ranura, ya que el proceso de arranque revisa primero si tenemos instalada la tarjeta y si no la encuentra, busca un sistema de almacenamiento (disco duro o memoria USB) alternativo.

El retraso de 10 segundos en el arranque favorece que el disco duro conectado esté activo cuando se inicie el Sistema Operativo. Los discos duros lentos, que tarden más de este tiempo en estar completamente operativos, darán problemas. Yo he hecho las pruebas con un SEAGATE Expansion modelo STEA1000400 de 1TB que me costó 54€ en un comercio local y todo ha funcionado perfectamente.

Pienso que con el paso del tiempo, estas facilidades, vendrán instaladas por defecto, pero mientras tanto nos toca “cacharrear”. Ese es el espíritu de nuestra Raspberry Pi.

Fuente: How to boot from a USB mass storage device on a RASPBERRY PI 3


Adenda (añadida el día 07/05/2017):

En las pruebas que he realizado desde la publicación de la entrada hasta es día de hoy, 07/05/2017, he encontrado los siguientes inconvenientes y facilidades:

-Es bastante exigente con los discos duros giratorios. Funciona perfectamente con el SEAGATE Expansion modelo STEA1000400 del ejemplo pero no ha logrado arrancar con otros tres discos duros, entre los que se encuentra un SAMSUNG M3 de 1tb modelo M101TCB/G, cosa que me ha sorprendido bastante ya que es de gama similar al SEAGATE y funciona sin problemas con BerryBoot.

-Ha funcionado perfectamente con todos los pendrives con los que lo he probado, incluido un LG de 16 gigas, bastante antiguo.

-De momento, solo el sistema operativo Raspbian de fecha 2017-04-10 es apto para esta función sin realizar ningún tipo de modificación. Imagino que las versiones futuras también lo serán y el resto, de sistemas operativos, se irán adaptando.

-Modificar la memoria OTP no es reversible pero, al programarla, solamente estamos activando un flag que le dice, a la Raspberry, que puede usar este modo de arranque. Si deseamos seguir utilizándola con la tarjeta micro SD, no existe ningún problema.

twittear o compartir en Facebook


§