• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение MT7688AN HLK-7688A

pvvx

Активный участник сообщества
Немного уточню:
Такое думаете сработает? :)
COPY E:\NanoPi\NanoPi-R1\images-for-eflasher/* ~/friendlywrt-h3/scripts/sd-fuse
 

Алексей.

Active member
Я не могу понять вопроса?
Сначала Вы говорите что Вам известно что есть инструкция для копирования файлов и директорий в контейнер, а потом спрашиваете будет ли она работать.
А как иначе должно быть?
У меня есть уже собранные пакеты, при сборке образа, копирую и устанавливаю их, и всё это происходит однажды, когда выполняется docker build
 

pvvx

Активный участник сообщества
И самый часто встречаемый пример:
В wind-е скачан файл friendlywrt-h3-20191230.tar он 6 GB.
Иметь его копию в контейнере не хочу, а хочу развернуть:
tar xvf ./extdisk/friendlywrt-h3-20191230.tar
 

Алексей.

Active member
Вопрос в "от куда копируется".
Локальные файлы копируются в контейнер :)
Иметь его копию в контейнере не хочу, а хочу развернуть:
tar xvf ./extdisk/friendlywrt-h3-20191230.tar
Или локально развернуть и копировать при сборке,
Или копировать в контейнер, развернуть и удалить архив
 

pvvx

Активный участник сообщества
Локальные файлы копируются в контейнер :)
А где локаль в Win Docker? Где-то в глубине x:\.....\DockerDesktop\DockerDesktop.vhdx :)
Или локально развернуть и копировать при сборке,
Плодить Overhead? Каким образом я разверну в Win файловую структуру для linux?
Или копировать в контейнер, развернуть и удалить архив
Плодить Overhead?
 

pvvx

Активный участник сообщества
В основном то все вопросы по стыку разных оп.систем. Скоро они совсем сольются. Я счас именно про кучу в которой windows docker и все редакторы и прочее. А в докер-контейнере ubuntu сборщик image и ipk.
 

pvvx

Активный участник сообщества
Как я понял в docker не доделано подключение внешних дисков/разделов windows на этапе build. От этого и все Overhead. С внедрением скрипта и выходит всего два этапа для создания docker image. Первый build, потом run c опцией "-v" и commit.
Как упростить?
 

pvvx

Активный участник сообщества
Почему docker – тут и описывать нечего:
Чтобы иметь десяток готовых сред для сборки под рукой и чтобы их можно было передать работникам, которые не в силах освоить что-то более части своего заученного...
Всё инсталлировать в одной ОС уже не лезет. В Win уже не хватает environment :) И сразу всё не всегда нужно, а заново устанавливать каждый раз влом, да и помнить всё надо как оно там жило. А с docker выбрал нужное и вперед. Да и процесс установки с docker уже катит для Ардуинщика. Не понятно почему Arduino для “домохозяинов” досих пор не в контейнере…
 

pvvx

Активный участник сообщества
Текущую задачу MT7688 вполне закроет, даже с запасом. Для того, чтобы сформировать чёткое понимание о сфере применения NanoPi надо почитать их спецификации и документацию по МК. Займусь этим на досуге.
Ещё раз про fork() / vfork()

Omega2, OpenWRT : 758.9 / 733.6 us
NanoPi-R1, H3, FriendlyWrt, 1.008GHz : 540.3 / 472.8 us
NanoPi-NEO-Core, H5, FriendlyWrt, Ubuntu 16.04.6 LTS 4.14.0 : 328.8 / 314.3 us
Ryzen7 1700, docker 4 ядра, Ubuntu 18.04 : 172.5 / 83.5 us
mc200(MIPS 4KEc), очень старый OpenWRT, 200MHz : 2954.9 / 548.6 us
* Замеры зависят от загрузки системы и многих других параметров, но для сравнения достаточно.

По производительности vfork() близко к запуску и простого треда...
и это сказывается на такой параметр как отзывчивость системы в целом, т.е. основной параметр real-time системы.
Это примерно то, что внешний запрос по сети быстрее чем это время не обрабатывается...
 

pvvx

Активный участник сообщества
760 микросекунд на создание процесса на не самом производительном CPU - кошмар ?
Вы посмотрите сколько времени уходит на 1 системный вызов или на переключение контекста во взрослом CPU.
Если вы создает процессы за микросекунды - вы явно что -то делаете не так.
Во взрослом x86 CPU в 10 раз быстрее в отличии от самого крутого взрослого arm при тех-же ГГц. Видимо что-то в самом коде ядра... Об этом говорит и то, что старое ядро делало vfork() и создание треда во много раз быстрее. Наверняка очередная не поддержка имеющегося аппаратного наслоения и MMU...

Vfork() по истории был создан как оптимизация вызова в том-же стеке другого процесса. В новых версиях ядра могли и выкинуть “оптимизацию” как раздельную функцию vfork(), оставив fork() с опцией – без копирования части контекста и создания нового стека…
 

pvvx

Активный участник сообщества
А так нельзя делать. Делают умнее, но для этого надо думать.
Вот тут вы пишите обратное:
"свои приложения тесно интегрированные в итоговую систему" - тупиковый путь! У нас на работе так сделано и тоже openWRT. Большие трудности в сопровождении. Пакетная система при длительном сопровождении продукта оптимальнее, не зря ее придумали.
Впрочем каждый вправе пройти свой путь по граблям.
Межпакетное взаимодействие - это сотни fork() либо тысячи переключений контекста на одну типичную внешнюю транзакцию...
 

pvvx

Активный участник сообщества
Как минимальными ресурсами сделать доступным устройство c современной OpenWRT в местной интрасети по имени для Windows?

Т.е. нужен демон NetBios и LLMRN. Я давно писал такой для IPv4, но пока не ведаю что там надо для IPv6 и как его проще уведомлять в СИ о смене IP в интрасети.
Ещё надотъ прибавить урезанный mDNS...
Уверен что такое давно есть и готовое. Кто чего может подсказать о том где это утянуть?

PS: Самбу не предлагать – это ненужный и глючный монстр для простого устройства.
 

Stari40K

New member
Все протоколы работают по IP, но разных портах. В случае с VPN имеем виртуальный IP со всеми портами... Дальше сами разберетесь.
Смешно. Это из серии.
Я: -Вы вступили в какашку. вот там, правой ногой.
Вы: - там за углом есть кран, разберётесь.
 

pvvx

Активный участник сообщества
Смешно. Это из серии.
Я: -Вы вступили в какашку. вот там, правой ногой.
Вы: - там за углом есть кран, разберётесь.
И чего тут смешного? Предлагаете мне тут описывать всю систему построения интернет с самых основ?
 

pvvx

Активный участник сообщества
Когда соединитесь по VPN то и ваш “сервис dns”, а попросту запросы-ответы демона который работает на определенном порту, будут переброшены через VPN, если специально не запретить или не создать свою карту route.

DNS не решает блокировок c https://git.openwrt.org/. Как и не решает блокировок с https://www.adafruit.com/ и прочими. NDS провайдера отдает правильные IP, но соединения нет.
В первом случае http/https запрос остается без ответа именно чтобы вы помучались при сборке OpenWRT. Во втором случае другие финтифлюшки, более экзотические… Все варианты экзотики блокировок я изучать и описывать тут не собираюсь.
 

pvvx

Активный участник сообщества
Смешно. Это из серии.
Я: -Вы вступили в какашку. вот там, правой ногой.
Вы: - там за углом есть кран, разберётесь.
В итого мне смешно – какого фигу ваше сообщение о каких-то “преобразует имя в ип”. Вас культурно послали, чтобы не смеяться над вами.
 

pvvx

Активный участник сообщества
Так-же, если вас особо интересует почему не dns, то обратитесь на РКН – описанные ресурсы не числятся в заблокированных. По dns блокируется только порнография и подобное, для которых вы и ищете обход. Да и “советы” от вымирающего и не осознавшего этого представителя окраины как-то не особо нужны. Они всегда не в тему, да с ошибками в самой сути. :p :)
 

pvvx

Активный участник сообщества
Для сборки OpenWRT, если используется роутер типа с прошивкой от Padavan можно поступить так:
Вписываем какой бесплатный VPN:
1584926846970.png

И в “Выполнить скрипт после подключения/отключения к VPN-серверу:” дописываем:
Bash:
func_ipup()
{
#  route add -net $peer_lan netmask $peer_msk gw $IPREMOTE dev $IFNAME
route add 8.8.8.8 dev $IFNAME
route add 8.8.4.4 dev $IFNAME
# https://git.openwrt.org/
route add -net 46.101.128.0/17 dev $IFNAME
# https://www.adafruit.com/
route add -net 104.20.0.0/16 dev $IFNAME
}
func_ipdown()
{
#  route del -net $peer_lan netmask $peer_msk gw $IPREMOTE dev $IFNAME
route del 8.8.8.8 dev $IFNAME
route del 8.8.4.4 dev $IFNAME
# https://git.openwrt.org/
route del -net 46.101.128.0/17 dev $IFNAME
# https://www.adafruit.com/
route del -net 104.20.0.0/16 dev $IFNAME
}
Если у вас провайдер блокирует git.openwrt.org через DNS, а не пул 46.101.128.0/17, то строки route ... -net 46.101.128.0/17 можно закомментировать для более быстрого трафика к нему (не через тормозной бесплатный VPN)...
И в настройке WAN изменить DNS:
1584927234494.png
 
Сверху Снизу