ESP-KVM 0.45.0: открытая прошивка для случая, когда TeamViewer бессилен
ESP-KVM превращает плату на ESP32-P4 в IP-KVM за $45: удалённый доступ к экрану, клавиатуре и мыши через браузер, даже если на машине нет ОС. Разбираемся, почему выбор чипа — жёсткое ограничение, а не вопрос цены.
ESP-KVM 0.45.0: открытая прошивка для случая, когда TeamViewer бессилен
Автору ESP-KVM нужен был способ увидеть экран машины, которая не поднимает операционную систему. Под рукой оказалась отладочная плата на ESP32-P4. Принципиальное отличие от любого remote desktop: на управляемой машине ничего не устанавливается, её ОС не требуется. Устройство подключается к видеовыходу и USB-порту — и в браузере появляется картинка, даже когда компьютер показывает BIOS, грузится или стоит с пустым диском.
Эталонная сборка — плата Waveshare ESP32-P4-WIFI6-POE-ETH плюс плата захвата Geekworm C790 на чипе Toshiba TC358743, который переводит HDMI в MIPI-CSI. Дальше картинка кодируется аппаратными кодировщиками самого микроконтроллера — H.264 или MJPEG — и уходит в браузер. Клавиатура и мышь эмулируются через USB OTG в High-Speed-режиме. Целевая машина видит обычные USB-устройства ввода, никаких драйверов ей не нужно. По умолчанию ESP-KVM представляется как «абсолютное указывающее устройство» — то есть как графический планшет, который шлёт координаты, а не относительные смещения.
Есть в проекте черта, которая выдаёт его происхождение: всё, что железо не поддерживает, интерфейс показывает как disabled с указанием причины — устройство не притворяется. Кабель USB нужен полноценный data-кабель — charge-only провод не подойдёт, потому что по data-линиям идут клавиатура и мышь. Типичные грабли для тех, кто собирает проект не на эталонной плате: некоторые платы не дают нужные напряжения на CSI-разъёме, а интерфейс консоли доступен на пяти языках — английском, русском, чешском, украинском и литовском.
Самое неочевидное в ESP-KVM — не цена и не прошивка, а то, что выбор чипа был жёстким техническим ограничением. Проекту нужны одновременно три вещи: MIPI-CSI-2 приёмник, аппаратный H.264-кодировщик и USB OTG. Из всей линейки Espressif этому набору удовлетворяет только ESP32-P4. Даже новый ESP32-S31 не подходит: у него параллельный DVP-интерфейс камеры, а не CSI-2. Так что это не вопрос цены — связку «CSI-2 плюс аппаратный H.264» в другом чипе просто не найти.
Официальное описание говорит о 20–24 кадрах в секунду при 1920×1080 и до 45 при 1280×720. Но независимый обзор на cnx-software приводит другие цифры: 20 FPS для MJPEG и 7 FPS для H.264 при 1080p. Наиболее вероятное объяснение — производительность зависит от ревизии чипа: обзор готовился в расчёте на более новые ESP32-P4 V3.x с корректно реализованным H.264, и апдейтом прошивки это не лечится. 7 FPS в H.264 — это не видео, а «картинка для технического доступа».
Комплект из двух плат обойдётся примерно в $45: Waveshare ESP32-P4-ETH стоит около $20 на Amazon, Geekworm C790 MIPI CSI-to-HDMI — $23.90. Коммерческие KVM-over-IP стоят сотни долларов, и ESP-KVM не пытается их заменить. Он закрывает другую нишу: машина виснет в BIOS, на ней нет ОС или она мертва — в этой ситуации не поможет ни AnyDesk, ни TeamViewer. Держать устройство стоит только в доверенной LAN или за VPN.
Для таких людей в проекте есть приятные мелочи: microSD для виртуального USB-носителя, HTTPS-консоль, интеграция с MQTT и Home Assistant, маленький круглый экран на корпусе, показывающий IP-адрес устройства. После прошивки устройство поднимается под именем espkvm.local. Тяжёлую часть работы — подъём TC358743 и получение кадров из CSI-приёмника ESP32-P4 — сделали в проекте P4 KVM, и ESP-KVM без него бы не существовал.
Он интересен тем, что существует сегодня: за $45 открытая прошивка на микроконтроллере делает то, что раньше требовало специализированного железа за сотни долларов. Но это не замена коммерческому KVM по производительности и не готовое решение для интернета. Вопрос только в том, купите ли вы платы сейчас, пока эта связка актуальна: если вам нужно увидеть экран машины, которая не грузится, — альтернативы просто нет.