Crear una imagen personalizado de OpenWRT

IMPORTANTE: todo lo que explico a continuación funciona para cualquier router que soporte OpenWrt. Tan solo deberás elegir el archivo que corresponda al modelo de tu router. Los archivos que se usan aquí solo son validos para el ZBT WR8305RT. Asegúrate que usas los archivos correctos.

Voy a explicar como crear una imagen personalizado de OpenWRT para el modelo de router ZBT WR8305RT. Con ello conseguiremos que al hacer un reset de fábrica, se va a mantener la configuración, paquetes y drivers intactos. 


1º- Preparando Ubuntu.

Para comenzar deberemos tener Ubuntu preparado para compilar, así que instalaremos los siguientes paquetes:

sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget unzip python

Necesitaremos acceder al router por SFTP, así que también instalaremos el programa FileZilla.

sudo apt install filezilla

2º- Preparando el router


Para entrar al router con Filezilla instalamos el servidor SFTP.

Abrimos una terminal de Linux y entramos al router por SSH, en mi caso con ssh 192.168.4.1

Imagen 1


Una vez dentro ejecutamos el siguiente comando para actualizar la lista de paquetes:

opkg update

y ahora instalamos el servidor SFTP

opkg install openssh-sftp-server


3º- Descargando el código fuente.

Descargamos la última versión de la fuente OpenWrt del router ZBT WR8305RT (en este momento la 19.07.5)

https://downloads.openwrt.org/releases/19.07.5/targets/ramips/mt7620/

Nos encontraremos un montón de archivos *.bin que son imágenes ya compiladas para diversos router que comparten la arquitectura del ZBT WR8305RT, pero al pie de la página se encuentra el archivo comprimido que necesitamos. Donde dice "Supplementary Files" está la fuente para la arquitectura de todos los router de la lista.

Imagen 2

Descargamos la que dice "openwrt-imagebuilder-19.07.5-ramips-mt7620.Linux-x86_64.tar.xz"

Descomprimimos el archivo que hemos descargado y como resultado nos habrá creado un directorio con varias carpetas como la Imagen 3

Imagen 3

Dentro de la carpeta abrimos una terminal con el botón derecho y podemos ver la ayuda con el comando:

make help

Imagen 4

Con el siguiente comando veremos los paquetes que se instalarán por defecto mas los paquetes que se instalarán por cada modelo de router:

make info

Imagen 5

Mas abajo en la lista de "Available Profiles" aparece nuestro modelo de router que ademas incluirá dos paquetes más, kmod-usb2 y  kmod-usb-ohci

Imagen 6

Hasta ahora vamos bien, como podemos ver en la imagen anterior, el router está en lista, así pues, el código fuente que hemos descargado es el correcto.

4º- Creación de la imagen con drivers y paquetes personalizados.

Si solo vas a crear un firmware con las últimas actualizaciones, instalar unos cuantos paquetes y drivers, termina en este punto 4 y no hace falta que vayas al punto 5.

A modo de ejemplo voy añadir los paquetes de los tutoriales anteriores, como el driver de la Antena Melón, el servidor samba, el acceso a discos usb, el servicio DDNS, etc.

Para crear la imagen añadiendo los paquetes, usamos el siguiente comando:

make image PROFILE="modelo del router" PACKAGES="Lista de paquetes a instalar"

En "modelo del router" copia y pega el modelo de la lista anterior Imagen 6

Abre una terminal en la carpeta que contiene los directorios del firmware y ejecuta el siguiente comando:

make image PROFILE="zbt-wr8305rt" PACKAGES="luci kmod-rt2800-usb luci-i18n-base-es kmod-usb-core kmod-usb-uhci kmod-usb-ohci kmod-usb-storage block-mount kmod-fs-ext4 kmod-fs-vfat kmod-nls-cp437 luci-app-samba luci-app-ddns luci-i18n-ddns-es ddns-scripts_no-ip_com openssh-sftp-server"

El firmware generado y listo para actualizar lo encontrarás en el directorio bin/targets/ramips/mt7620/

Imagen 7

Hasta aquí sería suficiente para compilar un firmware totalmente funcional con los drivers y paquetes que deseemos.


5º- Creación de la imagen con drivers, paquetes y configuración personalizada.

Llegados a este punto, es de suponer que tenemos el router configurado a nuestras necesidades.

Voy a cargar los parámetros de la LAN, Wifi y firewall para que siempre, aunque se le haga un reset, tenga la misma configuración.

Para ello abrimos FileZilla y accedemos al router por SFTP, (recuerda haber realizado el punto 2 de este tutorial)

Servidor = 192.168.4.1
Nombre de usuario = root
Contraseña = la que hayas puesto
Puerto = 22

Se nos cargará la estructura de carpetas que tiene nuestro router, pero nos interesa descargar los archivos de configuración que se encuentran en etc/config. 
Esos archivos son firewall, network y wireless.

Imagen 8

Crearemos una carpeta llamada files en la carpeta que se creó al descomprimir el código fuente. Imagen 3

Imagen 9

Dentro de ella vamos a crear la misma estructura que tiene la carpeta etc/ de nuestro router y allí meteré los 3 archivos de configuración.

Imagen 10

El comando para crear la imagen es el mismo que el del punto 3 solo que deberemos añadir al final FILES=files/ para que cargue además de los drivers y paquetes los archivos de configuración que hay en files.

Abre una terminal en la carpeta que contiene los directorios del firmware y ejecuta el siguiente comando:

make image PROFILE="zbt-wr8305rt" PACKAGES="luci kmod-rt2800-usb luci-i18n-base-es kmod-usb-core kmod-usb-uhci kmod-usb-ohci kmod-usb-storage block-mount kmod-fs-ext4 kmod-fs-vfat kmod-nls-cp437 luci-app-samba luci-app-ddns luci-i18n-ddns-es ddns-scripts_no-ip_com openssh-sftp-server" FILES=files/


El firmware generado y listo para actualizar lo encontrarás en el directorio bin/targets/ramips/mt7620/

Y eso es todo, ya sabes como hacer una imagen personalizada de tu router, se la marca o el modelo que sea.

Comentarios

Entradas populares de este blog

TP-Link WR841ND repetidor WIFI

Instalar y Configurar aMule en Ubuntu

II. Vodafone Technicolor Tc7230 modo bridge.