-
Crear una imagen personalizada de OpenWrt para la BPI-R3
La BananaPi BPI-R3 tiene un procesador MediaTek Filogic MT7986a. OpenWrt ofrece una herramienta web para personalizar la creación de la imagen de instalación. Con esta herramienta web podemos compilar una imagen personalizada, con los paquetes que nos interesa. Lo bueno de esto es que, elijamos los paquetes que elijamos, la propia herramienta de compilación seleccionará automáticamente todas las dependencias.
Los enlaces a la herramienta web para las diferentes versiones son:
En mi caso, personalizo los paquetes desplegando la flecha hacia abajo, borro todos los que aparecen y los reemplazo con esta lista personalizada:
# Hardware # Chipset mt7986-wo-firmware kmod-mt7986-firmware # Wifi kmod-mt7915-firmware kmod-mt7915e kmod-mac80211 kmod-mt7615e # SFP kmod-sfp # USB 2 kmod-usb2 kmod-usb-core kmod-usb-ehci kmod-usb-ohci usbutils usbids # USB 3 kmod-usb3 kmod-usb-xhci-hcd kmod-usb-xhci-mtk # GPIO kmod-gpio-button-hotplug kmod-i2c-gpio kmod-leds-gpio # MTD mtd # NVMe kmod-nvme # PCI pciutils pciids # Software # Herramientas para terminal (mandatorias para el funcionamiento del sistema) base-files uci opkg dropbear dnsmasq # Herramientas para terminal (extra) mc nano curl git hwclock # Acceso a volúmenes e2fsprogs f2fsck fstools mkf2fs blkid block-mount blockd blockdev dosfstools fdisk kmod-fs-vfat kmod-usb-storage parted nand-utils lsblk # Web luci luci-i18n-base-es # Adblock adblock luci-app-adblock luci-i18n-adblock-es tcpdump-mini msmtp # DDNS ddns-scripts ddns-scripts-services luci-app-ddns luci-i18n-ddns-es # Cortafuegos firewall4 luci-app-firewall luci-i18n-firewall-es # OPKG opkg luci-app-opkg luci-i18n-opkg-es # uPnP luci-app-upnp luci-i18n-upnp-es # Programación Wifi wifischedule luci-app-wifischedule luci-i18n-wifischedule-es # Wake on LAN luci-app-wol (Instala la dependencia etherwake) luci-i18n-wol-es # Terminal en LUCI luci-app-ttyd luci-i18n-ttyd-es # Watchcat luci-app-watchcat luci-i18n-watchcat-es # VPN kmod-wireguard wireguard-tools luci-proto-wireguard qrencode # Módem luci-proto-modemmanager # MÓDEM EC25 (Modo QMI) . kmod-usb-serial kmod-usb-serial-wwan # Kernel support for USB GSM and CDMA modems kmod-usb-serial-option . kmod-mii kmod-usb-net kmod-usb-wdm kmod-usb-net-qmi-wwan # QMI WWAN driver for Qualcomm MSM based 3G and LTE modems wwan uqmi . usb-modeswitch minicom
Aquí abajo, todos los paquetes en una única línea, menos los paquetes para controlar módems, porque no sé que modem MiniPCIe le pondréis:
mt7986-wo-firmware kmod-mt7986-firmware kmod-mt7915-firmware kmod-mt7915e kmod-mac80211 kmod-mt7615e kmod-sfp kmod-usb2 kmod-usb-core kmod-usb-ehci kmod-usb-ohci usbutils usbids kmod-usb3 kmod-usb-xhci-hcd kmod-usb-xhci-mtk kmod-gpio-button-hotplug kmod-i2c-gpio kmod-leds-gpio mtd kmod-nvme pciutils pciids base-files uci opkg dropbear dnsmasq mc nano curl git hwclock e2fsprogs f2fsck fstools mkf2fs blkid block-mount blockd blockdev dosfstools fdisk kmod-fs-vfat kmod-usb-storage parted nand-utils lsblk luci luci-i18n-base-es adblock luci-app-adblock luci-i18n-adblock-es tcpdump-mini msmtp ddns-scripts ddns-scripts-services luci-app-ddns luci-i18n-ddns-es firewall4 luci-app-firewall luci-i18n-firewall-es opkg luci-app-opkg luci-i18n-opkg-es luci-app-upnp luci-i18n-upnp-es wifischedule luci-app-wifischedule luci-i18n-wifischedule-es luci-app-wol luci-i18n-wol-es luci-app-ttyd luci-i18n-ttyd-es luci-app-watchcat luci-i18n-watchcat-es kmod-wireguard wireguard-tools luci-proto-wireguard qrencode luci-proto-modemmanager
Todos los paquetes de arriba garantizan que la BPI-R3 funcione correctamente, con todas sus funcionalidades activadas:
La propia herramienta selecciona todas las dependencias para esa compilación y se asegura que no falte ninguno que tenga relación con los paquetes que le pegamos. Esto nos asegura una instalación funcional de OpenWrt en la BPI-R3 en la que podremos utilizar todos sus componentes y hacer todas las funciones básicas de un router (y alguna más).
Si que es cierto que, una vez conectado al router (mediante SSH o LUCI/Web) suelo instalar algún que otro paquete extra desde la propia terminal:
CONTROLADORES kmod-hwmon-pwmfan mmc-utils lscpu uboot-envtools uclient-fetch busybox
Al quemar una imagen personalizada, y especialmente si vamos a querer tener instalado OpenWrt en la NAND de la BPI-R3, deberemos tener cuidado con que la imagen generada no ocupe más de 128MB, pues es el tamaño máximo que disponemos para quemar imágenes en ella. Si, por otro lado, queremos tener OpenWrt instalado en la EMMC, o si vamos a correrlo desde la propia MicroSD, no nos hace falta preocuparnos por el espacio que ocupe la imagen generada; la EMMC de la BPI-R3 tiene 8GB de espacio y una MicroSD, pues lo que estemos dispuestos a gastar.
Eso si, hay que prestar atención a que, al acabar de quemar la imagen de la MMC en la tarjeta, 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.
Entonces, volviendo al ruedo, después de darle a compilar, y que la compilación haya resultado exitosa, podrás descargar los archivos individuales.
Se nos descargarán 8 archivos:
openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-sdcard.img (Para quemar en la MicroSD) openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-nor-preloader.bin (Otro tipo de imagen) openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-nor-bl31-uboot.fip (Imagen de cargador de arranque. Software de bajo nivel que carga el sistema operativo en la primera fase del arranque.) openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-snand-preloader.bin () openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-snand-bl31-uboot.fip () openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-emmc-preloader.bin (Es la correspondiente a bl2_emmc) openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-emmc-bl31-uboot.fip (Imagen de cargador de arranque. Software de bajo nivel que carga el sistema operativo en la primera fase del arranque.) openwrt-xxx-mediatek-filogic-bananapi_bpi-r3-squashfs-sysupgrade.itb (Para actualizar un sistema que ya ejecuta OpenWrt)
Podemos quemar la imagen en la MicroSD de esta forma:
dd if=/home/usuario/sd.img of=/dev/mmcblk0 bs=10M status=progress
La NAND de la RPI-R3 consta de 4 dispositivos:
- reserved
- ubi
- bl2
- fip
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.