• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

NanoPi c eMMC.

pvvx

Активный участник сообщества
FriendlyWrt: Пример сборка своей images для плат с NanoPi H3 c eMMC в Windows10.
Предупреждение - итоговый рабочий контейнер с images к docker будет иметь объемы более 14 GB и всё дальнейшее не рассчитано на слабые компы.
Это закрыто для устаревших и слабых компов по причине тормозов, как и любая сборка современного OpenWRT.
Описываемый процесс, не включая загрузку начальных архивов, если запущен в автомате на среднем современном десктопе, то занимает не более получаса до первого выплевывания собранной image для SD готовой к загрузке и переносу на eMMC. Повторные сборки гораздо быстрее...

--------------

Создаем на диске директорию для работы и исходных данных к плате NanoPi-r1 или NanoPi-NEO-Core2, в которую закачаем необходимые исходники.
Для краткости дальнейшего изложения назовем эту директорию “SRC_H3_BASE” и у меня это “E:\NanoPi\NanoPi-R1”. Она прописана в create_docker_images_h3.cmd как директория по умолчанию - замените если нужно.

Далее выполняем такие пункты:
  • Установить docker-desktop: https://www.docker.com/products/docker-desktop
  • Настроить в docker сколько ресурсов ему отдавать и где будут храниться его images. Желательные настройки – 8 ядер, 4 GB RAM, 64 GB images. Тогда первая сборка уложиться в менее 30 минут.1584957612553.png
  • В директории “SRC_H3_BASE” развернуть архив https://yadi.sk/d/afPldvXbY5Sn1w .
  • Для H3 из H3 Download Link требуется скачать из директории ‘source’ файл “friendlywrt-h3-20191230.tar” (6 GB) и из директории самого устройства папку “images-for-flasher” в базовую папку “SRC_H3_BASE”.
  • Запустить в “sources\docker-fwrt-base” файл “create_docker_images_h3.cmd” с параметрами 0 и папки “SRC_H3_BASE”. Пример: ”create_docker_images_h3.cmd 0 E:\NanoPi\NanoPi-R1”
На этом среда и сборщик готовы. Остается запустить саму сборку. Т.к. далее вариантов много, то об этом в следующих сообщениях.

Полученная среда имеет два пользователя:
  • user: root password: docker
  • user: dev password: dev

Для сборки части OpenWRT используется пользователь ‘dev’. Под root сборка OpenWRT не сработает и вывалится по ошибке.
В image/контейнере включен ssh доступ по внутреннему порту 22 для SSH.
-------------
Для удобства работы с docker можно установить Portainer: https://www.portainer.io/installation/
Доп. справка как собрать FriendlyWrt: How to Build FriendlyWrt

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

pvvx

Активный участник сообщества
Запуск среды сборки в консоли cmd Windows:

docker run -it --privileged=true --name fwrt-wrk-h3 -p 8022:22 -v e:\NanoPi\NanoPi-R1:/home/dev/extdisk fwrt-wrk-h3:latest

В опции ‘–v’ указывается ваш рабочий директорий в Windows, который будет отображаться в среде сборки на Ubuntu по /home/dev/extdisk. Через него можете перекидывать файлы Windows - среда сборки Ubuntu.

В опции ‘–p’ указывается локальный порт в Windows и внутренний порт среды сборки Ubuntu. Для доступа из Windows используем WinSCP или другой ssh… Так-же возможно подключить /home/dev как диск в Windows c помощью ‘SSHFS for Windows’. Для этого после установки SSHFS тыкаем иконку “Компьютер” -> “Подключить сетевой диск” и там вбиваем “\\sshfs\dev@127.0.0.1!8022”.

Остальное читать в описании к docker. Тут дублировать его опции и команды нет смысла.

Это создаст контейнер “fwrt-wrk-h3” для дальнейшей работы с ним по имени ‘fwrt-wrk-h3’ и вы кажитесь в консоли ubuntu. Выход – команда ‘exit’. :) Но можете путем вбивания десятка команд и собрать там FriendlyWrt c images…

Повторный запуск контейнера:

docker start fwrt-wrk-h3

И если хотим собрать FriendlyWrt для платы NanoPi-r1, то:

docker exec -it --privileged=true -u dev -w /home/dev/friendlywrt-h3 fwrt-wrk-h3 bash ./build.sh nanopi_r1.mk

И ждем, в первый раз это долго – несколько десятков минут… Зависит сколько ядер CPU разрешили запользовать в docker. Выходные файлы img будут в каталоге /home/dev/friendlywrt-h3/out и для eMMC большие... Можно сразу создать линк в каталог windows “SRC_H3_BASE” и не плодить overhead и объем ?:\Docker\DockerDesktop\DockerDesktop.vhdx файла.

Если надо собрать какой-то один пакет, то примерно так:

docker exec -it --privileged=true -u dev -w /home/dev/friendlywrt-h3/friendlywrt fwrt-wrk-h3 make package/network/utils/tllmnr/compile V=s

‘V=s’ не обязательно, а нужно для вывода конкретной ошибки.

'--privileged=true' требуется чтобы в контейнере были разрешения на создание устройств (в частности losetup) и mount дисков, т.к. friendlywrt не смогли написать по другому сборку images...

PS: О том, как включить Eclipse в windows для работы с исходниками будет позже, если будете хорошо себя вести :)
 

pvvx

Активный участник сообщества
Make menuconfig
Для частого доступа создаем файлик 'docker_menucfg.cmd' со строкой:
docker exec -it --privileged=true -u dev -w /home/dev/friendlywrt-h3/friendlywrt fwrt-wrk-h3 make menuconfig
И запускаем в Windows:
1585215334134.png
Прикольно смотрится окошко cmd.exe с menuconfig :)
Остальное - kernel, u-boot по аналогии...
 

pvvx

Активный участник сообщества
Для работы со своими package в Eclipse вариантов среды интеграции win-docker-ubuntu несколько. Можно сказать что вариантов бесчисленное множество на вкус и цвет...
1585216560604.png

Но видно, что на данном форуме далее запуска примеров в амбразуре Arduino ничего не интересует, то тему можно закрыть...
 
Сверху Снизу