-
Instalar OpenWrt Sinovoip en la eMMC del router BPI-R3 usando un cable de consola
Para realizar todo el proceso de instalar la versión SinoVoIP de OpenWrt en la eMMC de la Banana Pi BPI-R3 utilizaremos un ordenador Debian. El proceso será:
- Obtención de las imágenes.
- Guardado de las imágenes en un pendrive.
- Iniciar el router desde la tarjeta MicroSD.
- Conectarse al puerto de consola.
- Flashear la imagen hacia la nand.
- Apagar el router.
- Configurar el router para que inicie desde la nand (todos los jumpers abajo).
- Iniciar el router desde la nand.
- Flashear la imagen hacia la EMMC.
- Apagar el router.
- Configurar el router para que inicie desde la EMMC (jumpers abajo, arriba, abajo, arriba, )
- Iniciar el router desde la EMMC.
NOTA: Para preparar el router para que inicie desde una MicroSD seguimos previamente este hack.
OBTENCIÓN DE LAS IMÁGENES
Empezaremos descargando el archivo comprimido con la imagen de OpenWrt desde aquí. El mejor archivo a descargar será la última versión «production» que tenga soporte para los módems EC25. A la fecha de modificación de este artículo, la imagen es la 2022-09-28 con este link de descarga.
Una vez descargado el .zip, descomprimimos su contenido en una carpeta. Se nos habrán creado en esa carpeta varios archivos diferentes. Para un mejor orden visual, dentro de la misma carpeta crearemos dos nuevas carpetas que llamaremos WANviaRJ45 y WANviaSFP1. Meteremos en cada una de ellas los archivos de imágenes correspondientes, según su nombre. Dependiendo si vamos a conectarnos a la WAN mediante el cable RJ45 o un cable SFP, utilizaremos unos archivos u otros.
GUARDADO DE LAS IMÁGENES EN UN PENDRIVE
En un pendrive formateado con FAT32 guardamos el archivo bl2* y las otras dos imágenes. Es decir, en la raíz del pendrive nos deberían quedar los siguientes archivos:
bl2_emmc.img mtk-bpi-r3-NAND-WAN1-RJ45-20220619-single-image.bin mtk-bpi-r3-EMMC-WAN1-RJ45-20220619-single-image.img
INICIO DEL ROUTER DESDE LA MICROSD
Configuramos los jumpers para iniciar desde la MicroSD. Para ello el 1, el 2 y el 4 deben estar arriba. El 3 lo ponemos arriba para que OpenWrt tenga acceso a la SPI NAND
PREPARACIÓN PARA EL PRIMER INICIO
Antes de conectar el cable de alimentación hacemos lo siguiente:
- Insertamos la MicroSD en el slot.
- Insertamos el pendrive en el puerto USB 3.
- Conectamos el cable de consola, una punta a los pines de la BPI-R3 y la otra punta a ordenador (el chip del cable no debe ser el PL2303 sino alguno de los siguientes: cp2102, ch340 o FDTI).
NOTA: Es posible que Ubuntu no te reconozca el cable convertidor de USB a consola. Seguramente tendrás que desactivar el soporte braile del sistema para que Ubuntu pueda crear el dispositivo /dev/ttyUSB0 con alguno de esos dispositivos.
PRIMER INICIO
Conectamos el cable de corriente e inmediatamente abrimos una terminal en nuestra distro y nos conectamos a la consola de la BPI-R3 ejecutando:
sudo screen /dev/ttyUSB0 115200
Si el comando screen no está disponible, instalamos el paquete ejecutando como root:
apt-get -y install screen
Una vez en la consola, si iniciamos la imagen por defecto, hay un momento que nos dirá que si presionamos f+Enter entraremos en el modo a prueba de fallo. Lo hacemos y acabamos en la consola de la imagen de OpenWrt.
El usuario de la imagen de Debian es root y su contraseña es bananapi.
comprobamos que el Pendrive esté montado. Si no lo está, lo montamos con:
mount -t vfat /dev/sda1 /mnt
Desde debian nos aseguramos que el paquete mtd-utils esté instalado y borramos la mtd0 ejecutando:
mtd erase /dev/mtd0
También podemos llenar el espacio con ceros de la siguiente manera:
dd if=/dev/zero of=/dev/mtdblock0 status=progress
Ahora, para copiar la imagen de la NAND, ejecutamos:
dd if=/Particiones/Pendrive/mtk-bpi-r3-NAND-WAN1-RJ45-20220601-single-image.bin of=/dev/mtdblock0
Apagamos la R3 quitándole el cable de alimentación y quitamos la MicroSD.
CONFIGURACIÓN DE JUMPERS PARA INCIAR DESDE LA NAND
Configuramos los jumpers para iniciar desde la SPIM-NoR. Para ello, los tres primeros jumpers (de izquierda a derecha) deben estar abajo y el último da igual..
SEGUNDO INICIO
Conectamos el cable de alimentación nuevamente a la R3 y nos conectamos mediante consola. Si todo ha ido bien acabaremos en la consola de OpenWrt. El usuario es root y no hay ningún password establecido para él.
El pendrive se habrá montado en /mnt/sda1. Si no se ha montado lo hacemos con:
mkdir -p /mnt/sda1 mount -t vfat /dev/sda1 /mnt/sda1
Una vez que el pendrive esté montado, ya podemos quemar la imagen a la MMC. Lo hacemos con:
echo 0 > /sys/block/mmcblk0boot0/force_ro dd if=/mnt/sda1/bl2_emmc.img of=/dev/mmcblk0boot0 dd if=/mnt/sda1/mtk-bpi-r3-EMMC-WAN1-RJ45-20220601-single-image.img of=/dev/mmcblk0 mmc bootpart enable 1 1 /dev/mmcblk0
Al finalizar de quemar la imagen en la EMMC seguimos este proceso:
- Quitamos el cable de alimentación.
- Desconectamos el pendrive.
- Configuramos los jumpers para iniciar desde la EMMC (de izquierda a derecha: abajo, arriba, abajo, arriba)
- Conectamos el cable ethernet al puerto WAN.
- Volvemos a ponerle el cable de alimentación
TERCER INICIO
Conectamos el cable de alimentación nuevamente a la R3 y ya podemos iniciar OpenWrt.
EXTRA (UNIDAD NVMe)
Podemos instalar una unidad NVMe para usarla como la nueva partición Overlay, de forma que OpenWrt guarde ahí los logs, archivos que descarguemos mediante torrents o cualquier otra cosa. Para ello apagamos la BPI-R3, le colocamos la unidad NVMe y la volvemos a iniciar.
Una vez iniciado OpenWrt, nos conectamos mediante SSH y crearemos en la unidad NVMe una única partición de tipo MBR, ejecutando:
fdisk /dev/nvme0n1
Una vez que se nos abra el programa fdisk presionaremos o, n, p, 1, Enter, Enter y w.
- o – crea una nueva tabla MBR.
- n – crea una partición nueva.
- p – …de tipo primaria y…
- 1 – …indica que el numero de la partición será el 1.
- Primer enter – indica que use el primer sector disponible y…
- Segundo enter – indica que llegue hasta el último sector disponible.
- w – escribe los cambios en el disco y vuelve a la shell.
A continuación, formatearemos unidad NVMe como ext4 con el siguiente comando:
mkfs.ext4 /dev/nvme0n1p1
Para continuar, obtenemos el UUID de la partición que acabamos de crear, ejecutando:
lsblk -f -m | grep nvme0n1p1
Y, finalmente, reemplazaremos en el archivo /etc/config/fstab el UUID del punto de montaje /overlay, por el de la partición del NVMe. Por supuesto, en enabled, hay que cambiar el 0 por el 1.
En este punto podemos, o reiniciar OpenWrt, con:
reboot
o, como cada vez después de tocar el archivo /etc/config/fstab, ejecutar:
block umount block mount
A partir de cualquiera de ambos comandos ya podremos utilizar el almacenamiento de la partición del NVMe para todas nuestras locuras con OpenWrt.
Más info en la wiki oficial.
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.