Desarrollo
Código Fuente
El código fuente se encuentra almacenado en un árbol de git que contiene todas las ramas y lanzamientos.
Todos los repositorios se pueden consultar a través de
GitHub.
La mayor parte del desarrollo se concentra en el repositorio de lime-packages el cual puede ser consultado en
GitHub o descargardo usando git:
git clone https://github.com/libremesh/lime-packages.git cd lime-packages
Compilando el código fuente de LibreMesh
Este procedimiento ha sido probado en GNU/Linux, en otros sistemas podria requerir algunas modificaciones o se puede ejecutar en una maquina virtual de Linux.
Generalmente la primera compilación puede tomar algunas horas y requiere al menos 10GB de espacio disponbile en disco.
Antes de iniciar a compilar OpenWrt necesitas instalar algunos paquetes en tu sistema.
Si no estas seguro(a) sobre si tu sistema tiene las dependencias ya instaladas, puedes continuar con la compilación (ver más abajo) y si falla,
verifica los mensajes de error.
En un sistema Ubuntu, el siguiente comando instalará las dependencias minimas de compilación:
sudo apt update sudo apt install --no-install-recommends git ca-certificates subversion wget make gcc g++ libncurses5-dev gawk unzip file patch python3-distutils python3-minimal python2-minimal libpython2-stdlib
Para otras distribuciones de Linux la lista de paquetes podría ser ligeramente direferente, revisa la
página de instalación del sistema de compilación de OpenWrt.
Ahora necesitas obtener el código fuente de OpenWrt.
Asegurate de clonar (git clone) el código fuente como usuario normal (por ejemplo: no usar root): la compilación será rechazada si se ejecuta
siendo usuario administrador root.
LibreMesh se puede compilar sobre varias versiones de OpenWrt. Damos soporte oficialmente a la compilación con la versión anterior estable de OpenWrt (18.06.8) o
la versión estable de OpenWrt (19.07.4)
Para compilar LibreMesh sobre la versión anterior estable de OpenWrt:
git clone -b v18.06.8 --single-branch https://git.openwrt.org/openwrt/openwrt.git
De manera alternativa, para compilar LibreMesh sobre la versión Estable de OpenWrt:
git clone -b openwrt-19.07 --single-branch https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
Si necesitas incluir un archivo en la imagen compilada, por ejemplo un archivo de configuración personalizado, crea aqui un directorio |
cp feeds.conf.default feeds.conf
cat << EOF >> feeds.conf src-git libremesh https://github.com/libremesh/lime-packages.git;master src-git profiles https://github.com/libremesh/network-profiles.git EOF
Si quieres compilar la version estable de libremesh reemplaza master
por 2020.1
al final de la línea del feed de libremesh para especificar el branch 2020.1
.
scripts/feeds update -a scripts/feeds install -a
make menuconfig
Mirar los target (por ejemplo: ATH79), subtarget (por ejemplo: generic) y profile (por ejemplo: tl-wdr3600-v1)
de tu router en la tabla de dispositivos OpenWrt.
Por lo tanto seleccionar Target System, Subtarget y Target Profile .
De-seleccionar paquetes problematicos:
-
Base system → dnsmasq
-
Network → odhcpd-ipv6only
Opcional, de-seleccionar paquetes no usados:
-
Network → ppp
Opcional, de-seleccionar ubicaciones de feeds erróneas:
-
Image configuration → Separate feed repositories → Habilitar feed libremesh
-
Image configuration → Separate feed repositories → Habilitar feed profiles
Seleccionar (Presiona la tecla espacio hasta que un asterisco aparezca, así como
<>
) paquetes LibreMesh:
-
LiMe → lime-system (Sistema de archivos de LibreMesh )
-
LibreMesh → lime-proto-babeld (Soporte del protocolo babeld de LiMe)
-
LibreMesh → lime-proto-batadv (Soporte del protocolo batman-adv de LiMe)
-
LiMe → lime-proto-anygw (Soporte del protocolo anygw de LiMe)
-
LiMe → lime-hwd-openwrt-wan (Respetar la interfaz WAN de OpenWrt por defecto )
-
LiMe → shared-state-babeld_hosts (Modulo babeld-hosts para estado compartido)
-
LiMe → shared-state-bat_hosts (Modulo bat-hosts para estado compartido)
-
LiMe → shared-state-nodes_and_links (modulo nodes_and_links para estado compartido)
-
LiMe → lime-app (LimeApp)
-
LiMe → Offline Documentation → lime-docs-minimal (Documentación mínima de LibreMesh)
Se recomiendan algunos paquetes más, pero no son obligatorios para el funcionamiento de una Red LibreMesh. Considere evitar seleccionar los siguientes
paquetes solo si la imagen creada es muy grande y no soporta la memoria del router.
-
LiMe → check-date-http (Mantenga la fecha local bajo NTP demasiado lejana)
-
LiMe → Offline Documentation → lime-docs (Documentación en ingles sobre LibreMesh)
-
LiMe → lime-hwd-ground-routing (Administrar VLANs 802.1q para enrutamiento cableado)
-
LiMe → lime-debug (utilidades para depurar libremesh)
Además y opcionalmente, https para la interfaz web puede ser habilitar seleccionando ( tenga en cuenta que la interfaz web se mostrará como no
segura):
-
Libraries → libustream-wolfssl
-
Utilities → Encryption → px5g-standalone
Finalmente, también las conexiones mesh 802.11s pueden protegerse con contraseña, esto requerirá una configuración específica y este paquete
para ser seleccionado:
-
Network → wpad-mesh-wolfssl
y este para ser de-seleccionado:
-
Network → wpad-basic
Para tener paquetes adicionales, la forma más sencilla es seleccionarlos en menuconfig. Posteriormente se podrán instalar más paquetes por medio de |
Guardar y salir.
make -j$(nproc)
Si todo va bien, deberia de encontrar los binarios producidos dentro del directorio bin/.
Envío de Parches
Aceptamos solicitudes pull a través de GitHub. Pero los parches los parches también se pueden enviar a través de la
lista de correos lime-dev.
Presencia en la Web
Cualquier cambio hecho al repositorio de la web será reflejado en nuestro sitio web libremesh.org
.
Para generar esta página localmente:
git clone https://github.com/libremesh/libremesh.github.io.git cd libremesh.github.io && bundle install bundle exec jekyll serve
Para más detalles, revisar el README en Github.
Si deseas contribuir con la documentación, envía parches a nuestra lista de correos o abre una solicitud de pull en GitHub.
Una forma facil de editar y solicitar un pull de un archivo es haciendo click en el botón "Editar esta página" en la parte superior derecha de la página web.
Por favor, usa la Sintaxis de AsciiDoc para contribuciones de la página web.