È stata pubblicata una nuova versione del progetto ESP-KVM, che sviluppa un firmware open source in grado di trasformare una scheda di debug basata su microcontrollore ESP32-P4 in un vero IP-KVM, cioè un dispositivo che consente di accedere allo schermo, alla tastiera e al mouse di un computer remoto tramite browser. A differenza delle soluzioni di desktop remoto, sulla macchina controllata non va installato nulla e non è richiesto nulla dal suo sistema operativo: il dispositivo si collega all’uscita video e alla porta USB e continua a funzionare quando il computer mostra l’interfaccia BIOS, è in fase di avvio, ha un disco vuoto oppure è spento. Il codice è scritto in C ed è distribuito con licenza Apache 2.0.
Il dispositivo è composto da due piccole schede: una con ESP32-P4 e una scheda di acquisizione basata sul chip TC358743, che converte l’HDMI del sistema di destinazione in MIPI-CSI. L’immagine viene quindi codificata dai codificatori hardware integrati nel microcontrollore stesso — H.264 o MJPEG — e trasmessa al browser. Tastiera e mouse vengono inviati alla macchina di destinazione tramite USB OTG, quindi il sistema li riconosce come normali dispositivi di input e non richiede alcun driver. Sulla scheda di riferimento si ottengono circa 20-24 fotogrammi al secondo a 1920×1080 e fino a 45 a 1280×720.
Tra le funzionalità:
- Lettura dello schermo testuale come testo e non come immagine: il contenuto della console BIOS, del bootloader o della console Linux viene riconosciuto tramite il generatore di caratteri e trasmesso come simboli, così lo schermo occupa pochi kilobyte invece di megabyte e un numero di serie o un codice di errore può essere selezionato con il mouse e copiato.
- Monitoraggio dello schermo in base a frasi predefinite con notifica, anche quando nessuno sta osservando il dispositivo.
- Gestione dell’alimentazione del sistema di destinazione tramite optoisolatore (pulsanti di accensione e reset, lettura dell’indicatore), Wake-on-LAN e riattivazione di una macchina in sospensione via USB.
- WireGuard e Tailscale integrati, incluso il supporto a un controller proprietario server Headscale.
- Integrazione con Home Assistant tramite MQTT: sensori, pulsanti, entità per l’aggiornamento del firmware e telecamera con istantanea dello schermo del sistema di destinazione.
- HTTPS con certificato generato direttamente dal dispositivo, accesso tramite password e reset fisico della password con un pulsante sulla scheda; è anche possibile caricare un proprio certificato.
- Aggiornamento del firmware via rete con doppio slot e rollback automatico, immagine di emergenza nella memoria flash interna e access point con portale captive in assenza di rete.
- Piccolo schermo di stato (I2C OLED o GC9A01 rotondo) con indirizzo, stato del link e temperatura.
- Supporti virtuali: l'immagine del disco dalla scheda microSD viene presentata al dispositivo di destinazione come unità USB avviabile, consentendo di installare il sistema su una macchina con disco vuoto.
Il firmware è compilato per dieci varianti di schede, tra cui Waveshare ESP32-P4-ETH, ESP32-P4-NANO ed ESP32-P4-WIFI6, Espressif ESP32-P4 Function EV, Guition ESP32-P4-M3-Dev e M5Stack Unit PoE-P4. La community ha creato diversi case per la scheda più popolare, la Waveshare ESP32-P4-ETH. La scheda può essere flashata direttamente dal browser, senza installare strumenti aggiuntivi.
Nella versione 0.45.0 è stato aggiunto il supporto per due schede — Waveshare ESP32-P4-Module-DEV-KIT e DFRobot FireBeetle 2 ESP32-P4 — ed è stata pubblicata un'analisi su quali schede basate su ESP32-P4 non siano adatte a questo compito e perché.


Fonte: opennet.ru
