Seguridad Wireless - Wifi

Equipos y materiales => Puntos de acceso, routers, switchs y bridges => Openwrt & LEDE => Mensaje iniciado por: 500L en 09-04-2015, 21:05 (Jueves)

Título: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: 500L en 09-04-2015, 21:05 (Jueves)
Hola a todos!
Comparto esta información para aquellos que no quieran liarse mucho en compilar desde el fuente el firmware para su router ya soportado.
Compilando desde el fuente se tarda mucho más, y aunque hay un gran tutorial en este foro, para los que vamos cortos de tiempo y necesitamos actualizar rápidamente, creo que este es el mejor método.

OpenWRT tiene una herramienta llamada Image Builder que sirve para modificar el firmware (generic) añadiendo los paquetes necesarios (que ya tenemos instalados en otras versiones) para hacer un sysupgrade de nuestro router sin perderlos o bien para instalar el firmware desde cero.

Este tutorial está pensado para mi router (archer C5) pero sirve también para otros routers, teniendo en cuenta la versión de Image Builder a descargar (en este caso ar71xx) y la selección del PROFILE al crear la imagen. Una correcta selección el perfil de nuestro router, meterá los paquetes base necesarios para que reconozca nuestro hardware.

La información antes de usar el Image Builder la he sacado de la wiki de OpenWRT. Debido a que en la wiki habla de Debian/Ubuntu en la instalación inicial de los paquetes para compilar la imagen, y soy más de RH, de CentOS y Fedora, hay que hacer algunos pequeños cambios en la instalación inicial de las dependencias.
OJO! Es imprescindible tener un sistema x64, no sirven versiones de 32bit (x86).

Empecemos centrando toda la información en la rama TRUNK (aka Chaos Calmer). Pero se puede usar para BB igualmente.
Antes de poder compilar nada con el Image Builder, tenemos que instalar algunos paquetes en nuestro CentOS. En mi caso, he usado las versiones 6.6 y 7 de CentOS, pero el tutorial sirve igual para versiones anteriores, RH o Fedora.

Instalación de paquetes en CentOS:

Código: [Seleccionar]
yum install gawk git gettext -y
yum groupinstall "Development Tools" –y

Todo dependerá de qué instalación de CentOS tengáis. En mi caso, siempre instalo la “minimal” y requiere de descargar muchos más MB. Estamos hablando de descargar unos 100MB aproximadamente….

Cuando ya tengamos lo básico instalado, procedemos a descargar el Image Builder. Podemos crear un directorio donde queramos. En mi caso usaré /tmp para realizar todas las operaciones.

Descarga y descompresión del archivo Image Builder para CC (son unos 425MB para descargar):

Código: [Seleccionar]
cd /tmp
wget https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-ImageBuilder-ar71xx-generic.Linux-x86_64.tar.bz2
tar -xvjf OpenWrt-ImageBuilder-ar71xx-generic.Linux-x86_64.tar.bz2

Entramos en el directorio que nos ha creado y configuramos los repositorios de paquetes oficiales para la rama TRUNK Chaos Calmer (repositories.conf):

Código: [Seleccionar]
cd OpenWrt-ImageBuilder-ar71xx-generic.Linux-x86_64
vi repositories.conf

El repositories.conf debe quedar así:

Código: [Seleccionar]
## Place your custom repositories here, they must match the architecture and version.
# src/gz chaos_calmer http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages
# src custom file:///usr/src/openwrt/bin/ar71xx/packages
src/gz chaos_calmer_base http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/base
src/gz chaos_calmer_luci http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/luci
src/gz chaos_calmer_management http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/management
src/gz chaos_calmer_packages http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages
src/gz chaos_calmer_routing http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/routing
src/gz chaos_calmer_telephony http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/telephony
## This is the local package repository, do not remove!
src imagebuilder file:packages

Para el Archer C5, aunque se puede usar el perfil del ARCHERC7, he preferido crear las líneas yo mismo para llamar al perfil directamente por ARCHERC5 y asegurarme que todo vaya bien.

Así, que editamos el archivo tp-link.mk en profiles:

Código: [Seleccionar]
vi target/linux/ar71xx/generic/profiles/tp-link.mk
Donde termina la definición del perfil del ARCHERC7, añadimos lo siguiente:

Código: [Seleccionar]
define Profile/ARCHERC5
        NAME:=TP-LINK Archer C5
        PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev kmod-ath10k
endef

define Profile/ARCHERC5/Description
        Package set optimized for the TP-LINK Archer C5.
endef
$(eval $(call Profile,ARCHERC5))

Al seleccionar el perfil Archer C5, el ya incluirá los paquetes mencionados al generar la imagen, y no hace falta ponerlos. Aun así, yo los incluiré en la build, por si las moscas.

Ahora, ya podemos generar la imagen para nuestro ARCHERC5 ejecutando el make image. Podemos incluir todos los paquetes que queramos, y en el momento de generar la imagen, las dependencias de estos se bajarán y se incluirán en la imagen también. Pesea ello, como veis, incluyo los paquetes base y algunos como el uci por si las moscas…
En mi caso, incluyo los paquetes necesarios para movistar fibra e imagenio, servidor de archivos, ddns, upnp, Openconnect VPN, USB storage, y luci....

Para generar el firmware, ejecutamos lo siguiente (todo en una línea):

Código: [Seleccionar]
make image PROFILE=ARCHERC5 PACKAGES="kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev kmod-ath10k kmod-fs-ext4
kmod-fs-ntfs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-usb-storage block-mount
uci lua bird4 kmod-bridge kmod-ipt-nathelper-rtsp mcproxy kmod-tun luci luci-lib-ip luci-lib-nixio
luci-mod-admin-full luci-proto-ppp luci-theme-bootstrap luci-app-firewall luci-app-samba luci-app-ddns
luci-app-upnp luci-app-ocserv"

Esperamos que termine. No tarda mucho el proceso. Hay que observar si nos da algún error, pero si seguís mis pasos no debería daros ninguno.
Cuando termine la compilación, tendremos un directorio llamado bin y dentro de éste, otro llamado ar71xx. Ahí están nuestros archivos para flashear el router.

Código: [Seleccionar]
cd bin/ar71xx
ls -l

Los archivos que nos interesan son los siguientes:

md5sums (para comprobar que los archivos sean los correctos después de subirlos a nuestro router). No flashear nada sin antes comprobar los archivos! Comparar el valor que os da el router con el del md5sums!

openwrt-ar71xx-generic-archer-c5-squashfs-factory.bin

openwrt-ar71xx-generic-archer-c5-squashfs-sysupgrade.bin

El factory lo usaremos si queremos instalar el firmware borrando toda la configuración del router o como primer flasheo, o también si se viene de BB u otra rama.
El sysupgrade lo podemos usar (sin perder la configuración actual) en caso de estar ya en la rama TRUNK CC. Recordar que si no se incluye un paquete que ya tenéis instalado en la generación de la imagen, lo tendréis que volver a instalar (en caso de sysupgrade).

Para actualizar rápido y sencillo el router, podemos ejecutar lo siguiente:

Código: [Seleccionar]
sysupgrade -v /tmp/openwrt-ar71xx-generic-archer-c5-squashfs-sysupgrade.bin
Ya esto final de como instalar, os lo dejo a cada uno que escoja el mejor método. Personalmente, viniendo de la misma build como venía hoy, pues el sysupgrade no da problemas.
Aconsejo usar el archivo factory siempre que se venga de otro firm o versiones anteriores.

Y así es de rápido y sencillo mantener nuestro router actualizado a la última  ;)

Espero que os sea útil.
Para los que tengáis movistar con imagenio, después de instalar la Factory, solo os queda ejecutar el script de noltari (movistar.sh), que funciona bien con esta build https://foro.seguridadwireless.net/openwrt/%28tutorial%29-movistar-ftth-con-openwrt/


Editado por Tki2000 porque descuadraba mucho el foro.
Título: Re: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: Tki2000 en 10-04-2015, 08:16 (Viernes)
Gracias por el aporte.
Seguro que le viene bien a mucha gente.  >:(
Título: Re: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: jar229 en 10-04-2015, 08:45 (Viernes)
Muy buen tuto, gracias por compartirlo  >:( >:(

Le pongo 'chincheta' unas semanitas, y lo añado al [Índice] Hilos relevantes de OpenWrt (https://foro.seguridadwireless.net/openwrt/(indice)-hilos-relevantes-de-openwrt/)
Título: Re: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: 500L en 10-04-2015, 11:31 (Viernes)
Gracias! Espero que sirva como guía :)
Título: Re: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: Joseba30 en 03-06-2015, 23:03 (Miércoles)
Unas puntualizaciones:

El paquete "imagebuilder" que sugieres, la version trunk, se genera cada dia automaticamente, y el archivo comprimido bz2 pesa unos seiscientos megas por que lleva incluido los paquetes ipk ya metidos, por lo tanto al dia siguiente se contruira automaticamente uno nuevo que incluira los pequeños cambios del kernel o cosas asi, por lo tanto al tener ya los paquetes y al cambiar a diario mi personal opinión es que si se usa trunk no incluir los repositorios externos, quedando el repositories.conf
Código: [Seleccionar]
src imagebuilder file:packagessin mas. Si no en pocos dias falla mas que una escopeta de feria. Si se usa cualquier versión mas estabilizada, un release candidate, ya el paquete de bajada es de apenas cien megas y opino que en ese caso si se debe usar los repositorios externos.

Cuando empiezas a actualizar relativamente a menudo  si guardas configuraciones te evitas volver a poner la misma puñetera clave para el wifi, via luci  vas a "grabar firmware copia de seguridad" y el archivo lo desempaquetas en files o bien bajas directamente los tres o cuatro archivos desde el router (asumiento que estas en el directorio del imagebuilder)
Código: [Seleccionar]
mkdir -p files/etc/config
scp root@192.168.1.1:/etc/config/network files/etc/config/

Y añades
Código: [Seleccionar]
make image  FILES=files/ el_resto_de_la_parrafada_muy_gorda
De forma que despues de grabar te queda configuradito que es una gozada.

Añadir que en el shell se puede añadir el chirimbolo "\" para romper lineas largas

Código: [Seleccionar]
make image PROFILE=ARCHERC5 PACKAGES="kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev \ (le doy a enter y sigo)
 kmod-ath10k kmod-fs-ext4 kmod-fs-ntfs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
kmod-usb-storage block-mount uci lua bird4 kmod-bridge kmod-ipt-nathelper-rtsp mcproxy \
kmod-tun luci luci-lib-ip luci-lib-nixio

lo que facilita poner toda la parrafada bien.

Sirvan estas puntualizaciones como el pulido final de un buen tuto, no como critica.
Título: Re: [Tutorial] OpenWRT Image Builder para Archer C5 y otros con CentOS
Publicado por: chuzonet en 05-07-2015, 18:31 (Domingo)
Gracias por el tuto compi.

Saludos