MR3020 OpenWRT

mr3020

Proyecto para el aprovechamiento del router TP-Link MR3020 v1 con instalación de sistema OpenWRT. La idea es exprimir las funciones y servicios que ofrece el router gracias a la instalación de OpenWRT. Pensado inicialmente para utilizar como router de viaje o dispositivo de soporte portátil para redes, conexiones, internet, servicio web, cliente de descargas o VPN, entre otros. Supone un reto adicional las reducidas especificaciones de hardware de este modelo router.

Versión de OpenWRT inicial con extroot para usar un pendrive como almacenamiento externo:
OpenWRT 19.07 extroot ready build for the TP-Link MR3020 v1.x

Versión de OpenWRT tras instalar Luci:
OpenWrt 19.07-SNAPSHOT r11431-83b0e20711 / LuCI openwrt-19.07 branch git-22.264.46202-f25285a

Fuentes feeds para configurar como repositorios de paquetes tras instalar luci:

Objetivos principales y estado

  1. Uso de pendrive como extroot. (Conseguido)
  2. Creación propia e independiente de copias de seguridad binarias completas. (Pendiente de realizar)
  3. Gestor y servidor de Archivos interno. (Conseguido parcialmente con Tiny File Manager, pero es lento y no previsualiza archivos)
  4. Servidor web ligero uhttpd / nginx / php. (Conseguido)
  5. Repetidor WIFI de viaje. (Sin afectar al resto de servicios y funcionamiento, debe poder conectar a otros wifis y compartir internet. Conseguido con travelmate, pero pierde conexión a internet eventualmente)
  6. Acceso remoto de administración (Debe aceptar conexiones remotas en Luci y terminal. Pendiente de realizar)
  7. Debe usar servició DDNS con DuckDNS o servicio similar capaz de superar obstáculos como CGNat, Cortafuegos o limitaciones de enrutamiento y mapeo de red. (Pendiente de realizar)
  8. Servicio VPN gratuito. (El router debe ofrecer protección y seguridad al navegar por internet en redes de baja confianza. (Pendiente de realizar)
  9. Cliente de descargas. (Cliente de descargas con interfaz web. Valorando formato torrent, P2P, etc. Pendiente de realizar)

Desglose de procedimientos iniciales

Inicialmente se debe instalar el firmware OpenWRT 19.07 Tiny específico para este modelo de router, que no incluye interfaz web Luci, siendo una versión preparada para el aprovechamiento de almacenamiento con extroot mediante un pendrive conectado al puerto USB. El firmware no se puede flashear con su nombre original (openwrt-19.07-snapshot-ar71xx-tiny-tl-mr3020-v1-squashfs-factory.bin), debe ser renombrado como "tl-MR3020-webflash.bin" para que la interfaz web original del fabricante lo acepte. Dicho firmware se presenta con un manual breve para ejecutar el script extrooter de la terminal y activar el servicio extroot.

Referencia original

OpenWRT 19.07 extroot ready build for the TP-Link MR3020 v1.x

http://www.73connection.com/openwrt/targets/ar71xx/tiny/

Here you will find a extroot ready build of Openwrt 19.07 for the TL-MR3020 v1.x Easy to flash, Luci and ipv6 not included in order to fit the stock embedded nand memory size. Some updates and new packages will be released when available. Release available 19.0.7 r11431-83b0e20711

#Default lan IP: 192.168.1.1 #Default wifi SSID: OW-MR3020 #Default wifi key: sup3rMR3020
TIPS WINDOWS 11, to ssh use: ssh -v -oHostKeyAlgorithms=+ssh-rsa username@ipaddress

Wifi connect helper: /extrooter/0-wifi-client-connect.sh

Help to connect your wifi network, display available networks, input the target network name (without any "" or ''), then input the key, and you're connected!

-> cd /extrooter -> ./0-wifi-client-connect.sh

Extroot script: /extrooter/1-extroot.sh

Script that will:

  • ask you if you wish to save RAM by removing opkg temp files from it
  • display available usb partition(s)
  • ask you which partition to use as system overlay and if formatting is required
  • ask you if and which partition to use as system SWAP
  • reboot

-> cd /extrooter -> ./1-extroot.sh

Extra-step for Luci, after reboot, opkg update opkg install luci-ssl

Una vez confirmada la activación de extroot se puede ejecutar otro script complementario para conectar a redes wifi y poder descargar nuevos paquetes. En mi caso instalo la interfaz web Luci para conseguir un entorno visual de administración y se procede a la configuración básica de red y registro de nuevos feeds o repositorios para la descarga de paquetes. Esto concluye la configuración inicial y se procede a la segunda fase de procedimientos para asegurar el sistema y ampliar su funciones y servicios.

Con la configuración inicial completada se debe añadir una función de copias de seguridad, manuales o periódicas, para poder restablecer todo el sistema en caso de errores serios o fallos del sistema. Las copias de seguridad se plantean inicialmente como la creación de imágenes del sistema que generen copias del firmware completo en su estado actual que puedan ser flasheadas de forma independiente sin otras dependencias. Con el sistema de copias de seguridad resuelto pasamos a las funciones y servicios adicionales que amplíen las capacidades del sistema:

Problema php-cgi y dependencias resuelto con Claude AI:

Perfecto, confirma que no tienes ninguna versión de libstdc++ instalada. Ahora voy a buscar información sobre los paquetes disponibles para tu versión específica de OpenWrt.

Ejecuta este comando para ver todos los paquetes disponibles relacionados con libstdc++:

opkg update && opkg list | grep -i libstdc

Esto actualizará la lista de paquetes y buscará cualquier paquete relacionado con libstdc++ en los repositorios configurados para tu OpenWrt 19.07.

Comparte el resultado completo. Necesito ver qué opciones tenemos disponibles en los repositorios oficiales antes de considerar alternativas como descargar el paquete manualmente desde los archivos de OpenWrt.

Claude aún no tiene la capacidad de ejecutar el código que genera.

root@mr3020:~# opkg update && opkg list | grep -i libstdc Downloading https://archive.openwrt.org/releases/19.07.10/targets/ar71xx/tiny/packages/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_core Downloading https://archive.openwrt.org/releases/19.07.10/targets/ar71xx/tiny/packages/Packages.sig Signature check passed. Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/base/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_base Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/base/Packages.sig Signature check passed. Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/luci/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_luci Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/luci/Packages.sig Signature check passed. Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/packages/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_packages Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/packages/Packages.sig Signature check passed. Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/routing/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_routing Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/routing/Packages.sig Signature check passed. Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/telephony/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/openwrt_telephony Downloading https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/telephony/Packages.sig Signature check passed. Downloading https://archive.openwrt.org/releases/19.07.10/packages/mips_24kc/packages/Packages.gz Updated list of available packages in /usr/lib/opkg/lists/alternative Downloading https://archive.openwrt.org/releases/19.07.10/packages/mips_24kc/packages/Packages.sig Signature check passed. libstdcpp6 - 7.5.0-2 - GNU Standard C++ Library v3

¡Excelente! Encontramos el paquete. El libstdcpp6 está disponible en los repositorios con la versión 7.5.0-2. Esto es exactamente lo que necesitamos.

Ahora vamos a instalarlo. Ejecuta este comando:

opkg install libstdcpp6

Este comando instalará la librería libstdc++.so.6 que necesita php-cgi para funcionar correctamente.

Comparte el resultado de la instalación. Una vez que se instale correctamente, procederemos a probar si PHP funciona.

Claude aún no tiene la capacidad de ejecutar el código que genera.

root@mr3020:~# opkg install libstdcpp6 Installing libstdcpp6 (7.5.0-2) to root... Downloading https://archive.openwrt.org/releases/19.07.10/targets/ar71xx/tiny/packages/libstdcpp6_7.5.0-2_mips_24kc.ipk Configuring libstdcpp6. root@mr3020:~#

¡Perfecto! La instalación de libstdcpp6 se completó exitosamente. Ahora vamos a probar si PHP funciona correctamente.

 

Prompt de consulta IA

Tengo un router con openwrt y necesito ayuda. Primero presento la información básica y situación actual. Más abajo presento la ayuda requerida e instrucciones para ayudarme.

Información inicial e historial de cambios en el router:
  • Router modelo TP-Link TL-MR3020 v1 con ip local 192.168.1.200
  • Arquitectura Atheros AR9330 rev 1
  • Firmware OpenWRT 19.07 extroot ready build for the TP-Link MR3020 v1.x (Sin Luci)
  • Firmware tras instalar Luci: OpenWrt 19.07-SNAPSHOT r11431-83b0e20711 / LuCI openwrt-19.07 branch git-22.264.46202-f25285a.
  • Kernel Version 4.14.275
  • Pendrive conectado con extroot y 15 Gb de almacenamiento disponible.
  • Se ha activado una memoria SWAP de 128mg aprovechando extroot.
  • Se han optimizados los procesos php-fpm a "on demand" para mejorar rendimiento y liberar memoria.
  • Servidor uhttpd instalado y escuchando puerto 80 en la carpeta /www/
  • Se ha instalado interfaz web Luci que funciona con uhttpd en puerto 80.
  • Se ha instalado PHP 7.2
  • Se ha instalado Tiny File Manager en /www/archivos, servido por uhttpd en puerto 80.
  • Servidor Nginx instalado y escuchando en puerto 8080 para todas las webs alojadas en /www/webs/ o http://192.168.1.200:8080/
  • Bludit cms instalado en /www/webs/bludit
  • Se ha añadido una función Dual-AP para emitir dos redes wifi, una para actividad local y otra para actividad en viajes, hoteles, redes de terceros.
  • Se han borrado los directorios de los CMS pico, automad y htmly de interior de la carpeta /www/webs/ dejando solo Bludit.
  • Se han borrado Tiny File Manager por completo y se ha limpiado toda su configuración residual del sitema.
  • Lista de paquetes instalados:
    • opkg list-installed
    • base-files - 204.4-r11431-83b0e20711
    • block-mount - 2020-05-12-84269037-1
    • busybox - 1.30.1-6
    • cgi-io - 2022-08-10-901b0f04-21
    • dnsmasq - 2.80-16.3
    • dropbear - 2019.78-2
    • e2fsprogs - 1.44.5-2
    • firewall - 2019-11-22-8174814a-3
    • fstools - 2020-05-12-84269037-1
    • fwtool - 2
    • getrandom - 2019-06-16-4df34a4d-4
    • hostapd-common - 2019-08-08-ca8c2bd2-8
    • icu - 68.2-2
    • iptables - 1.8.3-1
    • iw - 5.0.1-1
    • iwinfo - 2019-10-16-07315b6f-1
    • jshn - 2020-05-25-66195aee-1
    • jsonfilter - 2018-02-04-c7e938d6-1
    • kernel - 4.14.275-1-4b9eb934b4d554ccc257cb6c71063e71
    • kmod-ath - 4.14.275+4.19.237-1-1
    • kmod-ath9k - 4.14.275+4.19.237-1-1
    • kmod-ath9k-common - 4.14.275+4.19.237-1-1
    • kmod-cfg80211 - 4.14.275+4.19.237-1-1
    • kmod-crypto-crc32c - 4.14.275-1
    • kmod-crypto-hash - 4.14.275-1
    • kmod-fs-ext4 - 4.14.275-1
    • kmod-gpio-button-hotplug - 4.14.275-3
    • kmod-ipt-conntrack - 4.14.275-1
    • kmod-ipt-core - 4.14.275-1
    • kmod-ipt-nat - 4.14.275-1
    • kmod-ipt-offload - 4.14.275-1
    • kmod-lib-crc-ccitt - 4.14.275-1
    • kmod-lib-crc16 - 4.14.275-1
    • kmod-mac80211 - 4.14.275+4.19.237-1-1
    • kmod-nf-conntrack - 4.14.275-1
    • kmod-nf-flow - 4.14.275-1
    • kmod-nf-ipt - 4.14.275-1
    • kmod-nf-nat - 4.14.275-1
    • kmod-nf-reject - 4.14.275-1
    • kmod-nls-base - 4.14.275-1
    • kmod-scsi-core - 4.14.275-1
    • kmod-usb-core - 4.14.275-1
    • kmod-usb-ehci - 4.14.275-1
    • kmod-usb-ledtrig-usbport - 4.14.275-1
    • kmod-usb-storage - 4.14.275-1
    • kmod-usb2 - 4.14.275-1
    • libblkid1 - 2.34-1
    • libblobmsg-json - 2020-05-25-66195aee-1
    • libc - 1.1.24-2
    • libcomerr0 - 1.44.5-2
    • libext2fs2 - 1.44.5-2
    • libfreetype - 2.10.0-1
    • libgcc1 - 7.5.0-2
    • libip4tc2 - 1.8.3-1
    • libiwinfo-lua - 2019-10-16-07315b6f-1
    • libiwinfo20181126 - 2019-10-16-07315b6f-1
    • libjpeg - 9c-2
    • libjson-c2 - 0.12.1-3.1
    • libjson-script - 2020-05-25-66195aee-1
    • liblua5.1.5 - 5.1.5-3
    • liblucihttp-lua - 2019-07-05-a34a17d5-1
    • liblucihttp0 - 2019-07-05-a34a17d5-1
    • libmbedtls12 - 2.16.12-1
    • libnl-tiny - 0.1-5
    • libopenssl1.1 - 1.1.1n-1
    • libpcre - 8.43-1
    • libpng - 1.6.37-3
    • libpthread - 1.1.24-2
    • librt - 1.1.24-2
    • libss2 - 1.44.5-2
    • libstdcpp6 - 7.5.0-2
    • libubox20191228 - 2020-05-25-66195aee-1
    • libubus-lua - 2022-02-21-b32a0e17-1
    • libubus20210603 - 2022-02-21-b32a0e17-1
    • libuci20130104 - 2019-09-01-415f9e48-4
    • libuclient20160123 - 2020-06-17-51e16ebf-1
    • libustream-mbedtls20150806 - 2020-03-13-40b563b1-1
    • libuuid1 - 2.34-1
    • libxml2 - 2.9.14-1
    • libxtables12 - 1.8.3-1
    • logd - 2019-06-16-4df34a4d-4
    • lua - 5.1.5-3
    • luci - git-22.264.46202-f25285a-1
    • luci-app-firewall - git-22.264.46202-f25285a-1
    • luci-app-opkg - git-22.264.46202-f25285a-1
    • luci-base - git-22.264.46202-f25285a-1
    • luci-lib-ip - git-22.264.46202-f25285a-1
    • luci-lib-jsonc - git-22.264.46202-f25285a-1
    • luci-lib-nixio - git-22.264.46202-f25285a-1
    • luci-mod-admin-full - git-22.264.46202-f25285a-1
    • luci-mod-network - git-22.264.46202-f25285a-1
    • luci-mod-status - git-22.264.46202-f25285a-1
    • luci-mod-system - git-22.264.46202-f25285a-1
    • luci-proto-ppp - git-22.264.46202-f25285a-1
    • luci-proto-relay - git-22.115.68448-712bc8e-1
    • luci-ssl - git-22.264.46202-f25285a-1
    • luci-theme-bootstrap - git-22.264.46202-f25285a-1
    • mtd - 24
    • netifd - 2021-01-09-753c351b-1
    • nginx - 1.17.7-3
    • openwrt-keyring - 2021-02-20-49283916-2
    • opkg - 2021-01-31-c5dccea9-1
    • php7 - 7.2.34-4
    • php7-cgi - 7.2.34-4
    • php7-fpm - 7.2.34-4
    • php7-mod-ctype - 7.2.34-4
    • php7-mod-dom - 7.2.34-4
    • php7-mod-fileinfo - 7.2.34-4
    • php7-mod-gd - 7.2.34-4
    • php7-mod-hash - 7.2.34-4
    • php7-mod-iconv - 7.2.34-4
    • php7-mod-intl - 7.2.34-4
    • php7-mod-json - 7.2.34-4
    • php7-mod-mbstring - 7.2.34-4
    • php7-mod-openssl - 7.2.34-4
    • php7-mod-session - 7.2.34-4
    • php7-mod-xml - 7.2.34-4
    • php7-mod-zip - 7.2.34-4
    • procd - 2020-03-07-09b9bd82-1
    • px5g-mbedtls - 9
    • relayd - 2020-04-25-f4d759be-1
    • rpcd - 2020-05-26-67c8a3fd-1
    • rpcd-mod-file - 2020-05-26-67c8a3fd-1
    • rpcd-mod-iwinfo - 2020-05-26-67c8a3fd-1
    • rpcd-mod-luci - 20201107
    • rpcd-mod-rrdns - 20170710
    • spawn-fcgi - 1.6.4-1
    • swconfig - 12
    • uboot-envtools - 2018.03-3.1
    • ubox - 2019-06-16-4df34a4d-4
    • ubus - 2022-02-21-b32a0e17-1
    • ubusd - 2022-02-21-b32a0e17-1
    • uci - 2019-09-01-415f9e48-4
    • uclient-fetch - 2020-06-17-51e16ebf-1
    • uhttpd - 2020-10-01-3abcc891-1
    • urandom-seed - 1.0-1
    • urngd - 2020-01-21-c7f7b6b6-1
    • usign - 2020-05-23-f1f65026-1
    • vsftpd - 3.0.3-3
    • wireless-regdb - 2021.08.28-1
    • wpad - 2019-08-08-ca8c2bd2-8
    • zlib - 1.2.11-4
    • zoneinfo-core - 2020c-1
    • zoneinfo-europe - 2020c-1

Esta lista podría no estar actualizada.

  • Feeds de repositorios configurados:
    • src/gz openwrt_core https://archive.openwrt.org/releases/19.07.10/targets/ar71xx/tiny/packages
    • src/gz openwrt_base https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/base
    • src/gz openwrt_luci https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/luci
    • src/gz openwrt_packages https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/packages
    • src/gz openwrt_routing https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/routing
    • src/gz openwrt_telephony https://downloads.openwrt.org/releases/19.07.10/packages/mips_24kc/telephony
    • src/gz alternative https://archive.openwrt.org/releases/19.07.10/packages/mips_24kc/packages
Ayuda requerida:

Texto aquí.

Indicaciones para ayudarme mejor en idioma Español:

Debes responder siempre con información real, sin fingir ni usar contenido falso o inventado, debes confirmar datos y verificar con antelación los recursos que me entregues. Si es necesario modificar configuración existente o crear nueva configuración siempre debes conocer la configuración existente antes. Si es necesario instalar nuevos paquetes o módulos, antes debes asegurarte que dichos paquetes o módulos no estén ya instalados. En general, se debe conocer obligatoriamente el estado y configuración del router y su sistema antes de iniciar nuevos procesos de manipulación o cambios en el sistema. Si facilitas URLs debes asegurar que funcionan y están actualizadas, en caso contrario, debes avisarlo. Es obligatorio que trabajes siempre de forma segura, recordando los pasos anteriores para proteger el funcionamiento del router y la estabilidad del sistema openwrt, poniendo especial atención en la pulcritud y limpieza de archivos y configuraciones residuales sean eliminados para que la manipulación del sistema no suponga un deterioro del mismo. Jamás utilizar comandos o URLs falsas. Y es muy importante que tus respuestas muestren los pasos a seguir de uno en uno, es obligatorio que esperes siempre mi respuesta al paso anterior antes de que presentes el paso siguiente. Trabajaremos principalmente con la terminal de comandos en OpenWRT. Tu me dirás que debo hacer y yo ejecutaré tus indicaciones en la terminal o en otros entornos de comunicación. Si es necesario editar un archivo, evita los editores vi o nano, en su lugar utiliza comandos EOF que permitan agilizar el flujo de trabajo. Ten en cuenta que podrías estar retomando la tarea de ayudarme que otra IA anterior dejó sin terminar, así que presta atención a las operaciones que se hayan podido realizar antes de tu intervención. Al final de cada una de tus respuestas añade instrucciones completas y actualizadas de la situación, especificaciones de router, del sistema Openwrt, paquetes instalados, objetivo, operaciones realizadas y siguiente paso pendiente, por si nuestras conexión se pierde y debo pedir a otra IA que siga ayudándome relevando tu tarea. Es obligatorio que respetes esta forma de ayudarme y generar resumen para otras IAs siempre. Recuerda ir paso a paso, comando a comando, sin presentar demasiado contenido de golpe y reduciendo el consumo de tus tokens cuando sea posible. Muy importante: Este router ya tiene un historial de manipulación y trabajo que se ha realizado para que otros servicios funcionen y no podemos editar archivos y cambiar configuraciones sin tener en cuenta el trabajo previo. Debemos respetar, cuidar y proteger el trabajo realizado que ya existe en el router y no cambiar nada a menos que sea necesario. Antes de editar o modificar un archivo o configuración se debe analizar el contenido de ese archivo y configuración, comprender su estado y respetarlo antes de modificarlo. Si existe conflicto primero se debe plantear y buscar una forma de resolver protegiendo siempre la integridad del sistema y su funcionamiento actual.

Prompt IA para creación de script de mantenimiento (CheckWRT).

Debes actuar como un experto y profesional en las materias relacionadas con la tarea que voy a pedirte. Tu objetivo es desarrollar un medio o aplicación para realizar el mantenimiento y optimización de un sistema Linux Openwrt, que llamaremos "CheckWRT". CheckWRT estará basado en comandos y scripts compatibles con OpenWRT, con las siguientes funciones y características ordenadas en pasos por preferencia:

  1. Realizar un estudio intensivo del sistema para reunir toda la información sobre especificaciones técnicas, hardware, software, firmare, paquetes, mods y complementos adicionales instalados necesaria que permita realizar los siguientes pasos con seguridad y precisión.
  2. Realizar un estudio intensivo sobre la configuración actual, específica y concreta del sistema y cada uno de sus componentes y servicios que junto con la información reunida en el paso 1, pero realizar los siguientes pasos con seguridad y precisión.
  3. Teniendo en cuenta las información recogida en los pasos 1 y 2, realizar una auditoría y análisis del sistema para valorar su estado.
  4. Buscar y localizar posibles problemas y optimizaciones recomendadas, respetando siempre conservar los servicios y aplicaciones que ya funcionan en el sistema.
  5. Crear y mostrar un listado con toda la información reunida y presentada en apartados: 1. Especificaciones técnicas de Hardware y Software. 2. Servicios y aplicaciones activas en el sistema. 3. Evaluación general del estado del sistema. 4. Desglose de problemas encontrados. 5. Desglose de optimizaciones recomendadas.
  6. Sistema de resolución de problemas encontrados y aplicación de optimizaciones recomendadas que se mostrará como opciones elegibles por el usuario junto a cada problema y optimización recomendada.

CheckWRT jamás se debe hacer ninguna modificación o cambio en el sistema para realizar los pasos presentados, ya que solo el usuario que interactúa con CheckWRT tendrá poder para aceptar o denegar el permiso a CheckWRT para solucionar los problemas encontrados o aplicar las optimizaciones recomendadas.

CheckWRT podría estar basado en un grupo de archivos alojados en una carpeta dentro del sistema que podría incluir archivos con el o los scripts de ejecución y archivos html o php que sirvan para generar una interfaz web para el usuario.

Debes responder siempre con información real, sin fingir ni usar contenido falso o inventado, debes confirmar datos y verificar con antelación los recursos que me entregues. Es obligatorio que trabajes siempre de forma segura para proteger el funcionamiento del router y la estabilidad del sistema openwrt, poniendo especial atención en la pulcritud y limpieza de archivos y configuraciones residuales sean eliminados para que la manipulación del sistema no suponga un deterioro del mismo. Jamás utilizar comandos o URLs falsas. Y es muy importante que tus respuestas muestren los pasos a seguir de uno en uno, es obligatorio que esperes siempre mi respuesta al paso anterior antes de que presentes el paso siguiente.

Primero valora mi idea sobre CheckWRT, investiga si ya existe algo parecido y sigamos preparando todo. En caso de iniciar el trabajo, mi intención es tener, como resultado, un grupo de archivos que puedas proporcionar para guardar en una carpeta y comprimir para compartir con otros usuarios o usar en mis distintos dispositivos con OpenWRT. Preferentemente poder descargarlos directamente de este chat.

Diario de manipulación

26/27 Junio 2025 <

Inicio el proyecto de habilitación avanzada del dispositivo me medio de sistema operativo alternativo al proporcionado por el fabricante, buscando la mejor distribución de OpenWRT para este modelo de router. Por su limitada memoria flash y RAM se hace imposible instalar paquetes adicionales para ampliar las posibilidades, principalmente buscando la función extroot que permita conectar un pendrive como espacio adicional para reducir las limitaciones de almacenamiento. Encuentro una versión dedicada para este modelo de router con la función extroot ya instalada y lista para configurar. La versión de OpenWRT elegida ha sido "OpenWRT 19.07 extroot ready build for the TP-Link MR3020 v1.x". Una vez instalado este firmware y se ejecutó un script incluido (extrooter), via terminal, para activar el servicio extroot y montar el pendrive conectado al puerto USB.

En los días siguientes inicié un proceso de personalización del sistema OpenWRT, ayudado y asistido principalmente por agentes de inteligencia artificial como ChatGPT, Claude, Gemini, Grok, Deepseek y Meta AI en su versión para WhatsApp. Aunque debo decir que estos dos últimos han sido prácticamente descartados por sus excesivo numero de errores, "olvidos", "despistes" y fallos en general. Claude y ChatGPT destacan por sus aciertos y buen rendimiento, Grok tiene gran capacidad de "razonamiento" pero también tiene problemas para seguir ciertas instrucciones y sus respuestas son, en muchas ocasiones, excesivas en el volumen de contenido.

El siguiente paso fue instalar el entorno gráfico Luci para tener una interfaz de administración visual via web. Intente desarrollar un sistema de copias de seguridad del sistema a nivel binario, que sirvan como imágenes completas del sistema que preserven su estado y puedan ser instaladas o flasheadas de forma independiente para restauración en caso de accidentes, problemas serios o corrupción del sistema. Sin embargo no encontré la forma de desarrollar una herramienta así y la tarea sigue pendiente. He instalado Tiny File Manager (TFM) aprovechando el servidor uhttpd disponible desde la instalación de Luci. TFM funciona como un gestor visual de archivos con acceso completo a todos los archivos y carpetas del sistema, sin embargo parece tener problemas en la previsualización de archivo que aun debo resolver.

El siguiente paso ha sido crear un servidor web ligero para páginas personales pero uhttpd era demasiado simple y limitado para este proyecto, así que uhttpd de momento se limita a servir Luci y TFM en el puerto 80. Para el servidor web de páginas personales he añadido php7 y Nginx. Con este planteamiento las webs html de texto plano funcionar de forma extraordinaria sin problemas de rendimiento, sin embargo las pruebas realizadas con el CMS Htmly generan numerosos problemas y fallos relacionados con configuraciones avanzadas de php, reglas, rutas de archivos y problemas que también se relacionan con Nginx, pero todo apunta a que se trata principalmente de limitaciones en el sistema openwrt y falta de optimización nativa en Htmly. Tengo que la esperanza de que otras CMS ligeros funcionen mejor con este sistema.

12 Junio 2025

Los días anteriores han sido un infierno intentando conseguir que Htmly funcione. Incluso con la valiosa ayuda de la IA y su increíble generación de código, especialmente Claude y ChatGPT, ha sido imposible conseguirlo. Todo apunta a que existen limitaciones serias en la combinación de php7, Nginx y htmly. El servidor web Apache podría solucionarlo pero es demasiado pesado para sustituirlo por Nginx, así que después de varios días de pruebas y problemas en bucle, mis asesores IA y yo nos rendimos con htmly y probaremos con otros gestores de contenido web ligeros.

He probado a pedir a la IA Gemini que genere una aplicación web con scripts de terminal a la que he llamado CheckWRT, pero las limitaciones de mi sistema en el router han hecho que Gemini se rinda tras varios intentos. Otras IAs parecen darme soluciones pero la ejecución parece compleja. CheckWRT se descarta de momento. Más abajo he publicado el prompt.

13 Junio 2025 Automad funciona!

He tenido que buscar en la releases de Automad una versión que funcione con mi php7.2 y encontré Automad 1.8.7. Tras algunos cambios en permisos y configuración de Nginx, he conseguido hacer funcionar Automad!! Esto si es un gran paso, si no fuera porque tras crear usuario y acceder al panel de administración de Automad, el router se ha quedado sin memoria y se ha reiniciado solo. Veamos si se puede arreglar.

He creado 128mg de memoria swap en el Extroot, pero ahorra visito la dirección de automad y me da error "502 Bad Gateway nginx/1.17.7". Esto parece una broma. Automad funcionaba antes de hacer la swap y ahora esto? Tendré que seguir otro día con esta broma.

15 Junio 2025 Automad estable!

En cada reinicio php-fpm no se carga, así que al visitar webs que necesitan este recursos siempre daba error 502, pero al iniciar php-fpm manualmente, webs como automad volvían, así que un retraso en tiempo de ejecución en la configuración de inicio de php-fpm de 50 a 95 ha solucionado el problema. Además se ha optimizado el uso de sus recursos php-fpm para dejarlos "bajo demanda" lo que, junto al uso de una swap de 128 mg, nos deja un sistema correcto para el funcionamiento de Automad de forma estable. Con un estado corregido y optimizado, he probado a instalar Bludit de nuevo y funciona sorprendentemente rápido! Automad quedará en revisión provisional, Bludit será el CMS elegido.

16 Junio 2025 Automad estable!

Tiny File Manager tenía un funcionamiento muy lento si era servido por uhttpd, así que ahora Nginx se encarga de servirlo con un rendimiento espectacular, muy rápido. Pero aun debo resolver el problema de previsualización de archivos, además tfm con nginx no es capaz de mostrar el contenido de la carpeta /luis/ por un problema de propietarios y grupo. Imposible que nginx con usuario www pueda tener acceso y control completo de todos los archivos del sistema. Debo sacrificar algo.

17 Junio 2025 Router inaccesible tras cambio de usuario y grupo de la carpeta /luis

Con intención de resolver los problemas pendientes de Tiny File Manager, pido a la IA Gemini que me entregue un comando de terminal para cambiar usuario y grupo de la carpeta personal /luis y todo su contenido, ya que esta carpeta se mostraba en tfm, pero no su contenido. Esta operación, en un openwrt con extroot podía ser peligrosa pero yo no lo sabía y la IA no me avisó, a pesar de haberle perdido en varias ocasiones que fuera prudente y sobre todo protegiera la estabilidad del sistema. Al ejecutar el comando, los archivos dentro de /luis/ ya se mostraban en TFM pero al intentar abrirlo parece que hubo un colapso en la memoria del router u otro tipo de fallo que provocó un reinicio. Tras el reinicio el router vuelve a encender y parece tener un comportamiento normal en sus leds, pero está inaccesible. No responde por terminal ni via web. Ahora vamos a ver si todos mis días de trabajo se han perdido o puedo recuperar algo.

Después de pasar todo el día buscando solución con ayuda de varias IAs parece que el problema era el adaptador que uso para la microsd que usaba como extroot y que hasta ahora había llamado pendrive para abreviar. Tal vez en el reinicio del accidente algo pasó en ese adaptador, pero al usar otro adaptador (lector de tarjetas usb) y conectarlo al mr3020, vuelve a iniciar todo con normalidad en el estado correcto que lo dejé antes del accidente. Estéticamente no es una maravilla, veré si puedo volver a usar el adaptador original si que dé fallos, pero ahora lo primero es asegurar el sistema, hacer copias de seguridad y buscar, si existen, formas de apagar o reiniciar el router si que haya peligro de nuevos accidentes.

18 Junio 2025 Configuración multi-perfil de red.

Se ha iniciado el planteamiento y configuración para que el mr3020 soporte varios perfiles de funcionamiento de red según las circunstancias. Por ejemplo trabajando desde casa o como router de viaje, funcionando como repetidor de redes wifi. Se espera concluir todo el procedimiento al día siguiente.

19 Junio 2025 Conseguido, ahora es también, un router de viaje.

Después de gastar todo el día discutiendo con una IA torpe y despistada (Gemini 2.5 Flash) vuelvo a recurrir al valioso Claude para solucionar mi objetivo de hoy en la hoja de ruta: convertir mi mr3020 en un router de viaje capaz de conectarse a cualquier wifi sin perder la configuración de red para funcionar en local. Y sí, Claude cumple con diferencia, consiguiendo planificar y configurar la red del mr3020 para que funcione como deseo tanto en local como en viajes o redes ajenas. Ahora el mr3020 emite 2 señales wifi, una para trabajo local llamada "mr3020" y otra para actividad en viajes o fuera de casa "mr3020viaje" En ambas redes wifi el mr3020 es capaz de compartir la conexión a internet de cualquier otra señal wifi que esté repitiendo.

23 Junio 2025 Portal cautivo descartado.

He tenido un par de sesiones para estimar la viabilidad de montar un portal cautivo en el mr3020, intentando localizar un paquete de nodogsplash compatible, o aplicaciones similares, pero no ha habido suerte. La versión de openwrt personalizada que estoy usando, junto a la versión de kernel, hacen que la tarea sea prácticamente imposible, descartando paquetes que podrían funcionar pero no ofrecen seguridad. Otras opciones más complejas, aunque viables, no encajan en el plan de desarrollo sencillo. Así que, de momento, descartamos esta tarea.

2 Agosto 2025

He intentado instalar ttyd para manejar la terminal desde Luci pero parece que da problemas y la desinstalado junto con las dependencias que instaló. También he borrado las carpetas de pico cms, htmly cms y automad cms que estaban dentro de /www/webs/ y he dejado solo el cms bludit. He borrado la configuración residual de automad que quedaba en nginx.conf. Ahora quiero resolver el tema de las señales wifi. He conocido el servicio travelmate y lo he instalado para que gestioné mucho mejor las redes wifi en viajes o fuera de casa. Parece funcionar genial.

3 Agosto 2025

Ayer pude ver que el mr3020 que tras instalar Travelmate no emitía sus señales wifi si no tenía el cable de red conectado o si no tenía una conexión a internet por cable. Retocando un poco la configuración parece que se ha solucionado. También he hecho algo de limpieza eliminando Tiny File Manager de todo el sistema porque tenías dos copias, servidas por uhttpd y nginx, que no terminaban de darme buen rollo y hacían cosas raras. También he borrado "de forma seegura" el contenido de la carpeta /luis que generó aquel fallo serio borrando desde tfm. Ahora parece que mi mr3020 está bien limpio y bien configurado para funcionar como router de viaje con travelmate. Además su servidor nginx con php sigue esperando fiesta.

Del 4 al 7 de Agosto 2025

Intentando crear una nueva red wifi para ofrecer internet gratis a invitados, algo salió mal y dejó el sistema de red con fallos en la gestión DHCP que impedía cualquier conexión al mr3020. La solución, que he tardado 3 días en encontrar, ha sido editar los archivos de configuración de red de extroot, conectando el pendrive a un pc y eliminar toda la basura problemática para dejar el mr3020 como estaba el pasado 3 de Agosto. Al conectar el pendrive extroot de nuevo al router todo funciona perfecto de nuevo.

error: PROTECTED CONTENT - CONTENIDO PROTEGIDO