# Instalación La instalación es un único comando. Aun así, conviene saber qué hace por dentro, porque descarga y compila bastantes cosas y el proceso tarda. ## Antes de empezar Necesitas Raspberry Pi OS Bookworm de 64 bits con el escritorio instalado, no la versión Lite. FOSFENO muestra las visuales dentro de una ventana de Chromium a pantalla completa, así que hace falta entorno gráfico. Conviene tener la Raspberry conectada a internet por cable durante la instalación. Se descargan paquetes del sistema, librerías y el código fuente de projectM. ## El comando ``` git clone /fosfeno.git cd fosfeno bash install.sh ``` El instalador va informando de cada paso con una marca delante: - `[ OK ]` el paso terminó bien. - `[ !! ]` hubo un aviso. No es grave, pero conviene leerlo. - `[ XX ]` hubo un fallo que detiene la instalación. Al final resume cuántos avisos hubo. Si todo sale con `[ OK ]`, la instalación está limpia. ## Qué se instala automáticamente El script trabaja en nueve fases. Esto es lo que hace cada una. **Comprobación del sistema.** Detecta si la placa es una Pi 4 o una Pi 5, mira la versión del sistema operativo y la arquitectura. Si algo no encaja avisa, pero te deja seguir. **Paquetes del sistema.** Instala con apt lo que hace falta para que todo lo demás funcione: - Python 3 y su gestor de entornos virtuales. - Chromium, el navegador donde se dibujan las visuales. - Node.js y npm, para descargar las librerías de visuales. - Git, CMake y las herramientas de compilación, necesarias para projectM. - Las librerías de desarrollo de SDL2, OpenGL ES y POCO, que projectM usa al compilar. - Las utilidades de PulseAudio, para detectar el micrófono. - v4l-utils, para reconocer la cámara USB. - xdotool y unclutter, para el control de projectM y para esconder el ratón. **Verificación de versiones.** Comprueba que Python, Node, npm y CMake cumplen una versión mínima. Si alguna se queda corta lo dice claramente. Cuando es CMake quien no llega, salta la compilación de projectM en lugar de fallar entera. **Entorno de Python.** Crea un entorno virtual aislado e instala Flask y Flask-SocketIO, que son el servidor web del proyecto. Después comprueba que esas librerías se importan de verdad. **Librerías de visuales.** Con npm descarga Butterchurn y sus presets, Hydra, el cliente de Socket.IO y CodeMirror, que es el editor de código del panel. Copia los archivos que se usan a una carpeta `web/lib` y verifica uno por uno que cada copia existe y no está vacía. **projectM.** Compila projectM desde su código fuente. Esto es lo que más tarda, entre diez y veinte minutos en una Raspberry. Si la compilación falla, el instalador lo avisa y sigue adelante: FOSFENO funciona igual con los otros cuatro motores. Puedes saltarte este paso desde el principio con `bash install.sh --no-projectm`. **Recursos.** Descarga un paquete de presets para projectM y crea la carpeta `data/videos`, donde copiarás tus clips para el modo Mezclador. **Arranque automático.** Configura la Raspberry para que, al encender el escritorio, lance FOSFENO sola. También da permiso para reiniciar y apagar la placa desde el panel sin pedir contraseña. **Puerto 80.** Da permiso a Python para usar el puerto 80, que es lo que permite abrir el panel en `http://la-ip-de-tu-pi/` sin escribir ningún número de puerto detrás. ## Después de instalar Falta un ajuste que el script no puede hacer por ti. Hay que decirle a la Raspberry que arranque sola en el escritorio: ``` sudo raspi-config ``` Dentro, ve a `System Options`, luego `Boot / Auto Login`, y elige `Desktop Autologin`. Sal y reinicia: ``` sudo reboot ``` Al volver, la Raspberry arranca directa en modo kiosko mostrando las visuales. El panel queda disponible en `http://la-ip-de-tu-pi/`. ## Comprobar el sistema sin reinstalar Si quieres revisar que todo sigue en su sitio, o diagnosticar un problema, hay un modo que solo comprueba y no toca nada: ``` bash install.sh --check ``` Lista las versiones de las herramientas y dice si projectM y Chromium están presentes. ## Volver a ejecutar el instalador El script se puede ejecutar las veces que quieras. No repite el trabajo ya hecho: no vuelve a compilar projectM si ya está, ni vuelve a descargar los presets si ya están. Es seguro relanzarlo si una instalación se cortó a medias.