• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 ничего не интересует, то тему можно закрыть...
 
Сверху Снизу