Hola muchachos aprovechando que tengo un poco de tiempo libre les dejo aqui el procedimiento para que ustedes puedan compilar la imagen de OpenWrt desde sus maquinas las cual tiene las siguientes ventajas
- No depender del servidor de descarga oficial, ya que algunos commits que suben a la rama principal rompe a veces el procedimiento de construccion de la imagen y por ende no estan disponibles
- Pueden agregar los paquetes,servicios,opritmizaciones que ustedes deseen
- Pueden agregar parches que no estan en la rama principal y que contiene muchas mejoras ademas que no tienen que esperar a que algunos de los desarrolladores lo vayan agregando a la rama
- Optimizaciones en las herramientas de construccion que mejoran el rendimiento de los dispositivos (depende del objetivo (dispositivo)
- Ultimo bump del kernel de linux al dia. Entre muchas funcionalidades.
Para poder compilar la imagen necesitamos un entorno Linux puede ser cualquiera las imagenes que voy a mostrar van a ser sobre Debian que es el que utilizo.
Para empezar vamos a abrir el terminal
y ahora vamos a ejecutar lo siguiente para poder instalar los paquetes necesarios para compilar como necesitamos permisos de administrador escribimos la contrasena si hay
sudo apt update
y una vez hecho ejecutamos lo siguiente para instalar todos los paquetes necesarios (depende de cada distribucion Linux )
sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev
Escribimos la contrasena y procedera con la instalacion de los paquetes
una vez termina vamos a ubicarnos en la ruta que ustedes deseen para clonar el repositorio del codigo fuente de OpenWrt una vez ubicamos escribimos lo siguiente
git clone
https://git.openwrt.org/openwrt/openwrt.git -b master x86
Donde...
- git es el comando y clone es la opcion
- https://git.openwrt.org/openwrt/openwrt.git es donde esta alojado el codigo
- -b es la opcion para escoger una sola rama en este caso es master que es la rama de desarrollo y es donde llegan todos los nuevos parches y funcionalidades, pero hay otra ramas que son de las versiones salientes y estables de OpenWrt, esta es la opcion mas recomandada para aquellos que inician en la construccion de sus propias imagenes puede ser por ejermplo, master, openwrt-21.02 openwrt-19.07, openwrt-18.06 y lede-17.01.
- x86 es el nombre de la carpeta donde va a quedar alojado el entorno que clonamos
Una vez terminado de clonar, vamos a ir a la carpeta donde lo descargamos para ello solamente escribimos lo siguiente
cd <nombre de la carpeta>
Ahora procedemos a actualizar todas las fuentes donde OpenWrt almacena lo siguiente
Paquetes
Entorno grafico LuCi
Telephony
Routing
Para ello escribimos lo siguiente
./scripts/feeds update -a
Donde..
-a, aplica para todos los paquetes que se encuentran en su codigo fuente
Esperamos a que acutalice y cuando ya tenga todos las fuentes actualizadas procedemos a instalarlas en nuestra carpeta para poder escoger los paquetes que vamos a agregar a nuestra imagen para ellos ejecutamos lo siguiente
./scripts/feeds install -a -f
Donde...
-a, aplica para instalar todos los paquetes que se encuentran actualizados por el anterior comando
-f , es para forzar que instalen todos los paquetes, esta caracteristica es opcional y hay que proceeder con cuidado
Ahora que todos los paquetes y fuentes fueron instaladas ahora vamos a ir al menu de configuracion donde vamos a poder hacer lo siguiente
Agregar los paquetes que deseamos
Agregar nuevas caracteristicas para los objetivos y asi mejorar su tiempo de ejecucion como su espacio
para ello escribimos lo siguiente
make menuconfig
aparecera el siguiente entorno
Donde...
Target System va a ser la arquitectura en la cual se basa el dispositivo para crear su imagen
Subtarget, cuando existen categorias o mejoras en la arquitectura
Target Profile, es el nombre comercial del dispositvo
Aqui voy a realizarlo sobre un PC en la cual su arquitectura va a ser x86
una vez escogan la arquitectura y dispositivo ahora para seleccionar las opciones solamente tecleamos la letra Y para agregar, N para remover, y M para agregar un modulo, en la siguiente opcion presionamos la tecla Y, y en la parte izquierda aparecera un * que signifca que el paquete o la opcion ha sido agregada o seleccionada para compilarse
En este apartado vamos a buscar y seleccionar los siguiente y damos enter
Aqui vamos a agregar la siguiente optimizacion para que el toolchain la agregue a la imagen, aqui difiere dependiendo de la arquitectura y pueden aparecer mas lineas.
Cambiamos -0s por -03, damos enter y realizamos el cambio
ahora vamos a LuCi y agremamos su interfaz, esta opcion es obligatoria o solamente podemos ingresar por CLI
ahora con ESC regresamos y vamos a las aplicaciones que necesitemos y que tenga su interface grafica (LuCi), no todas las aplicaciones la tienen.
Aqui voy a hacer un ejemplo nada mas
Una vez seleccionados todos los paquetes procedemos a regresar al menu incial y vamos a teclear 2 veces ESC para guardas cambios y proceder con la compilacion
Continua en otro post