El otro día decidí regresar al mundillo de los firmwares alternativos para sistemas «embedded», como routers y similares,así que compilé una version actualizada de OpenWRT para actualizar mi ARV7519RW22(aka Livebox 2.1) y decidí documentarlo, así que manos a la obra:

Lo primero es actualizar nuestro sistema e instalar las dependencias necesarias para poder compilar:

pacman -S –needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib mercurial make cdrkit ncurses openssl patch perl-extutils-makemaker rsync sdcc unzip wget gettext libxslt boost libusb bin86 sharutils b43-fwcutter findutils

Lo siguiente es descargarse el código fuente desde el repositorio de OpenWRT, en mi caso yo he creado una carpeta OpenWRT en mi directorio de usuario:
Creamos la carpeta:

mkdir OpenWRT

Entramos a la carpeta que hemos creado previamente:

cd OpenWRT

Este comando me guardará el código fuente en la carpeta Trunk, pero puedes cambiar el nombre si quieres:

git clone https://git.openwrt.org/openwrt/openwrt.git Trunk

El siguiente paso es actualizar e instalar los repositorios de los paquetes, para ello entramos en la carpeta Trunk y ejecutamos:

./scripts/feeds update -a

E instalamos las actualizaciones:

./scripts/feeds install -a

Seguimos verificando que no falte ninguna dependencia o paquete:

make prereq

Se nos abrirá una interfaz en consola para seleccionar la arquitectura y los paquetes:

Una vez seleccionada la arquitectura para el Livebox,quedaría así:

Como es una compialción básica, solo he seleccionado la interfaz LuCI, que está en el menú LuCI–>collection–>luci(La primera opción)
Una vez hecho esto, le damos a salir, nos preguntará si queremos guardar los cambios,aceptamos y estamos listos para compilar:

make -j 5 V=cs

El número 5 representa los núcleos de tu ordenador más 1, puedes variar, pero mi recomendación es esa, los nućleos de tu ordenador+1.
Esperamos y comenzará a bajarse el código fuente de los paquetes y generar la imagen que posteriormente «flashearemos» en nuestro dispositivo, pero eso será en próximas entradas.