Byl vydán ESP-KVM 0.51.2, firmware s otevřeným zdrojovým kódem, který promění desku mikrokontroléru ESP32-P4 v IP KVM s přístupem k obrazovce, klávesnici a myši vzdáleného počítače přes prohlížeč, bez nutnosti instalace agenta na cílovém počítači. Kód je napsán v jazyce C a distribuován pod licencí Apache 2.0. Hlavní změnou v této verzi je možnost zaznamenávat aktivitu na obrazovce cílového zařízení na microSD kartu.
Nahrávání se spouští tlačítkem ve webovém rozhraní a ukládá se do adresáře VIDEO jako soubory .ts s videem H.264. Zařízení nahrává stejný stream, jaký doručuje divákům, takže překódování není nutné: na desce Espressif ESP32-P4 Function EV zůstala snímková frekvence během nahrávání při přehrávání na cílovém počítači bez ztráty 21-22 fps. Soubor .ts se přehrává ve formátu VLC a mpv a pokud je přerušen vyjmutím karty nebo vypnutím napájení, přehrávání pokračuje až do konce. Dlouhé nahrávky jsou rozděleny do 10minutových souborů a zastaví se po hodině; obě hodnoty jsou konfigurovatelné. Samostatné tlačítko ukládá snímek obrazovky ve formátu JPEG do složky SCREENSHOTS, a to i při povoleném kodeku H.264: k pořízení snímku obrazovky se používá nečinný hardwarový kodér JPEG.
Stisknutí kláves a kliknutí myší lze zaznamenat do souboru s titulky .srt vedle videa jako řetězce, například „Napsáno: root“, „Ctrl+Alt+Delete“ a „Kliknutí levým tlačítkem myši (812, 440)“. Ve výchozím nastavení je napsaný text nahrazen tečkami; v případě potřeby lze uložit celý text. Rozvržení je převzato z nastavení cílové klávesnice.
Byl přidán režim palubní kamery, který funguje na stejném principu jako palubní kamera v autě: zařízení nepřetržitě monitoruje posledních několik minut času na obrazovce a ukládá je spolu s následujícími sekundami, když se něco stane – obrazovka se rozsvítí (typické pro obrazovku nouzového zastavení), zobrazí se monitorovaná fráze, zhasne indikátor napájení ATX nebo operátor stiskne tlačítko. Výsledné video je převedeno do formátu MP4 s kapitolami pro každou událost a pokud jsou povolena oznámení, je odesláno do Telegramu jako video přehrávané v chatu.
Existují dva způsoby, jak ukládat minulost: do paměti PSRAM, kde nezabírá na kartě žádné místo, dokud nenastane událost, nebo na samotné kartě v krátkých fragmentech, přičemž zastaralé jsou smazány. Druhá metoda funguje i na deskách s revizí čipu do 3.0, kde po spuštění kodéru H.264 zbývá asi 3 MB volné paměti PSRAM, oproti 11 MB u novějších revizí.
Byl přidán režim časosběrného snímání: každý zadaný počet sekund se ukládá jeden snímek a přehrávání probíhá rychlostí 25 snímků za sekundu, takže hodinu záznamu v 10sekundových intervalech lze zachytit v 14 sekundách videa. Nahrávky a fotografie jsou uspořádány v samostatném panelu rozhraní, kde je lze stahovat, mazat a přehrávat bez nutnosti nejprve stahovat celý soubor. Soubory MP4 se otevírají pomocí vestavěného přehrávače prohlížeče, zatímco soubory .ts se v konzoli analyzují na snímky a dekódují stejným dekodérem H.264 jako živé video, s přetáčením zpět a titulky. Pro přetáčení zpět na straně zařízení je implementována podpora rozsahu HTTP.
Bylo implementováno vyhledávání textu na obrazovce. Během nahrávání zařízení načítá obrazovku jako znakovou sadu každé tři sekundy a ukládá přečtený text do souboru vedle videa. V panelu nahrávání se pomocí vyhledávání frází zobrazuje, kdy se video nacházelo na obrazovce, a nahrávka se přehrává od tohoto bodu. Načítají se pouze obrazovky generované generátorem znaků – BIOS, bootovací nabídka, instalační program a konzole.
Nahrávání, časosběrné snímání a snímky obrazovky lze spustit ze scénářů zařízení („nahrát 300“, „časosběrné snímání 60“, „snímek obrazovky“) a z aplikace Home Assistant, která k tomu má přepínač a tlačítka. Hodiny zařízení jsou nyní synchronizovány přes NTP a časové pásmo lze vybrat ze seznamu měst v nastavení – dříve bylo uloženo v sekci skryté před rozhraním.
Další změny ve verzích po verzi 0.45.0:
- 0.46. Byly přidány sestavení pro desky VIEWE ESP32-P4-Pi a Waveshare ESP32-P4-NANO-WIFI6-DB. Firmware je nyní sestaven s optimalizací -O2, malé alokace paměti byly přesunuty do PSRAM a zamrzlá úloha nyní způsobí restart s výpisem stavu.
- 0.47. Nyní jsou k dispozici runbooky – makra, která mohou čekat na zobrazení nebo zmizení fráze na textové obrazovce a spouštějí se přímo na zařízení po zavření prohlížeče. Nyní jsou akceptovány skripty ve formátu DuckyScript. Byl přidán plánovač se syntaxí cron a oznámeními do Telegramu (se snímky obrazovky) nebo webhooků.
- 0.48. Karta microSD a modul WiFi nyní fungují současně – dříve oba používaly stejný slot SDMMC.
- 0.49. Karta microSD na deskách Function EV a Waveshare ESP32-P4-ETH nyní pracuje na frekvenci sběrnice 40 MHz namísto 4 MHz (čtení přibližně 9 MB/s, zápis přibližně 4 MB/s): napájecí vodiče slotu nebyly napájeny integrovaným regulátorem. Načítání obrazu přes webové rozhraní bylo zrychleno přibližně 50krát na 3,5 MB/s přes Ethernet. Pro starší BIOSy byl přidán režim klávesnice – cílový počítač nyní vidí jedno zařízení rychlostí USB 1.1, s výjimkou myši nebo úložného zařízení. Zařízení nyní hlásí, pokud režim HDMI překročí šířku pásma dvou linek MIPI CSI.
- 0.49.1. Rychlost čtení z virtuálního disku cílovým počítačem byla zrychlena z 5,6 na 9 MB/s čtením z karty v blocích o velikosti 256 KB. Změny obrazu jsou nyní viditelné na cílovém počítači bez nutnosti opětovného připojení USB.
- 0.50. Kartu microSD lze vyměnit za chodu zařízení, a to i v případě, že je vyjmuta během kopírování: slot je kontrolován každých pět sekund. Opraveno zpoždění v MJPEG, které způsobovalo, že prohlížeč zobrazoval snímek předcházející poslednímu stisknutí klávesy na statické obrazovce.
Zdroj: opennet.ru
