Fecha de actualización: Mayo 2026
Compilar aMule desde GitHub no solo sirve para tener nuevas funciones, sino para asegurar que el programa sea totalmente compatible con hardware y software moderno. En esta guía usaremos el sistema de compilación oficial del proyecto: CMake, que sustituye al antiguo autotools.
🎯 Objetivo: Obtener
amuled(demonio),amulegui(interfaz remota),amulecmd(consola) yamuleweb(interfaz web) funcionando en Raspberry Pi 5 con Debian 13 / Raspberry Pi OS.
📋 Tabla de versiones y ramas
| Tipo | Qué es | ¿Cuándo elegirla? |
|---|---|---|
| Master (rama principal) | El tronco principal, con los últimos parches | ✅ Nuestra elección. Es la más compatible con sistemas modernos. |
| Tags (etiquetas) | Versiones congeladas (ej. v2.3.3) | Solo si usas un sistema operativo muy antiguo. |
| Branches de desarrollo | Ramas experimentales | Solo para desarrolladores. |
🖥️ Configuración previa: Wayland vs X11
La Raspberry Pi 5 con Debian 13 usa Wayland por defecto. Sin embargo, aMule funciona mejor con X11.
Para saber si estás utilizando Wayland o X11 (Xorg) en tu sistema Linux, el método más rápido y universal es consultarlo en tu terminal.
echo $XDG_SESSION_TYPE
Si la respuesta es wayland, estás usando Wayland.
Si la respuesta es x11 (o xorg), estás usando el sistema X11
Para cambiarlo:
sudo raspi-config
- Ve a Advanced Options → Wayland
- Selecciona X11
- Reinicia
🧹 1. Limpieza de instalaciones previas
Si no tenías amule instalado, pasa al punto 2.
Si ya tenías aMule instalado de los repositorios o de una compilación anterior, ejecuta los siguientes comandos:
sudo systemctl stop amule.service 2>/dev/null
sudo apt purge amule amule-daemon amule-utils-gui amule-utils amule-common -y
sudo apt autoremove --purge -y
📦 2. Instalación de dependencias
sudo apt update
sudo apt install -y build-essential cmake git \
libboost-all-dev libwxgtk3.2-dev libcryptsetup-dev \
libcurl4-openssl-dev libgd-dev libgeoip-dev \
libupnp-dev libcrypto++-dev libreadline-dev \
libglib2.0-dev pkg-config gettext zlib1g-dev
🔽 3. Obtención del código (rama master)
cd ~
git clone https://github.com/amule-project/amule.git
cd amule
git checkout master
⚙️ 4. Configuración de la compilación con CMake
Creamos un directorio separado para compilar (buena práctica):
mkdir -p build
cd build
Ahora configuramos la compilación optimizada para Raspberry Pi 5 (Cortex-A76):
cmake .. \
-DCMAKE_CXX_FLAGS="-O3 -march=armv8.2-a+crypto -mtune=cortex-a76 -pipe" \
-DBUILD_DAEMON=ON \
-DBUILD_REMOTEGUI=ON \
-DBUILD_AMULECMD=ON \
-DBUILD_WEBSERVER=ON \
-DBUILD_MONOLITHIC=OFF \
-DENABLE_MMAP=ON \
-DENABLE_UPNP=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local
📝 Explicación de las opciones:
| Opción | Efecto |
|---|---|
-DCMAKE_CXX_FLAGS="..." | Optimizaciones para el procesador de la Pi 5 |
-DBUILD_DAEMON=ON | Compila amuled (demonio) |
-DBUILD_REMOTEGUI=ON | Compila amulegui (interfaz remota) |
-DBUILD_AMULECMD=ON | Compila amulecmd (consola) |
-DBUILD_WEBSERVER=ON | Compila amuleweb (interfaz web) |
-DBUILD_MONOLITHIC=OFF | Separa los componentes (necesario para el demonio) |
-DENABLE_MMAP=ON | Mejora el rendimiento de memoria |
-DENABLE_UPNP=ON | Activa UPnP para abrir puertos automáticamente |
🔨 5. Compilación e instalación
# Comienza la compilación con este comando
make -j$(nproc)
# Instalamos con la siguiente instruccion
sudo make install
# Actualiza los enlaces y la caché de las librerías compartidas.
sudo ldconfig
⏱️ La compilación tarda unos minutos.
-j$(nproc)usa los 4 núcleos de la Raspberry Pi 5.
⚙️ 6. Configuración del demonio
A. Primer arranque (crea la carpeta .aMule)
/usr/local/bin/amuled
(Se cerrará solo. Es normal)
B. Generar contraseña encriptada (hash MD5)
echo -n "TuContraseñaSegura" | md5sum
Crea un par de contraseñas, las usaremos mas adelante.
Copia el resultado (varios caracteres hexadecimales).
C. Editar la configuración
nano ~/.aMule/amule.conf
Modifica estas líneas:
AcceptExternalConnections=1
ECPassword=el_hash_que_copiaste
En la sección [WebServer]:
[WebServer]
Enabled=1
Password=el_mismo_hash
Port=4711
Guarda con Ctrl+O, Enter, y sal con Ctrl+X.
🚀 7. Crear servicio systemd (arranque automático)
sudo nano /etc/systemd/system/amule.service
Pega esto (cambia TU_USUARIO):
[Unit]
Description=aMule Master Daemon
After=network.target
[Service]
Type=simple
User=tu_usuario
Group=tu_grupo
ExecStart=/usr/local/bin/amuled
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Activa el servicio:
sudo systemctl daemon-reload
sudo systemctl enable amule.service
sudo systemctl start amule.service
sudo systemctl status amule.service
Si ves active (running), el demonio está funcionando.
Acceso desde el navegador
Abre http://localhost:4711
🧪 9. Comprobación final
# Ver ejecutables instalados
ls -la /usr/local/bin/amule*
# Ver puertos abiertos
sudo netstat -tlnp | grep -E "4711|4712"
Deberías ver:
- Puerto
4712→amuled(conexión interna con amuleweb/amulegui) - Puerto
4711→amuleweb(servidor web)
🐛 Posibles errores y soluciones
| Error | Solución |
|---|---|
glib-2.0 development headers not found | sudo apt install libglib2.0-dev pkg-config |
BUILD_WEBSERVER=OFF al verificar | Asegúrate de incluir -DBUILD_WEBSERVER=ON en el cmake |
amuleweb: no existe el fichero | Recompila con -DBUILD_WEBSERVER=ON |
Boost not found | Añade -DBoost_NO_BOOST_CMAKE=ON al comando cmake |
🔍 Diagnóstico rápido
Si no funciona aMuleWeb, comprueba si está corriendo:
# Ver si hay proceso de amuleweb
ps aux | grep amuleweb | grep -v grep
# Ver qué puertos están escuchando
sudo netstat -tlnp | grep 4711
Si no ves nada en el puerto 4711, el problema es que amuleweb no se ha iniciado.
⚠️ El problema crónico de aMuleWeb: cuando la interfaz remota desaparece
Lamentablemente, aMule arrastra un problema conocido desde hace años: aMuleWeb se cierra sin previo aviso, dejándonos sin acceso remoto a nuestras descargas desde fuera de la red local.
Es importante aclarar un punto: la guía de compilación que hemos seguido es perfectamente correcta para compilar aMule desde GitHub y configurar amuled como un servicio estable. El problema no es de compilación.
Como podrás comprobar revisando los informes de la comunidad y los issues en GitHub, se trata de un fallo intermitente del propio programa que lleva presente mucho tiempo. No es un caso aislado, sino una anomalía bien documentada.
Entonces, ¿cómo solucionarlo?
La respuesta más fiable y limpia, especialmente para una Raspberry Pi que debe funcionar 24/7, es implementar un vigilante (watchdog) como el que te he mostrado. No es una invención mía: es la misma técnica que utilizan muchos usuarios para lidiar con este comportamiento.
🕵️♂️ No estás solo: Es un fallo conocido
He revisado los informes de la comunidad y el propio GitHub del proyecto. Lo que describes es un clásico:
- Se cierra sin avisar (crashea): Hay informes de que
amulewebfalla inesperadamente, sobre todo cuando la lista de descargas se hace larga o hay muchos elementos para mostrar en la interfaz web . Es justo lo que te ha pasado a ti. - El demonio (
amuled) sigue vivo: Lo crucial es queamulewebpuede morir, peroamuled(el núcleo que realmente descarga los archivos) sigue funcionando perfectamente en segundo plano . Por eso tu descarga no se detuvo por completo, pero no podías verla.
Un usuario en el foro de aMule describió exactamente tu mismo problema: amuleweb se iniciaba y acto seguido el proceso desaparecía, sin más explicación .
💡 El diagnóstico final (y más simple)
Olvida lo de systemd y los servicios «colgados». El diagnóstico es directo:
- Síntoma: No hay proceso
amulewebcorriendo. - Prueba: El puerto 4711 no está en uso.
- Diagnóstico: El programa
amulewebha fallado y se ha detenido. Es un crasheo, no un cuelgue.
🛠️ Solución práctica para tu Raspberry
Dado que amuleweb es inestable y se cierra solo de vez en cuando , la solución más robusta para un sistema 24/7 como tu Raspberry Pi es, efectivamente, un «vigilante» (watchdog) que lo reactive automáticamente cuando muera.
Aquí tienes la forma más sencilla de hacerlo, rescatando la idea del script anterior, pero adaptada a tu situación actual.
Paso 1: Crear el script vigilante
Conéctate por SSH y crea el script:
sudo nano /usr/local/bin/amuleweb-watchdog.sh
Paso 2: Copiar el contenido (más simple y efectivo)
Este script es más simple: solo comprueba si el proceso amuleweb existe y, si no, lo arranca.
#!/bin/bash
# Script para vigilar y reiniciar amuleweb si se cierra
if pgrep -x "amuleweb" > /dev/null
then
# Si está corriendo, no hace nada
:
else
# Si no se encuentra, lo registra en el sistema y lo reinicia
logger "amuleweb-watchdog: amuleweb no encontrado, reiniciando..."
# Asegúrate de cambiar 'tu_usuario' por el tuyo, ej. 'raspberry'
sudo -u tu_usuario /usr/local/bin/amuleweb --amule-config-file=/home/tu_usuario/.aMule/amule.conf &
fi
Paso 3: Dar permisos y probar
sudo chmod +x /usr/local/bin/amuleweb-watchdog.sh
Paso 4: Programarlo cada minuto
Edita el crontab del usuario root para que vigile todo el tiempo:
sudo crontab -e
Añade esta línea al final del archivo:
* * * * * /usr/local/bin/amuleweb-watchdog.sh
Con esto, el sistema comprobará cada minuto si amuleweb está vivo y lo levantará automáticamente si se ha cerrado.
📌 Notas importantes
- Usamos CMake porque es el sistema oficial de compilación del proyecto aMule desde 2024.
- La compilación con
-DBUILD_MONOLITHIC=OFFes necesaria para queamuledfuncione correctamente como servicio. - Los puertos
4712(EC) y4711(Web) son distintos. No los confundas.