ESP-KVM 0.51.2, sebuah firmware open-source yang mengubah papan mikrokontroler ESP32-P4 menjadi KVM berbasis IP dengan akses berbasis browser ke layar, keyboard, dan mouse komputer jarak jauh, tanpa perlu menginstal agen pada mesin target, telah dirilis. Kode tersebut ditulis dalam bahasa C dan didistribusikan di bawah lisensi Apache 2.0. Perubahan utama dalam rilis ini adalah kemampuan untuk merekam aktivitas layar target ke kartu microSD perangkat.
Perekaman dimulai dengan tombol di antarmuka web dan disimpan ke direktori VIDEO sebagai file .ts dengan video H.264. Perangkat merekam aliran yang sama yang dikirimkannya ke pemirsa, sehingga pengkodean ulang tidak diperlukan: pada papan Espressif ESP32-P4 Function EV, kecepatan bingkai selama perekaman tetap pada 21-22 fps tanpa kehilangan saat diputar kembali di mesin target. File .ts dapat diputar di VLC dan mpv, dan jika terhenti karena melepas kartu atau mematikan daya, pemutaran akan berlanjut hingga selesai. Rekaman panjang dibagi menjadi file 10 menit dan berhenti setelah satu jam; kedua nilai tersebut dapat dikonfigurasi. Tombol terpisah menyimpan tangkapan layar dalam format JPEG ke folder SCREENSHOTS, bahkan ketika codec H.264 diaktifkan: encoder JPEG perangkat keras yang tidak aktif digunakan untuk menangkap tangkapan layar.
Ketukan keyboard dan klik mouse dapat direkam dalam file subtitle .srt di samping video, sebagai string seperti "Diketik: root," "Ctrl+Alt+Delete," dan "Klik kiri (812, 440)." Secara default, teks yang diketik diganti dengan titik; teks lengkap dapat disimpan jika diinginkan. Tata letak diambil dari pengaturan keyboard target.
Mode dashcam telah ditambahkan, bekerja dengan prinsip yang sama seperti dashcam mobil: perangkat terus memantau beberapa menit terakhir waktu layar dan menyimpannya bersama dengan detik-detik berikutnya ketika sesuatu terjadi—layar menjadi solid (khas untuk layar berhenti darurat), frasa yang dipantau muncul, indikator daya ATX mati, atau operator menekan tombol. Video yang dihasilkan dikonversi ke MP4 dengan bab untuk setiap kejadian, dan jika notifikasi diaktifkan, video tersebut dikirim ke Telegram sebagai video yang diputar di obrolan.
Ada dua cara untuk menyimpan data masa lalu: di PSRAM, di mana data tersebut tidak memakan ruang pada kartu hingga peristiwa terjadi, atau di kartu itu sendiri dalam fragmen pendek dengan fragmen yang sudah usang dihapus. Metode kedua juga berfungsi pada papan dengan revisi chip hingga 3.0, di mana setelah menjalankan encoder H.264, sekitar 3 MB PSRAM kosong tersisa, dibandingkan dengan 11 MB pada revisi yang lebih baru.
Mode selang waktu (timelapse) telah ditambahkan: satu frame disimpan setiap beberapa detik yang ditentukan, dan pemutarannya pada 25 frame per detik, sehingga rekaman selama satu jam dengan interval 10 detik dapat ditangkap dalam video berdurasi 14 detik. Rekaman dan foto diatur dalam panel antarmuka terpisah, di mana keduanya dapat diunduh, dihapus, dan diputar tanpa harus mengunduh seluruh file terlebih dahulu. File MP4 dibuka dengan pemutar bawaan browser, sementara file .ts diuraikan menjadi frame di konsol dan didekode oleh dekoder H.264 yang sama dengan video langsung, dengan fitur putar ulang dan subtitle. Dukungan rentang HTTP diimplementasikan untuk pemutaran ulang di sisi perangkat.
Pencarian teks di layar telah diimplementasikan. Saat merekam, perangkat membaca layar sebagai kumpulan karakter setiap tiga detik dan menyimpan apa yang dibacanya ke dalam file di samping video. Di panel perekaman, pencarian frasa menunjukkan kapan frasa tersebut muncul di layar dan memutar rekaman dari titik tersebut. Hanya layar yang dihasilkan oleh generator karakter yang dibaca—BIOS, menu boot, program pengaturan, dan konsol.
Perekaman, time-lapse, dan tangkapan layar dapat diluncurkan dari skenario perangkat ("rekam 300," "timelapse 60," "tangkapan layar") dan dari Home Assistant, yang memiliki sakelar dan tombol untuk ini. Jam perangkat sekarang disinkronkan melalui NTP, dan zona waktu dapat dipilih dari daftar kota di pengaturan—sebelumnya, zona waktu disimpan di bagian yang tersembunyi dari antarmuka.
Perubahan lain pada rilis setelah 0.45.0:
- 0.46. Versi firmware untuk board VIEWE ESP32-P4-Pi dan Waveshare ESP32-P4-NANO-WIFI6-DB telah ditambahkan. Firmware sekarang dibuat dengan optimasi -O2, alokasi memori kecil telah dipindahkan ke PSRAM, dan tugas yang macet sekarang menyebabkan reboot dengan dump.
- 0.47. Runbook kini tersedia—makro yang dapat menunggu frasa muncul atau menghilang di layar teks dan dieksekusi di perangkat itu sendiri saat browser ditutup. Skrip dalam format DuckyScript kini diterima. Penjadwal dengan sintaks cron dan notifikasi ke Telegram (dengan tangkapan layar) atau webhook telah ditambahkan.
- 0.48. Kartu microSD dan modul WiFi sekarang bekerja secara bersamaan—sebelumnya, keduanya menggunakan slot SDMMC yang sama.
- 0.49. Kartu microSD pada papan Function EV dan Waveshare ESP32-P4-ETH sekarang beroperasi pada frekuensi bus 40 MHz, bukan 4 MHz (membaca sekitar 9 MB/s, menulis sekitar 4 MB/s): jalur daya slot tidak diberi daya oleh regulator terintegrasi. Pemuatan gambar melalui antarmuka web telah dipercepat sekitar 50 kali, menjadi 3,5 MB/s melalui Ethernet. Mode keyboard telah ditambahkan untuk BIOS yang lebih lama—mesin target sekarang melihat satu perangkat dengan kecepatan USB 1.1, tidak termasuk mouse atau perangkat penyimpanan. Perangkat sekarang melaporkan jika mode HDMI melebihi bandwidth dua jalur MIPI CSI.
- 0.49.1. Kecepatan membaca dari drive virtual oleh mesin target telah dipercepat dari 5,6 menjadi 9 MB/s dengan membaca dari kartu dalam blok 256 KB. Perubahan gambar sekarang terlihat oleh mesin target tanpa perlu menyambungkan kembali USB.
- 0.50. Kartu microSD dapat diganti saat perangkat sedang berjalan, bahkan jika dilepas di tengah proses penyalinan: slot diperiksa setiap lima detik. Memperbaiki penundaan pada MJPEG yang menyebabkan browser menampilkan frame sebelum penekanan tombol terakhir pada layar yang diam.
Sumber: opennet.ru
