È stata pubblicata la versione 0.51.2 di ESP-KVM, un firmware open source che trasforma una scheda basata sul microcontrollore ESP32-P4 in un IP-KVM con accesso allo schermo, alla tastiera e al mouse di un computer remoto tramite browser, senza installare alcun agente sul sistema gestito. Il codice è scritto in C ed è distribuito con licenza Apache 2.0. La novità principale di questa release è la registrazione di ciò che avviene sullo schermo del sistema di destinazione su una scheda microSD del dispositivo stesso.
La registrazione si attiva con un pulsante nell'interfaccia web e viene salvata nella cartella VIDEO come file .ts con video H.264. Il dispositivo registra lo stesso flusso che trasmette agli spettatori, quindi non è necessaria una nuova codifica: sulla scheda Espressif ESP32-P4 Function EV, durante la riproduzione di video sul sistema di destinazione, il frame rate durante la registrazione è rimasto a 21-22 fps senza perdite. Il file .ts può essere riprodotto con VLC e mpv, mentre una registrazione interrotta dall'estrazione della scheda o da un blackout si apre fino al punto dell'interruzione. Le registrazioni lunghe vengono suddivise in file da 10 minuti e si fermano dopo un'ora; entrambi i valori sono configurabili. Un pulsante separato consente di salvare uno screenshot in formato JPEG nella cartella SCREENSHOTS, anche quando è in uso il codec H.264: per lo screenshot viene utilizzato l'encoder hardware JPEG inattivo.
La pressione dei tasti e i clic del mouse possono essere registrati in un file di sottotitoli .srt accanto al video, sotto forma di righe come «Typed: root», «Ctrl+Alt+Delete», «Left click (812, 440)». Per impostazione predefinita, il testo digitato viene sostituito da punti, ma se necessario può essere salvato integralmente. Il layout viene preso dalle impostazioni della tastiera del sistema di destinazione.
È stata aggiunta una modalità videoregistratore che funziona secondo lo stesso principio di una dashcam per auto: il dispositivo mantiene costantemente in memoria gli ultimi minuti dello schermo e li salva insieme ai secondi successivi quando accade qualcosa — lo schermo diventa uniforme (tipico di una schermata di arresto di emergenza), compare una frase monitorata, si spegne l'indicatore di alimentazione ATX oppure l'operatore preme un pulsante. Il filmato risultante viene convertito in MP4 con capitoli per ciascun evento e, se le notifiche sono attive, viene inviato su Telegram come video riproducibile direttamente nella chat.
Il passato può essere conservato in due modi: nella memoria PSRAM, dove non occupa spazio sulla scheda fino al verificarsi dell’evento, oppure direttamente sulla scheda in brevi frammenti con eliminazione di quelli obsoleti. Il secondo metodo funziona anche sulle schede con revisione del chip precedente alla 3.0, dove dopo l’avvio dell’encoder H.264 restano circa 3 MB di PSRAM libera contro gli 11 MB delle revisioni più recenti.
È stata introdotta la modalità timelapse: viene salvato un fotogramma ogni numero di secondi impostato e la riproduzione avviene a 25 fotogrammi al secondo, quindi un’ora di funzionamento con intervallo di 10 secondi si traduce in 14 secondi di video. Registrazioni e schermate sono raccolte in un pannello dedicato dell’interfaccia, da cui è possibile scaricarle, eliminarle e riprodurle senza dover prima caricare l’intero file: il formato MP4 si apre con il player nativo del browser, mentre il formato .ts viene suddiviso in fotogrammi direttamente nella console e decodificato con lo stesso decoder H.264 usato per l’immagine live, con avanzamento rapido e visualizzazione dei sottotitoli. Per l’avanzamento rapido lato dispositivo è stato implementato il supporto agli intervalli HTTP.
È stata implementata la ricerca del testo sullo schermo. Durante la registrazione il dispositivo legge lo schermo ogni tre secondi come insieme di caratteri e salva il testo rilevato in un file accanto al video; nel pannello delle registrazioni la ricerca per frase mostra quando essa era presente sullo schermo e avvia la riproduzione da quel momento. Vengono letti solo gli schermi disegnati dal generatore di caratteri: BIOS, menu di avvio, programma di installazione, console.
La registrazione, il timelapse e lo screenshot possono essere avviati dagli script del dispositivo («record 300», «timelapse 60», «screenshot») e da Home Assistant, dove sono disponibili un interruttore e dei pulsanti dedicati. L’orologio del dispositivo ora viene sincronizzato tramite NTP e il fuso orario si seleziona da un elenco di città nelle impostazioni; in precedenza era memorizzato in una sezione che l’interfaccia non mostrava.
Altre modifiche nelle release successive alla 0.45.0:
- 0.46. Aggiunte le build per le schede VIEWE ESP32-P4-Pi e Waveshare ESP32-P4-NANO-WIFI6-DB. Il firmware ora viene compilato con ottimizzazione -O2, le piccole allocazioni di memoria sono state spostate in PSRAM e un task bloccato ora provoca il riavvio con salvataggio del dump.
- 0.47. Sono comparsi gli scenari (runbook): macro in grado di attendere la comparsa o la scomparsa di una frase sullo schermo testuale e di eseguirsi direttamente sul dispositivo con il browser chiuso; sono supportati script nel formato DuckyScript. Aggiunti anche un pianificatore con sintassi cron e notifiche su Telegram (con screenshot) o verso un webhook.
- 0.48. La scheda microSD e il modulo WiFi hanno iniziato a funzionare contemporaneamente: prima entrambi utilizzavano lo stesso slot SDMMC.
- 0.49. La scheda microSD sulle schede Function EV e Waveshare ESP32-P4-ETH ora funziona a una frequenza del bus di 40 MHz invece di 4 (lettura circa 9 MB/s, scrittura circa 4 MB/s): l'alimentazione delle linee dello slot dal regolatore integrato non era attivata. Il caricamento dell'immagine tramite l'interfaccia web è stato accelerato di circa 50 volte, fino a 3,5 MB/s via Ethernet. È stata aggiunta una modalità tastiera per i vecchi BIOS: la macchina di destinazione vede un unico dispositivo alla velocità USB 1.1, senza mouse né unità di archiviazione. Il dispositivo segnala se la modalità HDMI supera la larghezza di banda di due linee MIPI CSI.
- 0.49.1. La lettura dell'unità virtuale da parte della macchina di destinazione è stata accelerata da 5,6 a 9 MB/s grazie alla lettura dalla scheda in blocchi da 256 KB. Il cambio dell'immagine è diventato visibile alla macchina di destinazione senza ricollegare l'USB.
- 0.50. La scheda microSD può essere sostituita a dispositivo acceso, anche estraendola nel mezzo di una copia: lo slot viene controllato ogni cinque secondi. Corretta la latenza in MJPEG, a causa della quale su una schermata statica il browser mostrava il fotogramma precedente all'ultima pressione di un tasto.
Fonte: opennet.ru
