Sistema instalado en los equipos
Sistema Operativo
A los equipos en producción en los clientes se les instala un sistema personalizado GNU/Linux Debian 12.
El sistema tiene instalado únicamente el gestor de ventanas Openbox. Como gestor de arranque utiliza systemd-boot y como gestor de red, systemd-networkd.
El gestor de audio es ALSA. No se utiliza pulse-audio ni pipewire porque causaban problemas con los drivers de algunos dispositivos, así que no existe cambio automático de dispositivo de salida en caliente. El archivo ~/.asoundrc tiene la configuracion de ALSA.
El journal del sistema está limitado a 128M para que no crezca excesivamente. No tiene partición Swap y tiene desactivado ipv6 y las mitigaciones de Meltdown y Spectre para aumentar el rendimiento de las CPU a través del bootloader.
Hay una serie de scripts en ~/scripts que se encargan de funciones básicas como descarga de contenidos, mantener las aplicaciones abiertas, etc.
El splash inicial se muestra con Plymouth.
No tiene ningún demonio de actualizaciones automáticas. Es buena idea actualizar los sistemas con los parches de seguridad con apt. Dos scripts de postinst se encargan de copiar el kernel y el initramfs a la partición EFI cuando éstos son actualizados.
El usuario del sistema es 'cvc' y la contraseña, 'cvc'.
Proceso de desplegado
Para la instalación en los equipos utilizamos una unidad USB con un Clonezilla personalizado y un script que se encarga de todo el proceso de instalación. Hay una copia de dicha unidad en D:\CVC_System.
Para comenzar la instalación solo hay que arrancar el equipo desde el pendrive y esperar entre 2 y 5 minutos dependiendo de la velocidad de almacenamiento interno. El equipo se reiniciará automáticamente al finalizar la instalación.
La imagen USB solo es compatible con UEFI.
Directorios de interés
~/apps
Las aplicaciones de emisión de contenidos, totem y servidor de turnos.
~/deploy
Los contenidos, música y demás que se descargan desde el servidor de desplegado.
~/logs
Registros de actividad del sistema a través del script logger y registros de las aplicaciones.
~/resources
Recursos de uso del sistema como el fondo de pantalla, los iconos del menu de openbox, el agente de control
~/resources/defaults
Aquí se almacenan los perfiles de los clientes comunes para personalizar el aspecto y configuración de las aplicaciones, fondo de pantalla, tema de plymouth y demás. La aplicación de configuración utiliza esta carpeta para aplicar los cambios al sistema.
~/scripts
Scripts de BASH para funciones básicas del sistema.
- appsCtrl: se encarga de abrir y cerrar las aplicaciones de emisión y mantenerlas en primer plano
- boot: aplica resolución, salida de audio, el fondo y la aplicación especificadas en ~/system.cfg
- CONFIG.app: es una aplicación gráfica para configurar y dejar listo rápidamente un equipo.
- genList*: genera las listas de contenidos y música a partir del contenidos de las carpetas
- logger: guarda registros del sistema para depuración
- sleepWake: suspende el equipo con y programa la alarma RTC para que despierte a una hora y luego, reinicia el equipo.
- sync: sincroniza contenidos, música y horarios desde el servidor de despliegue
- syncUsb*: copia contenidos y configuraciones desde un pendrive que tenga la carpeta .CVC. Este script se ejecuta con una regla UDEV.
*NOTA: En la versión actual, los scripts genList y syncUsb no funcionan correctamente. Éstos se encargaban de copiar contenidos desde un USB y generar listas json a partir pero tras ciertos cambios en el formato de las listas, cayó en desuso y no se ha actualizado para soportar la nueva versión. Ésto servía para actualizar contenidos, música y configuración simplemente introduciendo un pendrive en los equipos con una carpeta .CVC dentro. Unas reglas en Udev permite ejecutar el script syncUsb cuando se introduce un pendrive. Si fuese necesario en el futuro, se podría reparar este sistema, que puede ser útil para realizar cambios en entornos en los que no haya red, como un evento.