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 году, вы работаете усерднее, чем необходимо.
  1. mzakharo1

    Мы недавно добавили поддержку ESP32-C5/C6 с WiFi в espressif QEMU. Возможность поднимать виртуальные машины значительно ускоряет разработку. Теперь мы можем взять наш производственный образ прошивки и запустить его без изменений на QEMU. Больше не нужно ждать, пока платы прошьются, и можно мгновенно поднимать несколько плат.

    https://github.com/CognitiveSystemsCorp/qemu_esp

  2. kooi

    Похоже, это немного раздуто?

    Мы используем Rust с embassy на платформе ESP, и это просто замечательно. У нас все периферийные модули изолированы, а не-периферийные модули совместимы с десктопным планировщиком embassy и мок-периферией. Тестовые стенды уже достаточно хороши, чтобы можно было запускать их в цикле с реальным железом.

    Следующий шаг — подключить Saleae и дать агенту тестировать на реальных сигналах.

  3. jakewins

    Я пробовал это некоторое время назад и обнаружил, что в итоге проще просто дать агенту прошивки выделенную машину. Есть так много низкоуровневых вещей, к которым нужен доступ для итераций по прошивке, а слои Docker постоянно сбивали агента с толку при отладке сбоев, падений, броунаутов и т.д.

    Сочетание выделенной небольшой машины с USB-хабом, поддерживающим переключение питания по портам, позволяет агенту выполнять итерации и разблокировать устройства без вмешательства человека в течение очень долгого времени (дней). Очевидно, что любое программное обеспечение, созданное таким образом, непригодно для использования, но это невероятно удобно для отладки. Агент получает программируемый осциллограф, переключение питания и периферийные устройства (также с возможностью переключения питания), имитирующие различные вещи, с которыми наш продукт взаимодействует в реальном мире.

    Короче говоря, я обнаружил, что слои Docker только сбивали агента с толку, и дать ей старый ноутбук было гораздо проще и гораздо мощнее.

Ещё за этот день

2026-08-22