Objavljen je izvod ESP-KVM 0.51.2, otvorenog firmvera koji preobražava ploču s mikrokontrolerom ESP32-P4 u IP-KVM s pristupom ekranu, tipkovnici i mišu udaljenog računala putem preglednika, bez potrebe za instalacijom agenta na upravljanom stroju. Kod je napisan na jeziku C i distribuira se pod Apache 2.0 licencom. Glavna promjena izdanja je snimanje onoga što se prikazuje na ekranu cilja na microSD karticu samog uređaja.
Snimanje se uključuje gumbom u web sučelju i pohranjuje se u direktorij VIDEO u obliku .ts datoteka sa H.264 videom. Uređaj snima isti stream koji opskrbljuje gledateljima, stoga nije potrebno ponovo kodirati: na ploči Espressif ESP32-P4 Function EV prilikom reprodukcije videa na ciljanom stroju, brzina kadrova tijekom snimanja ostala je na razini od 21-22 po sekundi bez gubitaka. .ts datoteka reproducira se u VLC-u i mpv-u, a prekinuta izvlačenjem kartice ili isključivanjem napajanja otvara se do trenutka prekida. Duga snimka dijeli se na datoteke od 10 minuta i zaustavlja se nakon sat vremena; obje vrijednosti su podesive. Odvojenim gumbom snima se screenshot u JPEG formatu u mapu SCREENSHOTS, uključujući pri radu s H.264 kodekom: za snimak se koristi čekajući hardverski JPEG kodera.
Pritisci tipki i klikovi miša mogu se snimati u .srt datoteku s titlovima uz video — u obliku redaka „Typed: root“, „Ctrl+Alt+Delete“, „Left click (812, 440)“. Po zadanim postavkama, uneseni tekst zamjenjuje se točkama, a može se po potrebi potpuno sačuvati. Raspored se preuzima iz postavki ciljne tipkovnice.
Dodana je funkcija videonadzora koja radi na isti način kao automobilski videorekorder: uređaj neprekidno drži posljednje minute ekrana i pohranjuje ih zajedno s narednim sekundama kada se nešto dogodi — ekran postaje jedinstvene boje (karakteristično za ekran hitnog zaustavljanja), pojavljuje se praćena fraza, gasi se ATX indikator napajanja ili operater pritisne gumb. Dobiveni videozapis se konvertira u MP4 s poglavljima po svakom događaju, a kada su obavijesti uključene, šalje se na Telegram kao reproduktivni video u chatu.
Preteklost je mogoče shraniti na dva načina: v PSRAM pomnilniku, kjer ne zavzema nič prostora na kartici, dokler se ne zgodi dogodek, ali na sami kartici s kratkimi fragmenti in odstranjevanjem zastarelih - drugi način deluje tudi na ploščah s revizijo čipa do 3.0, kjer po zagonu H.264 kodirnika ostane približno 3 MB prostega PSRAM-a v primerjavi z 11 MB na novih revizijah.
Pojavil se je način časovne stiske: shrani se en posnetek vsakih nekaj sekund, predvajanje pa poteka s hitrostjo 25 sličic na sekundo, zato ena ura dela z intervalom 10 sekund ustreza 14 sekundam videa. Posnetki in slike so zbrani v ločenem panele vmesnika, od koder jih je mogoče prenesti, izbrisati in predvajati brez predhodnega nalaganja celotne datoteke: MP4 se odpre v privzetem predvajalniku brskalnika, medtem ko se .ts razčleni na sličice v sami konzoli in dekodira s tistim istim dekoderjem H.264, kot živa slika, z možnostjo previjanja in prikazovanja podnapisov. Za previjanje na strani naprave je bila izvedena podpora za HTTP razpone.
Izvedeno je iskanje po besedilu na ekranu. Med snemanjem naprava vsakih tri sekunde prebere zaslon kot niz znakov in shranjuje prebrano v datoteko ob videu; v panele posnetkov iskanje po frazi pokaže, kdaj je bila na zaslonu, in predvaja posnetek od tega trenutka. Beremo samo zaslone, narisane z generatorjem znakov — BIOS, naložitveni meni, program za namestitev, konzolo.
Snemanje, pospešena snemanja in posnetek zaslona se lahko zaženeta iz skript naprave («record 300», «timelapse 60», «screenshot») in iz Home Assistant, kjer je za to preklopnik in gumbi. Ure naprave se zdaj sinhronizirajo preko NTP, časovni pas pa se izbira iz seznama mest v nastavitvah — prej je bil shranjen v razdelku, ki ga vmesnik ni prikazoval.
Druge spremembe v izdajah, ki so izšle po 0.45.0:
- 0.46. Dodane so bile gradnje za plošče VIEWE ESP32-P4-Pi in Waveshare ESP32-P4-NANO-WIFI6-DB. Firmware se je začel graditi z optimizacijo -O2, manjše dodelitve pomnilnika so bile prenesene v PSRAM, nalogo, ki je obtičala, pa zdaj povzroči ponovni zagon s shranjevanjem dumpa.
- 0.47. Skenariji (runbookovi) su postali dostupni - makroi koji mogu čekati na pojavu ili nestanak fraze na tekstualnom ekranu i izvršavaju se na samom uređaju dok je pregledač zatvoren; prihvaćeni su skripti u DuckyScript formatu. Dodan je raspoređivač sa cron sintaksom i obavijesti na Telegramu (uz snimak ekrana) ili na webhook.
- 0.48. microSD kartica i WiFi modul su počeli raditi istovremeno - prethodno su oba koristila jedan SDMMC slot.
- 0.49. microSD kartica na Function EV pločama i Waveshare ESP32-P4-ETH je radila na frekvenciji magistralnog takta od 40 MHz umesto 4 (čitajući oko 9 MB/s, pišući oko 4 MB/s): napajanje linija slota nije bilo uključeno iz ugrađenog regulatora. Učitavanje slike kroz web interfejs je ubrzano otprilike 50 puta, na 3,5 MB/s putem Ethernet-a. Uveden je režim tastature za stare BIOS-ove - ciljna mašina prepoznaje jedini uređaj na brzini USB 1.1, bez miša i skladišta. Uređaj javlja ako režim HDMI premašuje propusnost dve MIPI CSI linije.
- 0.49.1. Čitanje virtuelnog skladišta od strane ciljne mašine je ubrzano sa 5,6 na 9 MB/s zahvaljujući čitanju kartice u blokovima od 256 KB. Promena slike postala je vidljiva ciljnoj mašini bez ponovnog povezivanja USB-a.
- 0.50. microSD karticu je moguće menjati na aktivnom uređaju, uključujući vađenje usred kopiranja: slot se proverava svake pet sekundi. Ispravljena je kašnjenje u MJPEG-u, zbog kojeg je na nepomičnom ekranu pregledač prikazivao okvir koji je prethodio poslednjem pritisku dugmeta.
Izvor: opennet.ru
