Випуск ESP-KVM 0.51.0, відкритої прошивки IP-KVM, із записом екрана на microSD

Опубліковано випуск ESP-KVM 0.51.2, відкритої прошивки, що перетворює плату на мікроконтролері ESP32-P4 в IP-KVM з доступом до екрану, клавіатури та миші віддаленого комп'ютера через браузер, без встановлення агента на керовану машину. Код написаний мовою Сі та поширюється під ліцензією Apache 2.0. Основна зміна випуску - запис того, що відбувається на екрані цілі на карту microSD самого пристрою.

Запис включається кнопкою у веб-інтерфейсі та зберігається у каталог VIDEO у вигляді файлів .ts з відео H.264. Пристрій пише той же потік, який віддає глядачам, тому повторне кодування не потрібне: на платі Espressif ESP32-P4 Function EV під час відтворення відео на цільовій машині частота кадрів під час запису залишилася на рівні 21-22 за секунду без втрат. Файл .ts відтворюється в VLC і mpv, а перерваний вилученням картки або вимкненням живлення відкривається до обриву. Довгий запис ділиться на файли по 10 хвилин і зупиняється за годину; обидва значення налаштовуються. Окремою кнопкою зберігається знімок екрана у форматі JPEG в папку SCREENSHOTS, у тому числі при роботі кодека H.264: для знімка задіюється апаратний кодувальник JPEG, що простоює.

Натискання клавіш і клацання мишею можна записувати у файл субтитрів .srt поряд з відео - у вигляді рядків "Typed: root", "Ctrl + Alt + Delete", "Left click (812, 440)". За замовчуванням набраний текст замінюється крапками, при необхідності зберігається повністю. Розкладка береться із налаштувань цільової клавіатури.

Доданий режим відеореєстратора, що працює за тим же принципом, що автомобільний: пристрій постійно тримає останні хвилини екрана і зберігає їх разом з наступними секундами, коли щось відбувається - екран стає однотонним (характерно для екрана аварійної зупинки), з'являється фраза, що відстежується, гасне індикатор живлення ATX або оператор на оператор. Отриманий ролик перетворюється на MP4 з розділами по кожній події, а при включених повідомленнях відправляється в Telegram як відео, яке відтворюється в чаті.

Зберігати минуле можна двома способами: в оперативній пам'яті PSRAM, де воно нічого не займає на карті до настання події, або на карті короткими фрагментами з видаленням застарілих - другий спосіб працює і на платах з ревізією чіпа до 3.0, де після запуску кодувальника H.264 вільної PSRAM залишається близько 3 МБ проти 11.

З'явився режим таймлапсу: зберігається один кадр раз на задане число секунд, відтворення йде зі швидкістю 25 кадрів на секунду, тому година роботи при інтервалі 10 секунд вкладається в 14 секунд відео. Записи та знімки зібрані в окремій панелі інтерфейсу, звідки їх можна завантажити, видалити і відтворити без попереднього завантаження файлу повністю: MP4 відкривається штатним плеєром браузера, а .ts розбирається на кадри в самій консолі і декодується тим же декодером H.264, що і жива. Для перемотування на стороні пристрою реалізовано підтримку діапазонів HTTP.

Реалізовано пошук за текстом на екрані. Під час запису пристрій раз на три секунди читає екран як набір символів і зберігає прочитане файл поруч із відео; у панелі записів пошук за фразою показує, коли вона була на екрані, та відтворює запис з цього моменту. Читаються тільки екрани, намальовані генератором — BIOS, меню завантаження, програма установки, консоль.

Запис, прискорену зйомку та знімок екрана можна запускати зі сценаріїв пристрою («record 300», «timelapse 60», «screenshot») та з Home Assistant, де для цього є перемикач та кнопки. Годинник пристрою тепер синхронізується за NTP, а часовий пояс вибирається зі списку міст в налаштуваннях - раніше він зберігався в розділі, який не показував інтерфейс.

Інші зміни у випусках після 0.45.0:

  • 0.46. Додано збірки для плат VIEWE ESP32-P4-Pi та Waveshare ESP32-P4-NANO-WIFI6-DB. Прошивка стала збиратися з оптимізацією -O2, дрібні виділення пам'яті перенесені в PSRAM, а завдання, що зависло, тепер призводить до перезавантаження зі збереженням дампа.
  • 0.47. З'явилися сценарії (runbooks) - макроси, які вміють чекати на появу або зникнення фрази на текстовому екрані і виконуються на самому пристрої при закритому браузері; приймаються скрипти у форматі DuckyScript. Додані планувальник із синтаксисом cron та повідомлення у Telegram (зі знімком екрану) або на webhook.
  • 0.48. Карта microSD і модуль WiFi запрацювали одночасно - раніше обидва використовували один слот SDMMC.
  • 0.49. Карта microSD на платах Function EV та Waveshare ESP32-P4-ETH запрацювала на частоті шини 40 МГц замість 4 (читання близько 9 МБ/с, запис близько 4 МБ/с): не було включено живлення ліній слота від вбудованого стабілізатора. Завантаження образу через веб-інтерфейс прискорено приблизно в 50 разів, до 3,5 МБ/с Ethernet. Доданий режим клавіатури для старих BIOS – цільова машина бачить єдиний пристрій на швидкості USB 1.1, без миші та накопичувача. Пристрій повідомляє, якщо HDMI перевищує пропускну здатність двох ліній MIPI CSI.
  • 0.49.1. Читання віртуального накопичувача цільовою машиною прискорено з 5,6 до 9 МБ/с рахунок читання з карти блоками по 256 КБ. Зміна образу стала помітною цільовою машиною без перепідключення USB.
  • 0.50. Карту microSD можна змінювати на працюючому пристрої, у тому числі висмикнувши її в середині копіювання: слот перевіряється кожні п'ять секунд. Виправлена ​​затримка MJPEG, через яку на нерухомому екрані браузер показував кадр, що передує останньому натисканню клавіші.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster