-
Instalar OpenWrt oficial en la SPI NAND del router BPI-R3 sin usar un cable de consola
Para conseguir quemar una imagen de OpenWrt en la memoria SPI NAND del router BananaPi BPI-R3 sin usar un cable de consola tenemos que seguir estos pasos:
- Quemar la imagen en la MicroSD que hayamos preparado en este hack.
- Configurar los jumpers para iniciar desde la MicroSD, con acceso a la SPI NAND
- Iniciar desde la MicroSD y quemar la imagen en la SPI NAND
- Cambiar los jumpers para que la BPI-R3 inicie siempre desde la SPI NAND.
QUEMAR LA IMAGEN EN UNA MICROSD
Podemos quemar la imagen en la MicroSD de esta forma:
dd if=/home/usuario/sd.img of=/dev/mmcblk0 bs=10M status=progress
Eso sí, al acabar de quemar la imagen de la MMC en la tarjeta, hay que prestar atención a que la última partición (que es donde se montará el overlay) tiene de tamaño, como mucho, el total de espacio que suman los paquetes elegidos. Y eso es muy poco. Por eso, antes de sacarla del ordenador GNU/Linux donde la hemos «quemado» y antes también de meterla en la BPI-R3, hay que hacer que esa última partición (que es la que se llama «production») sea tan grande como todo el espacio libre disponible al final de la tarjeta de memoria. Esto lo hacemos abriendo en la distro donde la quemamos, una consola con permisos de administrador y ejecutando dentro:
cfdisk /dev/mmcblk0
…nos posicionamos sobre la última partición y le damos en resize. Al acabar le damos a write y ya estaremos listos para meterla en la BananaPi y empezar a operar con ella.
PRIMER INCIO
Ponemos todos los jumpers de la BPI-R3 hacia arriba para que inicie desde la MicroSD. Insertamos la tarjeta y conectamos el cable de corriente. Una vez que la BPI inicie, nos conectamos mediante SSH a ella (192.168.1.1) y vamos a hacer una serie de cosas:
OBTENER INFO DEL TIPO DE NAND
Para ver que tipos de NAND tiene la BPI-R3, podemos ejecutar:
cat /proc/mtd
Nos dará la siguiente salida (sin mis notas personales sobre los MB):
dev: size erasesize name mtd0: 07a80000 00020000 "ubi" - 122,5 MB mtd1: 00200000 00020000 "fip" - 2,0 MB mtd2: 00300000 00020000 "reserved" - 3,0 MB mtd3: 00080000 00020000 "bl2" - 0,5 MB
Entonces, si sumamos todos los MB vemos que dan un total de 128. Es decir, estamos hablando de la SPI NAND (SPIM-Nand) de 128MB, no de la SPI NOR (SPIM-NoR) de 32MB,
BORRAR LA NAND
Podemos borrar el contenido de las 4, así:
mtd erase /dev/mtd0 mtd erase /dev/mtd1 mtd erase /dev/mtd2 mtd erase /dev/mtd3
QUEMAR LA IMAGEN DE LA MICROSD EN LA NAND
Para hacer esto tenemos dos formas:
MÉTODO 1 – U-BOOT
Todavía conectados mediante SSH, vamos a modificar la variable de entorno bootcmd del bootloader U-Boot para que ejecute una serie de comandos al arrancar que van a hacer que el contenido de la MicroSD se copie en la NAND. Lo hacemos ejecutando:
fw_setenv bootcmd "run ubi_init ; env default bootcmd ; saveenv ; reset"
Esta línea indica a U-Boot que ejecute los siguientes comandos:
run ubi_init: estableciende la secuencia de comandos de arranque ubi_init que inicializa el sistema de archivos UBI (Unsorted Block Images).
env default bootcmd: Restablece la variable bootcmd a su valor por defecto establecido en U-Boot.
saveenv: Guarda los cambios hechos en las variables de entorno en el almacenamiento persistente.
reset: Reinicia el dispositivo, lo que permite que los cambios tomen efecto inmediatamente.
De esa forma, la próxima vez que se inicie la BPI-R3, ejecutará lo que corresponde a la siguiente opción del menú del bootloader U-Boot, instalado por defecto en el router:
Install bootloader, recovery and production to NAND
Entonces, para ello, reiniciamos la BPI-R3 con:
reboot
Al reiniciar, la dejamos un buen rato, hasta que termine la copia. Al finalizar quitamos el cable de corriente y configuramos los jumpers para que inicie desde la NAND.
NOTA: Es posible hacer la copia hacia la SPI NOR de 32MB (SPIM-NoR), en vez de hacia la SPI NAND de 128MB (SPIM-Nand). Para ello el comando sería:
fw_setenv bootcmd "run nor_init ; env default bootcmd ; saveenv ; reset"
Lo que sería equivalente a ejecutar el siguiente apartado del menú de U-Boot:
Install bootloader, recovery and production to NOR
Para ver si interesa copiarla hacia una u otra es mejor leer este artículo, para ver que diferencias hay entre una memoria y la otra.
MÉTODO 2 – DIRECTO (TODAVÍA NO FINALIZADO)
Flasheamos la mtd1 ejecutando:
dd if=/Particiones/openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-snand-bl31-uboot.fip of=/dev/mtdblock1
Flasheamos la mtd3 ejecutando:
dd if=/Particiones/openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-snand-preloader.bin of=/dev/mtdblock3
QUEMAR LA IMAGEN EN LA EMMC
Si hemos logrado bootear con éxito desde la NAND, modificaremos otra vez la variable de entorno del bootloader U-Boot para que, al inciar, copie el contenido, pero esta vez hacia la eMMC:
fw_setenv bootcmd "run emmc_init ; env default bootcmd ; saveenv ; saveenv ; reset"
De esa forma, la próxima vez que se inicie la BPI, hará la copia de la NAND a la EMMC.
Entonces, reiniciamos la BPI-R3 con:
reboot
Al reiniciar, la dejamos un buen rato, hasta que termine la copia. Al finalizar quitamos el cable de corriente y configuramos los jumpers para que inicie desde la EMMC.
Search
Archives
- noviembre 2024
- octubre 2024
- septiembre 2024
- junio 2024
- mayo 2024
- abril 2024
- marzo 2024
- octubre 2023
- agosto 2023
- junio 2023
- mayo 2023
- abril 2023
- marzo 2023
- febrero 2023
- enero 2023
- diciembre 2022
- noviembre 2022
- octubre 2022
- septiembre 2022
- agosto 2022
- julio 2022
- junio 2022
- mayo 2022
- abril 2022
- febrero 2022
- enero 2022
- diciembre 2021
- noviembre 2021
- octubre 2021
- septiembre 2021
- julio 2021
- junio 2021
- mayo 2021
- abril 2021
- marzo 2021
- febrero 2021
- enero 2021
- diciembre 2020
- noviembre 2020
- octubre 2020
- septiembre 2020
- junio 2020
- mayo 2020
- abril 2020
- marzo 2020
- noviembre 2019
- septiembre 2019
- agosto 2019
- julio 2019
- junio 2019
- mayo 2019
- enero 2019
- noviembre 2018
- septiembre 2018
- agosto 2018
- junio 2018
- mayo 2018
- marzo 2018
- febrero 2018
- diciembre 2017
- octubre 2017
- septiembre 2017
- agosto 2017
- julio 2017
- junio 2017
- mayo 2017
- abril 2017
- marzo 2017
- febrero 2017
- diciembre 2016
- noviembre 2016
- octubre 2016
- septiembre 2016
- agosto 2016
- julio 2016
- mayo 2016
- abril 2016
- marzo 2016
- febrero 2016
- noviembre 2015
- octubre 2015
- agosto 2015
- julio 2015
- junio 2015
- mayo 2015
- abril 2015
- marzo 2015
- febrero 2015
- enero 2015
- diciembre 2014
- noviembre 2014
- octubre 2014
- septiembre 2014
- agosto 2014
- julio 2014
- junio 2014
- mayo 2014
- abril 2014
- marzo 2014
- febrero 2014
- enero 2014
- diciembre 2013
- noviembre 2013
- septiembre 2013
- julio 2013
- mayo 2013
- marzo 2013
- febrero 2013
- enero 2013
- diciembre 2012
- noviembre 2012
- agosto 2012
- julio 2012
- junio 2012
- mayo 2012
- abril 2012
- marzo 2012
- enero 2012
- noviembre 2011
- julio 2011
- junio 2011
- mayo 2011
- abril 2011
- marzo 2011
- enero 2011
- diciembre 2010
- septiembre 2010
- agosto 2010
- julio 2010
- febrero 2010
- enero 2010