Especificaciones tomadas del manual del propietario del gabinete PowerEdge M1000e (Dell, modelo BMX01, rev. A06, oct. 2019), que corrige el spec sheet comercial usado hasta ahora. Hardware: - Peso máximo 200,5 kg, no 179. Profundidad 75,5 cm - Seis fuentes y nueve ventiladores obligatorios, se usen 3 blades o 16. Toda bahía vacía necesita relleno - Conector CEI/IEC C20 a 16 A. La fuente de 3.000 W exige 200-240 V - Irrupción de 55 A por fuente durante 10 ms: un magnetotérmico de curva C salta, hace falta curva D - Temperatura de funcionamiento continuo 10-35 °C - ECM obligatorio con blades M630 de 120 W o más, o por encima de 30 °C Red: - Fabric A (ranuras A1/A2) es la Ethernet integrada de cada blade, así que no hacen falta tarjetas intermedias. Fabrics B y C sí las exigirían y no se usan - Pendiente saber si en A1/A2 hay un switch o un módulo de paso a través: cambia el montaje de red por completo Costes recalculados: el suelo fijo del chasis sube de 350 a ~500 W al contar los nueve ventiladores, los módulos de I/O y las pérdidas de las seis fuentes. 360 €/mes a 24/7, 59 €/mes por ventanas. Que las fuentes y los ventiladores sean obligatorios convierte en hecho documentado lo que antes era estimación: los pilotos parciales en el chasis son el peor caso posible. Documentación: - assets/ con cuatro diagramas SVG propios: arquitectura, chasis, stack de software y modos de red - docs/usabilidad.md: órdenes, flujos de trabajo, problemas conocidos y ergonomía del hardware - Diagramas ASCII del panel frontal, el posterior y la topología de fabrics en hardware_m1000e.md - Eliminada la parte de charla y divulgación, fuera del alcance del repo
3.4 KiB
Device lab con redroid
La vía 1: laboratorio de dispositivos Android propio sobre el rack. Legal, reutilizable, y el
primer uso real es probar oasis_mobile a escala — incluido el escenario de dos APKs que se tienen
que ver entre sí (el bloqueo de capa 1).
No hay móviles físicos. Cada "dispositivo" es un contenedor redroid: Android real sobre el kernel de una máquina Debian.
Dos caminos
| Para qué | |
|---|---|
| ansible/ | Los 16 blades del M1000e, provisionados y controlados desde un sitio. Es la vía principal. |
| Este documento | Un solo nodo, a mano. Sirve para entender las piezas y para trastear en el sobremesa. |
El hardware está descrito en hardware_m1000e.md.
Host
Comprobado el 2026-08-08 sobre esta máquina:
| CPU | 16 cores |
| RAM | 62 GB |
| SO | Debian 12 bookworm, kernel 6.1.0-51-amd64 |
| Docker | no instalado |
| binder | binder_linux.ko presente, pero CONFIG_ANDROID_BINDERFS no está activado |
Con 2 GB por instancia y dejando margen al host, 12–20 instancias redroid simultáneas es el rango realista aquí. No son las 30–60 de un nodo de 32c/128 GB.
Prerrequisitos
1. binder — el punto donde esto se atasca
El kernel de Debian trae binder_linux como módulo pero sin binderfs, así que redroid no puede
crear los devices por sí mismo. Hay que cargarlos a mano con los tres nombres que Android espera:
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
ls -l /dev/binder /dev/hwbinder /dev/vndbinder # deben existir
Para que persista entre reinicios:
echo binder_linux | sudo tee /etc/modules-load.d/redroid.conf
echo "options binder_linux devices=binder,hwbinder,vndbinder" | sudo tee /etc/modprobe.d/redroid.conf
Si modprobe falla, la alternativa es el módulo DKMS de Waydroid
(binder_linux-dkms), que sí aporta binderfs.
2. Docker
sudo apt install docker.io docker-compose-v2
sudo usermod -aG docker $USER # requiere volver a entrar en sesión
3. adb
sudo apt install adb
Arrancar
docker compose up -d
./connect.sh # conecta adb a las instancias levantadas
adb devices # deben salir 127.0.0.1:5555 .. 5558
Instalar un APK en todas:
./install-apk.sh ~/COFRE/CODERS/OASIS_APK/<algo>.apk
Ver una instancia:
sudo apt install scrcpy
scrcpy -s 127.0.0.1:5555
Escalar
docker-compose.yml trae 4 instancias como punto de partida. Para más, replicar el bloque
cambiando nombre y puerto. A partir de ~8 conviene generar el compose con un script en vez de
mantenerlo a mano, o pasar a GADS.
Para la flota entera
Todo lo de arriba, pero en 16 blades y sin hacerlo a mano: ansible/.
Ahí está el preflight que identifica el modelo de blade solo, el despliegue completo, y fleet
para hablar con todos los Android desde un único sitio.
Siguiente capa: GADS
GADS da UI web, gestión de dispositivos y Appium integrado encima de esto. Merece la pena cuando el número de instancias pase de una decena o cuando haga falta lanzar tests automatizados en vez de trastear a mano.
Limitación que hay que tener presente
Estas instancias son detectables como emulador. Sirven para probar tu propia app, no para interactuar con plataformas que hacen atestación de dispositivo (ver ../01_investigacion/stack_tecnico.md).