Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
IoT зоопарк: прошиваем BL602
2023-04-03 16:21 | Автор: jekader | Filed under: FedoraMD
Как упоминал в прошлых записях, платформа ESP32 стала очень популярной в мире IoT решений. Существует множество FOSS проектов, позволяющих "отвязать" IoT устройство от интернета и управлять им локально - например, с помощью Home Assistant. Естественно, на рынке есть и другие производители микроконтроллеров, основное преимущество которых - цена.
Для всяких дешёвых устройств, вроде умных лампочек, это существенный параметр. Поэтому в продаже начали массово появляться устройства с дивными недокументированными микроконтроллерами, некоторые из которых даже совместимы по контактам с ESP32, но имеют другую архитектуру. Изначально, желающие установить свою любимую прошивку в такое устройство вынуждены были перепаивать микроконтроллер на поддерживаемый, но это во-первых требует прямых рук, а во вторых удорожает конечное устройство и замедляет процесс. Вскоре, началась работа над прошивками и для этих новых платформ. Всё же, не так давно и ESP8266 был ровно таким недокументированным дешёвым решением, а в нынешнее состояние пришёл лишь благодаря интересу сообщества.
Чтобы поиграться с подобной экзотикой, заказал дешёвый контроллер для RGB светодиодной ленты. Пришло вот такое:
Не стал даже его включать. Сразу извлёк плату и припаял её к UART адаптеру:
Благо, площадки были подписаны и выбрать нужные не составило труда. Единственная непонятка была с выбором BOOT режима - нигде не смог найти, на землю замыкать или на +3 вольта, но методом перебора выяснил, что для прошивки нужно подать +3 вольта.
Далее - воткнул переходник в компьютер и подключился к последовательному порту:
screen /dev/ttyUSB0 2000000
Побежали логи загрузки модуля в его родную прошивку и даже открылась какая-то консоль. Ничего интересного там нет, зато это хороший способ убедиться, что провода припаяны верно.
Подключился для интереса к точке доступа этого устройства, но web интерфейса там не было обнаружено. Производитель предлагает скачать стрёмное APK приложение для настройки устройства и его подключения к чужим серверам в интернете. Не наш метод, поэтому сразу перешёл к перепрошивке.
Наиболее популярные IoT прошивки - это Tasmota и ESPHome, однако они не поддерживают данный контроллер. Благо, существует проект OpenBeken, который поддерживает довольно большое количество китайских IoT микроконтроллеров:
- Beken - BK7231T, BK7231N, BL2028N, T34
- Bouffalo Lab - BL602
- WinnerMicro - W600, W601, W800, W801
- XR809
При наличии исходников SDK возможна поддержка и других чипов. Сообщество довольно активное, хотя способ разработки и отдаёт нулевыми: Windows как основная платформа, Visual Studio как IDE, форум как средство общения и всё такое прочее.
Но как говорится, нам шашечки или ехать? Код на гитхабе, бинарники прошивок тоже там, поэтому двинулся дальше. Скачал полный образ UART для BL602 отсюда (можно прошивать и без пайки прямо через родное приложение, для этого там же есть OTA версия)
Для самой прошивки использовал утилиту blflash которая написана по последней моде на языке Rust.
Первым делом, отключил плату и подпаял 3 вольта на ногу BOOT, затем сохранил оригинальную прошивку на всякий пожарный:
blflash dump orig_firmware.img --port /dev/ttyUSB0
Затем, прошил OpenBeken:
blflash flash OpenBL602_1.15.624.bin --port /dev/ttyUSB0
Если что-то не работает, рекомендую между запусками blflash перезапускать модуль. После успешной прошивки отпаял BOOT, подключил плату и вновь пронаблюдал за процессом загрузки через screen. Всё в норме, полёт нормальный.
Подключился к открытой точке доступа wifi, ввёл данные желаемой сети, и уже на новом IP можно настраивать модуль согласно назначению. Для этого нужно указать, на какой ноге контроллера какая функция. Удобнее это делать с использованием шаблонов, нажав кнопку "Launch Web Application":
Здесь, выбрав тип устройства, можно сразу активировать нужные функции. Так это выглядело в моём случае:
Конкретно у меня настройки не сохранялись, но не составило особого труда их ввести вручную пользуясь этой шпаргалкой. Далее можно интегрировать устройство с умным домом согласно документации и управлять им извне по MQTT или HTTP, и всё это при помощи открытой прошивки причём на RISC-V микроконтроллере.
Экспериментом остался вполне доволен. Прошивка, конечно, не столь стабильна как Tasmota, зато ничего не пришлось изобретать самому, а устройство больше не требует доступа в интернет. Можно было даже обойтись без пайки, прошив всё из родного приложения по WiFi. Значит, любой энтузиаст может смело взять практически любую подобную "умную" приблуду и вправить ей мозги, чтобы не стать потенциальной частью IoT ботнета.
Метки: IoT, microcontroller, risc-v
Своя прошивка для Ulanzi TC001
2023-02-20 18:52 | Автор: jekader | Filed under: FedoraMD
Пришло время обновить настольные часы в спальне. Основные требования - большой шрифт и точный ход. С нуля делать не имело смысла, поэтому были куплены Ulanzi TC001:
Устройство выполнено качественно. В наличии - цветная светодиодная панель 8x32, батарейка, три кнопки, датчик освещённости и пищалка. Это, собственно, не совсем часы, так как умеют из коробки отображать множество видов информации (погоду на Луне, число подписчиков на ютубе, и т.д, какие-то анимации). Функционал можно расширить, подключив устройство к софту по имени AWTRIX, позволяющему выводить на панель ещё больше всяких свистоперделок. Поигравшись вдоволь, я решил что мне всё же нужны лишь точные часы, и держать для этого Java приложение на отдельном компьютере - перебор. Поэтому решил изучить вопрос изменения прошивки, тем более в софте со всех сторон торчали уши платформы ESP32. Ещё хотелось иметь контроль над софтом, так как ботнет у себя в спальне иметь в планы не входило, а с китайскими прошивками такое часто бывает.
Изначальный поиск по гитхабу особо ничего не дал, поэтому скачал прошивку из часов и даже было начал пытаться её реверсить, чтобы понять без вскрытия корпуса, как подключена периферия.
К счастью, спустя всего пару дней всё поменялось: видимо, не мне одному пришла посылочка из Китая. Работа в сообществе закипела, произведя на свет форк проекта PixelIt:
https://github.com/aptonline/PixelIt_Ulanzi
Установил PlatformIO, склонировал репозиторий, после этого достаточно было нажать заветную кнопку Upload Filesystem Image, чтобы собралась прошивка и отправилась по USB проводу прямиком в часы. Заработала почти без нареканий, был в ней и крупный шрифт, правда не такой как мне хотелось бы.
Не беда: у нас ведь все исходники под рукой! Набросал в GIMP новые циферки, перегнал их в нужный формат и вот уже всё тикает:
Теперь всем доволен: часы работают автономно, в интернет лезут только сверить время по NTP, внешнего "мозга" для работы не требуют. При этом, при желании на них можно по сети выводить текст, картинки, и прочие глупости.
Как вывод могу отметить, что поддержка OpenSource разработки ESP32 за последние годы вышла на качественно новый уровень. Инструменты, такие как PlatformIO, позволяют прямо из VScode вести разработку и отладку сложных проектов с множеством зависимостей, а количество имеющихся готовых библиотек для всяческой периферии сильно упрощает процесс.
Это на руку и разработчикам устройств. Как уже упоминал, оригинальная прошивка была собрана абсолютно этими же инструментами, с использованием этих-же библиотек. Исходников не публиковалось, Столлман негодует, но к счастью они и не требуются, учитывая что более качественные прошивки появились за какие то пару недель с момента поступления устройства в продажу. Тем не менее надеюсь, что оригинальная прошивка благодаря OpenSource библиотекам получилась менее дырявая, чем если-б её писали с нуля на коленке.
UPD: На данный момент, оригинальный PixelIt поддерживает TC001 из коробки, включая шрифт часов, описанный в этой статье.
Метки:
Первые впечатления от RISC-V
2022-07-08 19:25 | Автор: jekader | Filed under: FedoraMD
RISC-V - довольно молодая процессорная архитектура: впервые набор команд был опубликован в 2011 году, первые микроконтроллеры появились в 2016, а первый кремний, способный запустить Linux - в 2018.
Особый интерес к этой архитектуре проявляет Китай, поэтому уже в этом году (2022) на рынке появилось множество дешёвых плат с китайскими процессорами архитектуры RISC-V, чем я и поспешил воспользоваться:
Работа с модулем SIM800C на Pine64
2021-04-07 01:58 | Автор: jekader | Filed under: FedoraMD
Интернет - штука удобная, но телефонию пока никто не отменял. Поэтому взял поиграться Pi-совместимый GSM модуль SIM800C от Waveshare и в этой статье документирую свой вполне удачный опыт.
Метки: armbian, pine64, sim800c, waveshare
Pine64 — часть 3 — оазис веселья в скучном мире СПО
2020-10-29 01:34 | Автор: jekader | Filed under: FedoraMD
Мир свободного ПО стал скучен. Казалось-бы, всё работает из коробки. Софт и драйвера пишут работники крупных компаний за зарплату, а GitHub сделал исходые коды доступными каждому школьнику. На этом фоне очень выделяется проект Pine64, пытающийся создать экосистему устройств на китайских ARM процессорах.
Релиз CentOS 8.0
2019-09-25 11:36 | Автор: jekader | Filed under: Новости
Спустя несколько месяцев после RHEL вышел долгожданный релиз CentOS 8.0, имеющий все шансы стать стабильной платформой для развёртывания приложений на ближайшие несколько лет.
Данная версия, помимо обновления пакетной базы до уровня Fedora 28, несёт с собой и AppStreams - новый способ доставки приложений, являющийся результатом проекта Fedora Modularity. Этот механизм позволяет поставлять приложения вместе с необходимыми им библиотеками, не привязанными к системным версиям.
Скачать образ установщика можно из нашего зеркала: http://repo.fedora.md/centos/8/isos/x86_64/
Метки: centos
Дедупликация с помощью VDO
2019-01-06 21:48 | Автор: jekader | Filed under: Jekader
Дедупликация - довольно интересная технология, использующаяся повсеместно в хранилищах данных для более эффективного использования дискового пространства. Несколько лет назад Red Hat приобрёл компанию Permabit, разработавшую решение для дедупликации блочных устройств в Linux под названием VDO. С тех пор, что называется "тихо и незаметно" эта технология стала доступна прямо в RHEL/CentOS и я хочу рассказать о её возможностях.
Метки: centos, deduplication, vdo
Chromium + VA-API = RPMFusion
2018-10-03 11:44 | Автор: Vasile Chelban | Filed under: Vasile
Продолжение истории о сборке RPM пакета браузера chromium с поддрежкой апаратного ускорения декодирования видео. Автора COPR репозитория несколько месяцев в сотрудничестве с коммандой RPMFusion работал над включением пакета в состав этого популярного репозитория. И, со вчера, пакет chromium-vaapi уже в updates-testing. Непростые инструкции из предыдущих постов заменяются коммандой:
dnf --enablerepo=rpmfusion-free-updates-testing install chromium-vaapi
Метки: chromium, fedora 28, video
Доменная авторизация — решение ошибок в Midnight Commander’e
2018-09-10 14:03 | Автор: Vasile Chelban | Filed under: Vasile
На моей рабочей станции (под управлением Fedora 29) используется доменная авторизация в Active Directory настроенная через winbind. Последнее важно, так как в новых установках Fedora примерно с Fedora 27 доменная авторизация использует realmd и sssd, вместо winbind. А в моем случае получаемое имя пользователя - что-то вроде "WORK\vasile". Именно так - с бэкслешем, так как это значение по умолчанию параметра "winbind separator" (см. smb.conf). Бэкслеш это еще очень популярный метод экранирования спецсимволов в строках в различных интерпретаторах, к примеру - Bourne Shell и производных. А вот к какой ошибке это приводит при использовании Midnight Commander'a:
Метки: Active Directory, fedora 28
Обновление процедуры установки Chromium VA-API
2018-08-13 16:13 | Автор: Vasile Chelban | Filed under: Vasile
Ранее я рассказывал как установить "правильную" сборку Chromium с поддержкой ускорения декодирования видео. Из за обновления видения разработчика о структуре проекта, а также из за невозможности хостинга компонентов содержащие декодер h.264 (а он пока еще очень нужен) на мощностях Fedora, то процедура чуть усложнилась. Этот Chromium уже разделен на несколько пакетов, большинство которых находятся в COPR репозитории. Но пакет с поддержкой h.264 кодека находится в GITLab.com репозитории автора (и появляется с порядочной задержкой). (далее…)
Метки: chromium, fedora 28, video