Lansarea ESP-KVM 0.51.0, firmware-ul deschis IP-KVM, cu înregistrare a ecranului pe microSD

A fost publicată versiunea ESP-KVM 0.51.2, un firmware open-source care transformă placa cu microcontroler ESP32-P4 într-un IP-KVM cu acces la ecranul, tastatura și mouse-ul unui computer remote prin browser, fără a necesita instalarea unui agent pe mașina gestionată. Codul este scris în limbaj C și este distribuit sub licența Apache 2.0. Principalul schimbare a versiune este înregistrarea a ceea ce se petrece pe ecranul țintei pe un card microSD al dispozitivului.

Înregistrarea se activează printr-un buton în interfața web și se salvează în directorul VIDEO sub formă de fișiere .ts cu video H.264. Dispozitivul scrie același flux care este transmis spectatorilor, astfel încât recodarea nu este necesară: pe placa Espressif ESP32-P4 Function EV, în timpul redării video pe mașina țintă, frecvența cadrelor în timpul înregistrării a rămas la 21-22 pe secundă fără pierderi. Fișierul .ts se redă în VLC și mpv, iar întrerupt în urma extragerii cardului sau deconectării alimentării, se deschide până la punctul de întrerupere. Înregistrările lungi sunt împărțite în fișiere de câte 10 minute și se opresc după o oră; ambele valori sunt configurabile. Printr-un buton separat se salvează o captură de ecran în format JPEG în folderul SCREENSHOTS, inclusiv în timpul funcționării codec-ului H.264: pentru captura se utilizează encoder-ul hardware JPEG neutilizat.

Apăsările de taste și clicurile cu mouse-ul pot fi înregistrate într-un fișier de subtitrări .srt lângă video — sub forma unor rânduri „Typed: root”, „Ctrl+Alt+Delete”, „Left click (812, 440)”. În mod implicit, textul tastat este înlocuit cu puncte, dar poate fi salvat complet atunci când este necesar. Dispunerea este preluată din setările tastaturii țintă.

A fost adăugat un mod de înregistrare video, care funcționează pe același principiu ca un registrator auto: dispozitivul păstrează constant ultimele minute de ecran și le salvează împreună cu secunde ulterioare în care se întâmplă ceva — ecranul devine monocolor (caracteristic ecranului de oprire de urgență), apare o frază urmăribilă, indicatorul de alimentare ATX se stinge sau operatorul apasă un buton. Clipul rezultat este transformat în MP4 cu capitole pentru fiecare eveniment și, cu notificările activat, este trimis pe Telegram ca video redat în chat.

Păstrarea trecutului se poate face în două moduri: în memoria operativă PSRAM, unde nu ocupă nimic pe card până la activarea evenimentului, sau pe cardul propriu-zis prin fragmente scurte cu ștergerea celor învechite — a doua metodă funcționează și pe plăcile cu revizia cipului până la 3.0, unde, după lansarea encoder-ului H.264, PSRAM liber rămâne în jur de 3 MB față de 11 MB pe versiunile mai noi.

A apărut modul timelapse: se salvează o cadru o dată la un anumit număr de secunde, redarea având loc cu o viteză de 25 de cadre pe secundă, astfel încât o oră de lucru la un interval de 10 secunde se comprime în 14 secunde de video. Înregistrările și fotografiile sunt adunate într-o panou de interfață separată, de unde pot fi descărcate, șterse și redate fără a necesita încărcarea prealabilă a fișierului întreg: MP4 se deschide cu playerul standard al browser-ului, iar .ts este descompus în cadre în consola însăși și decodat cu același decoder H.264 ca și imaginea live, cu derulare și afișare de subtitrări. Pentru derulare, pe partea dispozitivului a fost implementată suportul pentru intervale HTTP.

A fost implementată căutarea după text pe ecran. În timpul înregistrării, dispozitivul citește ecranul ca un set de caractere la fiecare trei secunde și salvează ce a citit într-un fișier lângă video; în panoul de înregistrări, căutarea după frază arată când a fost pe ecran și redă înregistrarea de la acel moment. Se citesc doar ecranele desenate de generatorul de caractere — BIOS, meniul de încărcare, programul de instalare, consola.

Înregistrarea, filmarea accelerată și captura de ecran pot fi lansate din scenariile dispozitivului („record 300”, „timelapse 60”, „screenshot”) și din Home Assistant, unde există un comutator și butoane pentru acest lucru. Ceasul dispozitivului este acum sincronizat prin NTP, iar fusul orar este selectat dintr-o listă de orașe în setări — anterior era păstrat într-o secțiune pe care interfața nu o afișa.

Alte modificări în versiunile apărute după 0.45.0:

  • 0.46. S-au adăugat compilări pentru plăcile VIEWE ESP32-P4-Pi și Waveshare ESP32-P4-NANO-WIFI6-DB. Firmware-ul a început să fie compilat cu optimizare -O2, micile alocări de memorie au fost mutate în PSRAM, iar sarcina blocată duce acum la repornire cu salvarea dump-ului.
  • 0.47. Au apărut scenarii (runbooks) — macrocomenzi care pot aștepta apariția sau dispariția unei fraze pe ecranul textului și se execută pe dispozitivul propriu, cu browserul închis; sunt acceptate scripturi în format DuckyScript. S-a adăugat un programator cu sintaxă cron și notificări în Telegram (cu captură de ecran) sau pe webhook.
  • 0.48. Cardul microSD și modulul WiFi au funcționat simultan — anterior, ambele foloseau același slot SDMMC.
  • 0.49. Cardul microSD pe plăcile Function EV și Waveshare ESP32-P4-ETH a funcționat la frecvența de 40 MHz în loc de 4 (citire aproximativ 9 MB/s, scriere aproximativ 4 MB/s): alimentarea liniilor slotului de la stabilizatorul încorporat nu era activată. Încărcarea imaginii prin interfața web a fost accelerată de aproape 50 de ori, ajungând la 3,5 MB/s prin Ethernet. A fost adăugat un mod de tastatură pentru BIOS-urile mai vechi — mașina țintă vede un singur dispozitiv la viteza USB 1.1, fără mouse și unitate de stocare. Dispozitivul raportează dacă modul HDMI depășește lățimea de bandă a celor două linii MIPI CSI.
  • 0.49.1. Citirea unității virtuale de către mașina țintă a fost accelerată de la 5,6 la 9 MB/s prin citirea din card în blocuri de 256 KB. Schimbarea imaginii a devenit vizibilă pentru mașina țintă fără a necesita reconectarea USB.
  • 0.50. Cardul microSD poate fi schimat pe dispozitivul aflat în funcțiune, inclusiv scoaterea acestuia în mijlocul copierei: slotul este verificat la fiecare cinci secunde. A fost corectată întârzierea în MJPEG, care făcea ca browserul să afișeze un cadru anterior ultimei apăsări de tastă pe un ecran staționar.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster