Orange pi PC, AllWinner H3 SoC

ARMBIAN 5.23---> 5.64 Debian jessie, stretch, Ubuntu xenial
платформа : “Orangepi PC” Linux 3.4.113-sun8i --> 4.19.x
Тестировал на дату публикации .

Сборка пакета kodi (kodi-wayland) для Mainline Linux AllWinner H3 на Armbian Bionic

собирал на OrangePiPC, sd карта 4Gb.
будем задействовать аппаратное ускорение H3-GPU + wayland

Тестировал на дату публикации.
Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY

собирается на Armbian Bionic на дату публикации это – Armbian_5.65_Orangepipc_Ubuntu_bionic_next_4.14.78.img Armbian Link.
вывод команды uname -a

Linux orangepipc 4.14.78-sunxi #412 SMP Fri Oct 26 11:37:04 CEST 2018 armv7l armv7l armv7l GNU/Linux

для компиляции модуля mali нужны хидеры ядра, хидеры есть в бета версии armbian,
переключаемся на ночную версию:

sed -i 's/apt.armbian.com/beta.armbian.com/' /etc/apt/sources.list.d/armbian.list
apt update 
apt list --upgradable
apt -y upgrade
reboot

после перезагрузки ставим хидеры ядра:

apt install -y linux-headers-next-sunxi

Если у меня всё работает так как надо и всё учтено, то нужно подробно это оговаривать – все нюансы.
Либо сделать так чтобы нюансов был минимум.

Попытка собрать пакет kodi для Mainline Linux AllWinner H3 на wayland на автомате.

git clone https://github.com/ua3nbw-cf/kodi-build.git
cd kodi-build
./build.sh

или

./kodi_build.sh all

в файле kodi_build.sh можно подредактировать версии пакетов

KODI=18.0b5-Leia
FFMPEG=4.0.3-Leia-Beta5
IPTVSIMPLE=3.5.3-Leia
WAYLAND=1.16.0
WAYLANDPROTOCOLS=1.16
WESTON=4.0.0
LIBDRM=libdrm-2.4.96

по умолчанию на выходе в папке kodi-build/build имеем пакет kodi_18.0b5-Leia_armhf.deb с предустановленным плагином pvr.iptvsimple
пакет после сборки установится автоматически.

Установка пакета на чистую систему аналогична этому посту:
Kodi 18 Mainline Linux AllWinner H3 на wayland .

Nov 26   armbian   Kodi   wayland

Создание пакета deb с использованием fpm

Устанавливать программы через make, в обход системы управления пакетами в дистрибутивах — является дурным тоном.
Установка fpm

apt -y install ruby ruby-dev rubygems build-essential
gem install --no-ri --no-rdoc fpm

Получить полный список опций позволяет команда fpm —help.
• -C: каталог, в который нужно перейти до поиска файлов.
• --prefix: путь к каталогу, в котором будут установлены файлы в выходном пакете.
• -p: имя и путь пакета. Это может переопределить имя результирующего файла.
• -n: имя, которое вы хотите использовать для пакета. Это имя отображается в инструментах упаковки платформы.
• -v: номер версии, которую вы хотите использовать для своего пакета.
• --iteration: информация о релизе пакета. Имя дистрибутива для этого номера может отличаться; обычно это способ отслеживать версию пакета, в отличие от версии приложения.
• --license: лицензионное имя пакета. Включает тип лицензии в метаданных, но не содержит связанный файл лицензии в самом пакете.
• --category: категория, к которой относится этот пакет (можно использовать для организации пакета в репозитории).
• -d: зависимости пакета (можно использовать несколько раз).
• --provides: можно использовать для указания функциональности системы, предоставляемой этим пакетом.
• --conflicts: определяет пакеты, которые несовместимы с вашим пакетом.
• --replaces: используетсядля указания пакетов, которые необходимо удалить при установке этого пакета.
• --config-files: используется для маркировки конфигурационных файлов в пакете. Как правило, менеджеры пакетов оставят такие файлы при удалении пакета.
• --directories: помечает каталог как принадлежащий пакету.
• -a: указывает архитектуру пакета.
• -m: позволяет переопределить поле сопровождающей стороны пакета. По умолчанию здесь будет использоваться username@host.
• -e: вручную просмотреть и отредактировать файл спецификации до создания пакета. Эту опцию можно использовать для корректировки любых значений по умолчанию, которые были использованы в спецификации.
• --description: описание пакета.
• -- after-install, -- before-install, -- after-remove, -- before-remove: файлы сценариев, которые должны запускаться в соответствующее время.

Существует также несколько специфичных опций для разных форматов. Для получения полного списка используйте подкоманду help.

Для примера вот так создаётся пакет kodi для Debian/GNU Linux

make -j4 install DESTDIR=/tmp/18.0b5-Leia
fpm -s dir -t deb -n kodi -v 18.0b5-Leia  -C /tmp/18.0b5-Leia

Создание пакетов в разных форматах с помощью fpm .

Nov 26   armbian   fpm

Сборка Rust на OrangePI (Armbian)

Потребовалось собрать свежий Rust.

Rust (англ. rust — ржавчина, произносится [rʌst] — раст) — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla.
Ключевые особенности языка: безопасность, скорость и параллелизм.

Это не отосится к сборке Rust на OrangePI, которая занимает более 12 часов.
1G памяти, маловато для сборки.
Используем swap:

fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon --show
free -h

вывод free -h, в процессе сборки:

root@orangepipc:~# free -h
total used free shared buff/cache available
Mem: 1.0Gi 940Mi 13Mi 0.0Ki 46Mi 35Mi
Swap: 1.5Gi 1.1Gi 418Mi

apt-get install cmake pkg-config 

git clone https://github.com/rust-lang/rust.git
cd rust
git submodule update --init --recursive --progress
./x.py build && sudo ./x.py install

За ночь должен собраться.

rustc --version --verbose


rustc 1.32.0-dev
binary: rustc
commit-hash: unknown
commit-date: unknown
host: armv7-unknown-linux-gnueabihf
release: 1.32.0-dev
LLVM version: 8.0

А так, можно установить за пять минут.

wget https://static.rust-lang.org/dist/rust-nightly-arm-unknown-linux-gnueabihf.tar.gz
tar -xvzf rust-nightly-arm-unknown-linux-gnueabihf.tar.gz
cd $HOME/rust-nightly-arm-unknown-linux-gnueabihf
sudo ./install.sh
rustc --version --verbose


rustc 1.32.0-nightly (451987d86 2018-11-01)
binary: rustc
commit-hash: 451987d86c89b38ddd8c4c124f1b9b6d4ded6983
commit-date: 2018-11-01
host: arm-unknown-linux-gnueabihf
release: 1.32.0-nightly
LLVM version: 8.0

Nov 3   armbian   Rust

Kodi 18 Mainline Linux AllWinner H3 на wayland

Тестировал на Armbian Bionic mainline kernel 4.14.y на имидже Orangepipc от armbian:
Armbian_5.65_Orangepipc_Ubuntu_bionic_next_4.14.78.img Armbian Link.

Kodi собран с опциями (про сборку kodi, распишу в отдельном посте)
-DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gles
патчи от jernejsk.

ставил на weston
Weston – это «эталонный» графический сервер от wayland который служит как пример реализации + для всяких тестов, в реальном DE (gnome, kde) он не используется

Wayland работает непосредственно поверх ядра, и позволяет клиентским приложениям осуществлять рендеринг напрямую без использования промежуточного слоя. В Wayland используется прямой рендеринг через OpenGL или OpenGL ES.

Вы должны понимать, что Weston не предназначен для повседневного использования,
а используется исключительно для тестов

Обращаю ваше внимание, все команды я выполняю от root’а на терминале PuTTY
вывод команды uname -a

Linux orangepipc 4.14.78-sunxi #412 SMP Fri Oct 26 11:37:04 CEST 2018 armv7l armv7l armv7l GNU/Linux

для компиляции модуля mali нужны хидеры ядра, хидеры есть в бета версии armbian,
переключаемся на ночную версию:

sed -i 's/apt.armbian.com/beta.armbian.com/' /etc/apt/sources.list.d/armbian.list
apt update 
apt list --upgradable
apt -y upgrade
reboot

после перезагрузки ставим хидеры ядра:

apt install -y linux-headers-next-sunxi

собираем модуль mali.ko (просто скопируйте код, и вставьте в терминал )
исходники пропатчены, patch.

wget https://ua3nbw.ru/files/DX910-SW-99002-r9p0-01rel0.tgz
tar -xvf DX910-SW-99002-r9p0-01rel0.tgz
cd $HOME/DX910-SW-99002-r9p0-01rel0/driver/src/devicedrv/mali
export CROSS_COMPILE=arm-linux-gnueabihf-
export KDIR=/lib/modules/$(uname -r)/build

make MALI_PLATFORM_FILES=platform/sunxi/sunxi.c \
    EXTRA_CFLAGS="-DCONFIG_MALI_DVFS \
    -DMALI_FAKE_PLATFORM_DEVICE=1 \
    -DCONFIG_MALI_DMA_BUF_MAP_ON_ATTACH" \
    CONFIG_MALI400=m USING_DVFS=1 

mkdir -p /lib/modules/$(uname -r)/extra
cp -PR mali.ko /lib/modules/$(uname -r)/extra/mali.ko

depmod
modprobe mali

вывод команды ls -l /dev/mali

crw------- 1 root root 10, 57 Oct 28 15:08 /dev/mali

вывод команды lsmod | grep mali

mali 475136 0

ставим блобы (просто скопируйте код, и вставьте в терминал )

cd
wget https://ua3nbw.ru/files/mali-blobs.tgz
tar -xvf mali-blobs.tgz
cd $HOME/mali-blobs
    cp -av include/wayland/* /usr/include
  mkdir -p /usr/lib/pkgconfig
    cp -PRv pkgconfig/*.pc /usr/lib/pkgconfig

  MALI="r6p2/arm/wayland/libMali.so"
  mkdir -p /usr/lib/mali
    cp -v $MALI /usr/lib/mali

    for lib in libEGL.so \
               libEGL.so.1 \
               libEGL.so.1.4 \
               libGLESv2.so \
               libGLESv2.so.2 \
               libGLESv2.so.2.0 \
               libgbm.so \
               libgbm.so.1; do
      ln -sfv libMali.so /usr/lib/mali/${lib}
        
    done

echo "/usr/lib/mali" > /etc/ld.so.conf.d/1-mali.conf
ldconfig

ставим необходимые пакеты

apt install -y xwayland  weston libavahi-client3  libbluray2  libcec4 \
 liblirc-client0 libmicrohttpd12  libnfs11  libpulse0 libpython2.7 \
 libsmbclient libxslt1.1 libass9 libcdio17  libva2 libvpx5 libopencore-amrwb0 \
 libopencore-amrnb0 libtheora0 libvo-amrwbenc0 libx264-152 libx265-146 \
 libxvidcore4 libva-drm2 libvdpau1 libfstrcmp0 libpcrecpp0v5 \
 libtag1v5-vanilla libtinyxml2.6.2v5 libva-x11-2

ставим пакет kodi

wget https://ua3nbw.ru/files/deb/kodi_18.0.3_armhf.deb
dpkg -i kodi_18.0.3_armhf.deb

для автозапуска weston-launch создаём файл

nano /lib/systemd/system/weston-launch.service

копируем и вставляем в nano следующий код.

[Unit]
Description=Weston Wayland compositor startup
RequiresMountsFor=/run

[Service]
User=root
EnvironmentFile=-/etc/default/weston
Environment="XDG_RUNTIME_DIR=/run/user/1000"
Environment="DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/dbus/user_bus_socket"
ExecStartPre=/usr/bin/sudo /bin/mkdir -p /run/user/1000/dbus
ExecStartPre=/usr/bin/sudo /bin/chown -R root:root /run/user/1000/dbus
ExecStartPre=/bin/chmod -R 0700 /run/user/1000
ExecStart=/usr/bin/sudo -E -- /bin/openvt -v -w -s -- su root -l -c "XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/weston-launch -- $OPTARGS 2>~/.weston-errors"

[Install]
WantedBy=multi-user.target

Сохраняем изменения в файле (ctrl + o) и закрываем файл (ctrl + x).
включение и запуск сервиса

systemctl enable weston-launch.service
systemctl start weston-launch.service

вывод команды systemctl status weston-launch.service


● weston-launch.service – Weston Wayland compositor startup
Loaded: loaded (/lib/systemd/system/weston-launch.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-10-18 11:48:29 UTC; 2s ago
Process: 1869 ExecStartPre=/bin/chmod -R 0700 /run/user/1000 (code=exited, status=0/SUCCESS)
Process: 1867 ExecStartPre=/usr/bin/sudo /bin/chown -R root:root /run/user/1000/dbus (code=exited, sta
Process: 1865 ExecStartPre=/usr/bin/sudo /bin/mkdir -p /run/user/1000/dbus (code=exited, status=0/SUCC
Main PID: 1870 (sudo)
Tasks: 2 (limit: 2225)
CGroup: /system.slice/weston-launch.service
├─1870 /usr/bin/sudo -E -- /bin/openvt -v -w -s -- su root -l -c XDG_RUNTIME_DIR=/run/user/10
└─1871 /bin/openvt -v -w -s -- su root -l -c XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/weston-l


если

lsmod | grep mali

выводит:
mali 475136 5
идём дальше, драйвер (модуль) mali, успешно загрузился и работает.

в левом углу weston иконка виртуального терминала
запускаем виртуальный терминал и из терминала запускаем kodi

kodi

Кому лень повторять эту ахинею, вот готовый образ для PC. img для OrangePI-PC
pass root:orangepi
user ua3nbw:orangepi
Audio на AV выход:

amixer -c 0 -q set "Line Out"  100%+ unmute
amixer -c 0 -q set "DAC"  100%+ unmute
speaker-test -twav -c2   #тест на аудио выход

Прикрыл комментарии в блоге, атака спамеров, на вопросы могу ответить на форуме orangepi.pp.ua, слежу за этой темой : mali на mainline ядре
иногда просматриваю Kodi vs mpv Video Player on Armbian

Вы должны понимать, что Weston не предназначен для повседневного использования,
а используется исключительно для тестов, гашение экрана каждые 5 минут
можно отключить добавив параметр idle-time=0 в секцию [core] в файле .config/weston.ini
Автозапуск kodi: в секцию [shell] добавить client=/usr/local/bin/kodi
weston.ini man page
Из Weston можно выйти по Ctrl+Alt+Backspace.
Про audio тут отвечал модифицировать .asoundrc

acestream: на данной сборке не проверял.
Инструкция по развертыванию acestream – acestream и TTV без aceproxy
iptvsimple тут: pvr.iptvsimple

Oct 18   Kodi   Mainline   Mali   OrangePI PC

Сборка DeadBeef на OrangePi

DeadBeef — это легковесный аудиоплеер для систем семейства GNU Linux с X11, написанный на С и С++.

◾Поддержка воспроизведения форматов mp3, ogg, flac/oga, ape, wav, wv/iso.wv, aac/m4a, alac, mpc/mpp/mp+, tta, wma, shn, sid, nsf, mod, s3m, vtx, vgm/vgz, psf, midi, audio cds, а также всех поддерживаемых ffmpeg, umb, gme, libsndfile, adplug и других
◾Не использует много памяти и ресурсов процессора
◾Поддерживается расширение функционала с помощью плагинов
◾Поддерживает плейлисты CUE, M3U и PLS
◾Поддерживается воспроизведение интернет радио, а также обычных mp3 файлов по HTTP и HTTPS.
◾Глобальные горячие клавиши
◾Поддерживает чтение и запись ID3v1, ID3v2, APEv2, vorbiscomment
◾Может поддерживать не Unicode кодировки
◾Высокое качество передискретизации с помощью libsamplerate
◾Воспроизведение с помощью Alsa, oss b PulseAudio
◾Встроенный скробблер last.fm/libre.fm
◾Поддержка нескольких списков воспроизведения
◾Восемнадцати полосный эквалайзер
◾Воспроизведение файлов прямо из архива
◾Многоканальное воспроизведение аудиофайлов
◾Локализирован на многие языки, в том числе русский

Ставил на Armbian_5.38_Orangepipc_Ubuntu_xenial_default_3.4.113_desktop

apt-get update && apt-get upgrade -y

apt-get install libasound2-dev libpulse-dev libmad0-dev libwavpack-dev libsndfile1-dev libcdio-dev libcddb2-dev automake libtool libsamplerate0-dev libgtk2.0-dev libavformat-dev libcurl4-gnutls-dev libdbus-1-dev libfaad-dev intltool libimlib2-dev libzip-dev gettext libcdparanoia0 autopoint libjansson4 libjansson-dev

git clone https://github.com/DeaDBeeF-Player/deadbeef.git
cd deadbeef
./autogen.sh
./configure
make -j4
make install

Кусок блокнота (11)

Одна кнопка и включает и выключает питание.

Подробнее:

Подробнее на сайте DI HALT
Цитирую:

При включении, конденсатор С1 разряжен. Транзистор Т1 закрыт, Т2 тоже закрыт, более того, резистор R1 дополнительно подтягивает затвор Т1 к питанию, чтобы случайно он не открылся.

Конденсатор С1 разряжен. А значит мы в данный момент времени можем считать его как КЗ. И если мы нажмем кнопку, то пока он заряжается через резистор R1 у нас затвор окажется брошен на землю.

Это будет одно мгновение, но этого хватит, чтобы транзистор Т1 распахнулся и на выходе появилось напряжение. Которое тут же попадет на затвор транзистора Т2, он тоже откроется и уже конкретно так придавит затвор Т1 к земле, фиксируясь в это положение. Через нажатую кнопку у нас С1 зарядится только до напряжения которое образует делитель R1 и R2 оно не помешает транзистору Т1 закрыться.

Отпускаем кнопку. Делитель R1 R2 оказывается отрезан и теперь ничто не мешает конденсатору С1 дозарядиться через R3 до полного напряжения питания. Падение на Т1 ничтожно. Так что там будет входное напряжение.

Схема работает, питание подается. Конденсатор заряжен. Заряженный конденсатор это фактически идеальный источник напряжения с очень малым внутренним сопротивлением.

Жмем кнопку еще раз. Теперь уже заряженный на полную конденсатор С1 вбрасывает все свое напряжение (а оно равно напряжению питания) на затвор Т1. Открытый транзистор Т2 тут вообще не отсвечивает, ведь он отделен от этой точки резистором R2 аж на 10кОм. А почти нулевое внутреннее сопротивление конденсатора на пару с его полным зарядом легко забивает низкий потенциал на затворе Т1. Там кратковременно получается напряжение питания. Транзистор Т1 закрывается.

Тут же теряет питание и затвор транзистора Т2, он тоже закрывается, отрезая возможность затвору Т1 дотянуться до живительного нуля. С1 тем временем даже не разряжается. Транзистор Т2 закрылся, а R1 действует на заряд конденсатора С1, набивая его до питания. Что только закрывает Т1.

Отпускаем кнопку. Конденсатор оказывается отрезан от R1. Но транзисторы все закрыты и заряд с С1 через R3 усосется в нагрузку. С1 разрядится. Схема готова к повторному включению.


Orange pi PC Plus крупным планом

картинки из сети

Получаем 10 free proxy

curl "https://api.morph.io/roshin8/HideMyAss_ProxyList_Scraper/data.csv?key=1QA4rN%2FSprJrgaVosf8z&query=select%20*%20from%20%22data%22%20limit%2010"

WiFi NAT Router на esp8266

Трансляция сетевых адресов (NAT) является способом переназначения одного адресного пространства в другое путем изменения информации сетевых адресов в IP (Internet Protocol). То есть заголовки пакетов изменяются в то время, когда они находятся в пути через устройство маршрутизации трафика.

Тестировал на ARMBIAN 5.40 user-built Debian GNU/Linux 9 (stretch) 4.14.17-sunxi

Компиляция и прошивка A full functional WiFi Repeater (correctly: a WiFi NAT Router) на OrangePi :

Как собирать компилятор и установить esp-open-sdk в этом посте – Сборка компилятора на основе Crosstool-NG и esp-open-sdk
качаем с гита исходники wifi repeater:

cd /opt/Espressif/esp-open-sdk
git clone https://github.com/martin-ger/esp_wifi_repeater.git
cd esp_wifi_repeater

меняем в файле Makefile окружение в двух строках 15 и 30:

BUILD_AREA = /opt/Espressif
ESPPORT		?= /dev/ttyS3

если надо, копаемся в коде и компилируем:

export PATH=/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
make

Прошивка чипа ESP8266
схема подключения модуля ESP8266 к OrangePi  – пост Прошивка ESP8266 модулей на Orange Pi
перед прошивкой кратковременно нажать кнопку сброс (подключена к RST модуля)
не забывайте включить uart3. В терминале OrangePi:

armbian-config --> System --> Hardware

включаем uart3 — это 8,10 (PA13,PA14) пины на гребёнке OrangePi
команда прошивки:

make flash

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.
Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.
0xfc000 для 1 MB.
0x3fc000 для 4 MB.
0xffc000 для 16 MB.

wget http://demo.homes-smart.ru/foto/esp_init_data_default.bin

esptool.py --port /dev/ttyS3  write_flash -fs 4m -ff 40m \
    0x7c000 esp_init_data_default.bin

Подключаемся к появившейся точке доступа MyAP. Адрес интерфейса настройки сети http://192.168.4.1/
скорость не мерял, “Чудес не бывает”. но вполне достаточно, чтобы смотреть ютюб и прочие видео.

Сборка прошивки DeviceHive для чипа ESP8266 на OrangePi

Платформа DeviceHive содержит множество различных компонентов, включая плагин Grafana. Он может собирать данные с сервера DeviceHive и отображать их с помощью различных информационных панелей, используя популярный инструмент Grafana.

Сборка компилятора на основе Crosstool-NG и esp-open-sdk
Тестировал на ARMBIAN 5.40 user-built Debian GNU/Linux 9 (stretch) 4.14.17-sunxi
Для сборки нужна флешка не менее 8Gb.
Установку кросс-компилятора и сборку производим из под обычного пользователя

sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
    flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
    sed git unzip bash help2man wget bzip2 libtool-bin
sudo mkdir /opt/Espressif

username меняем на логин текущего пользователя.

sudo chown username:root /opt/Espressif/
cd /opt/Espressif/ 
git clone --recursive https://github.com/pfalcon/esp-open-sdk
cd esp-open-sdk

в файл /opt/Espressif/esp-open-sdk/crosstool-config-overrides добавляем строки:

# CT_GMP_V_6_0_0 is not set
CT_GMP_V_5_1_3=y
CT_GMP_VERSION="5.1.3"

компилируем:

make STANDALONE=y
export PATH=/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Пару часов ожидания...
И можно собрать WiFi NAT Router или продолжим собирать DeviceHive esp8266-firmware :

cd /opt/Espressif/esp-open-sdk
git clone https://github.com/devicehive/esp8266-firmware.git
cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src

Меняем строки в файлах,
в директории /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src
сохраняя табуляцию в начале строк:

6 строка Makefile

CROSS_COMPILE	?= /opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-

54 строка Makefile

@(cd $(dir $(FIRMWARE)) && ./../../esp-utils/build/esp-flasher   /dev/ttyS3 --developer)

62 строка Makefile

@./../esp-utils/build/esp-terminal /dev/ttyS3

25 строка genbin.sh

CROSS_COMPILE="/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-"

Компилируем утилиты:

cd /opt/Espressif/esp-open-sdk/esp8266-firmware/esp-utils
make

Компилируем прошивку DeviceHive для чипа ESP8266:

cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src
make


text data bss dec hex filename
394491 2352 38728 435571 6a573 build/devicehive.elf
Extract sections...
Writing header...
Writing .text section...
Writing .data section...
Writing .rodata section...
Writing checksum...
Writing irom0 section...
Done
Firmware file is firmware/devicehive.bin, size is 413323 bytes

файл прошивки в папке
/opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src/firmware devicehive.bin

Прошивка чипа ESP8266
не забывайте включить uart3. В терминале OrangePi:

armbian-config --> System --> Hardware

включаем uart3 — это 8,10 (PA13,PA14) пины на гребёнке OrangePi

reboot
cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src

схема подключения модуля ESP8266 к OrangePi – пост Прошивка ESP8266 модулей на Orange Pi
перед прошивкой кратковременно нажать кнопку сброс (подключена к RST модуля)

make flash

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.
Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.
0xfc000 для 1 MB.
0x3fc000 для 4 MB.
0xffc000 для 16 MB.

wget http://demo.homes-smart.ru/foto/esp_init_data_default.bin

/opt/Espressif/esp-open-sdk/esp8266-firmware/esp-utils/build/esp-flasher /dev/ttyS3 0x7c000 esp_init_data_default.bin

Теперь настроить все предельно просто:
• устройство трижды перезагружается (с интервалом не более 3-х секунд), после чего превращается в точку доступа Wi-Fi;
• вы подключаетесь к этой точке и через браузер вводите все необходимые настройки;
• после применения настроек устройство автоматически перезагружается уже с новыми настройками.
запуск терминала:

make terminal

команда help выведет описание команд терминала

После успешного коннекта заходим вручную по адресу http://192.168.2.1 используя веб браузер.

Подробнее про DeviceHive

Установка MQTT-сервера Mosquitto на Debian9 (stretch)

MQTT или Message Queue Telemetry Transport – это легкий, компактный и открытый протокол обмена данными созданный для передачи данных на удалённых локациях, где требуется небольшой размер кода и есть ограничения по пропускной способности канала. Вышеперечисленные достоинства позволяют применять его в системах M2M (Машинно-Машинное взаимодействие) и IIoT (Промышленный Интернет вещей).
Основные особенности протокола MQTT:

  • Асинхронный протокол
  • Компактные сообщения
  • Работа в условиях нестабильной связи на линии передачи данных
  • Поддержка нескольких уровней качества обслуживания (QoS)
  • Легкая интеграция новых устройств

Mosquitto – это популярный MQTT-сервер (или брокер). Он прост в установке и настройке и активно поддерживается сообществом.
Установка на Debian9 (stretch)
лучше установить более современную версию пакета из репозитория проекта Mosquitto. Загрузите ключ репозитория и установите его::

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key

Добавьте URL репоизтория в файл /etc/apt/sources.list.d/

nano /etc/apt/sources.list.d/mosquitto.list

В этот пустой файл вставьте такую строку:

deb http://repo.mosquitto.org/debian stretch main
apt-get update
apt-get install mosquitto mosquitto-clients

Откройте ещё одну сессию терминала, в результате у вас должно быть два терминала. Запустите в новом терминале команду mosquitto_sub, чтобы подписаться:

mosquitto_sub -h localhost -t "sensor/temperature"

Флаг –h указывает имя хоста сервера MQTT, -t – тему. После запуска команды на экране не появится вывода, поскольку команда mosquitto_sub ждет получения сообщений. Вернитесь в первый терминал и опубликуйте сообщение:

mosquitto_pub -h localhost -t "sensor/temperature" -m 21.0

Команда mosquitto_pub использует те же опции, что и mosquitto_sub, однако в этот раз используется дополнительный флаг –m (он позволяет ввести текст сообщения). Нажмите Enter, и вы увидите в другом терминале MQTT-сообщение 21.0.

Mosquitto ставим перед установкой OpenHAB

2018   armbian   Mosquitto   MQTT   OrangePI PC

Прошивка ESP8266 модулей с помощью Platformio на Orange Pi

PlatformIO — это проект, созданный разработчиками из Украины. Он включает в себя утилиту коммандной строки, через которую можно запускать компиляцию и загрузку программ на несколько семейств микроконтроллеров (Atmel AVR, Atmel SAM, ST STM32, TI MSP430 и другие). При этом поддерживаются разные наборы библиотек(на сайте PlatformIO называются фреймворками): Arduino, Energia, mbed, а также нативный код для Atmel AVR, espressif, MSP430.

схема подключения модуля ESP8266 к OrangePi из предыдущего поста Прошивка ESP8266 модулей на Orange Pi
Устанавливаем PlatformIO

apt upgrade && apt install python-pip -y
pip install --upgrade pip
pip install setuptools
pip install -U platformio

Для начала посмотрим, какие платы поддерживаются. Для этого есть команда:

platformio boards

Создадие каталога и шаблона проекта с помощью PlatformIO
у моего модуля esp07 flash всего 512Kbyte, поэтому выбрал модуль esp01:

mkdir esp-simple
cd esp-simple
platformio init -d ./ -b esp01 --ide sublimetext

добавим в файл platformio.ini строки:

upload_port = /dev/ttyS3
upload_speed = 115200

Создадим в каталоге src/ файл Main.cpp со следующим содержимым:

#include <Esp.h>

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, LOW);
    delay(100);
    digitalWrite(LED_BUILTIN, HIGH);
    delay(900);
}

Скомпилируем его:

pio run

Процесс прошивки не сложнее процесса сборки, перед командой кратковременно нажать кнопку сброс (подключена к RST модуля)
uart3 на OrangePi должен быть включен (armbian-config > System > Hardware)

pio run -t upload
2018   armbian   ESP8266   Platformio
Ctrl + ↓ Earlier