Docker и ESP32: как превратить прошивку в воспроизводимый процесс и дать ИИ-агентам доступ к железу
ESP32 Firmware Development with Docker Sandboxes
Разработка прошивок для ESP32 часто превращается в хаос из-за несовместимых тулчейнов и проблемы «работает только на моей машине». Автор показывает, как Docker и официальный образ espressif/idf решают проблему воспроизводимости сборок, а Docker Sandboxes позволяют безопасно давать ИИ-агентам (например, Claude Code) доступ к реальному железу. В статье разбираются практические детали: проброс USB-устройств через RFC2217, параллельные окружения для новой и легаси-прошивок, стабильные имена устройств через udev, а также настройка Makefile и Compose для удобной работы. Отдельное внимание уделено изоляции агентов в microVM с собственным ядром и политиками сети, что делает автономную работу ИИ с платами безопасной.
Если вы всё ещё устанавливаете ESP-IDF прямо на хост-машину в 2026 году, вы работаете усерднее, чем необходимо.
- mzakharo1
Мы недавно добавили поддержку ESP32-C5/C6 с WiFi в espressif QEMU. Возможность поднимать виртуальные машины значительно ускоряет разработку. Теперь мы можем взять наш производственный образ прошивки и запустить его без изменений на QEMU. Больше не нужно ждать, пока платы прошьются, и можно мгновенно поднимать несколько плат.
- kooi
Похоже, это немного раздуто?
Мы используем Rust с embassy на платформе ESP, и это просто замечательно. У нас все периферийные модули изолированы, а не-периферийные модули совместимы с десктопным планировщиком embassy и мок-периферией. Тестовые стенды уже достаточно хороши, чтобы можно было запускать их в цикле с реальным железом.
Следующий шаг — подключить Saleae и дать агенту тестировать на реальных сигналах.
- jakewins
Я пробовал это некоторое время назад и обнаружил, что в итоге проще просто дать агенту прошивки выделенную машину. Есть так много низкоуровневых вещей, к которым нужен доступ для итераций по прошивке, а слои Docker постоянно сбивали агента с толку при отладке сбоев, падений, броунаутов и т.д.
Сочетание выделенной небольшой машины с USB-хабом, поддерживающим переключение питания по портам, позволяет агенту выполнять итерации и разблокировать устройства без вмешательства человека в течение очень долгого времени (дней). Очевидно, что любое программное обеспечение, созданное таким образом, непригодно для использования, но это невероятно удобно для отладки. Агент получает программируемый осциллограф, переключение питания и периферийные устройства (также с возможностью переключения питания), имитирующие различные вещи, с которыми наш продукт взаимодействует в реальном мире.
Короче говоря, я обнаружил, что слои Docker только сбивали агента с толку, и дать ей старый ноутбук было гораздо проще и гораздо мощнее.