Сборка ПО для WB контроллеров на Apple Silicon

Добрый день,

Необходимо портировать ПО на WB контроллер.
Изучил ваши статьи:
https://wirenboard.com/wiki/Сборка_образов_прошивки

Все понятно, стенд на виртуалке развернул и проверил все работает, но столкнулся с проблемой, если настраивать себе стенд для разработки на MacBook Pro с процессором M1. Docker образ, который скачивается wbdev скриптом создан только под архитектуру x86, что делает невозможным его запустить под Debian на ARM64 архитектуре (а поставить другой достаточно сложно, даже Ubuntu с эмуляцией x86 через Rosseta, которую предлагает использовать Parallels, не помогает решить проблему - KB Parallels: Using Rosetta to run x86-64 Docker Containers and Binaries in Linux virtual machines with Parallels Desktop).

Есть у вас планы подготовить docker образ, чтобы можно было делать свои сборки на M процессорах Apple? Возможно есть другие решения, как использовать текущий образ, буду очень благодарен подсказки.

Спасибо!

Добрый день,

Спасибо за ваше сообщение и подробное описание проблемы.

Мы понимаем, что отсутствие Docker образа для архитектуры ARM64 может создавать неудобства для пользователей MacBook с процессором M1. К сожалению, на данный момент мы не можем предоставить точную информацию о сроках появления такого образа.

Тем не менее, мы предлагаем несколько возможных обходных путей для решения вашей задачи:

  1. Использование QEMU: Вы можете попробовать использовать QEMU для эмуляции архитектуры x86 на ARM64. Это может помочь вам запустить текущий Docker образ. Вот пример команды для запуска Docker контейнера через QEMU:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run -it --platform linux/amd64 <ваш-образ>
  1. Использование кросс-компиляции: Вы можете настроить кросс-компиляцию на вашем MacBook для сборки образов под нужную архитектуру. Это может потребовать дополнительных настроек, но позволит вам работать на вашей текущей платформе.
  2. Удаленная сборка: Вы можете настроить удаленную машину с архитектурой x86 (например, облачный сервер) и использовать её для сборки образов. Это позволит вам использовать существующие инструменты без необходимости адаптировать их под вашу локальную архитектуру.

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

Добрый вечер,

Спасибо за ответ.
Попробовал выполнить первую команду, получил ошибку. Не подскажете что не так делаю?

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
Unable to find image 'multiarch/qemu-user-static:latest' locally
latest: Pulling from multiarch/qemu-user-static
205dae5015e7: Pull complete 
816739e52091: Pull complete 
30abb83a18eb: Pull complete 
0657daef200b: Pull complete 
30c9c93f40b9: Pull complete 
Digest: sha256:fe60359c92e86a43cc87b3d906006245f77bfc0565676b80004cc666e4feb9f0
Status: Downloaded newer image for multiarch/qemu-user-static:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
/register: exec: line 23: /qemu-binfmt-conf.sh: Exec format error

Все запускалось на виртуалке с Debian GNU/Linux 12, архитектура aarch64
Docker version 27.1.1, build 6312585

Добрый день!
Попробуйте по данной статье выполнить действия Multi-Arch Images with Docker Buildx and QEMU | by Dishant Pandya | Medium