Продолжаем рассказывать про наши кейсы и собственные продукты в серии постов #кейсы ⭐️
Сегодня речь пойдет про решение RITMS UP2DATE, узнать подробнее о котором можно по ссылке
Преимущества использования RITMS UP2DATE:
• RITMS UP2DATE спроектировано так, чтобы предотвратить сбои бизнес-процессов. Например, если обновление прервано, устройство автоматически вернется к предыдущей рабочей версии рабочего программного обеспечения.
• все коммуникации между компонентами RITMS UP2DATE всегда шифруются с помощью сертификатов и могут масштабироваться до миллионов устройств.
• с помощью пакетных обновлений по расписанию есть возможность определить собственные сценарии обновлений устройств. Например, обновлять устройство только тогда, когда оно находится в режиме ожидания.
• развертывается в любом месте и обслуживается в корпоративных серверах/закрытых ЦОД (on-premise) или в общедоступных облаках. Поскольку RITMS UP2DATE основано на технологиях с открытым исходным кодом, пользователь может сам выбрать партнера для его поддержки и сопровождения.
Сегодня речь пойдет про решение RITMS UP2DATE, узнать подробнее о котором можно по ссылке
Система обновлений IoT RITMS UP2DATE — решение для беспроводного обновления, с помощью которого осуществляется управление обновлениями системного ПО и приложений на встроенных устройствах Интернета вещей (IoT).
Преимущества использования RITMS UP2DATE:
• RITMS UP2DATE спроектировано так, чтобы предотвратить сбои бизнес-процессов. Например, если обновление прервано, устройство автоматически вернется к предыдущей рабочей версии рабочего программного обеспечения.
• все коммуникации между компонентами RITMS UP2DATE всегда шифруются с помощью сертификатов и могут масштабироваться до миллионов устройств.
• с помощью пакетных обновлений по расписанию есть возможность определить собственные сценарии обновлений устройств. Например, обновлять устройство только тогда, когда оно находится в режиме ожидания.
• развертывается в любом месте и обслуживается в корпоративных серверах/закрытых ЦОД (on-premise) или в общедоступных облаках. Поскольку RITMS UP2DATE основано на технологиях с открытым исходным кодом, пользователь может сам выбрать партнера для его поддержки и сопровождения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Есть программные задачи, требующие нетиповых решений?
Конечно же, знания, полученные на наших курсах, помогают справиться с задачами самостоятельно. Но ещё быстрее и эффективнее можно решить вопрос, если посоветоваться с нами. Наши специалисты обладают опытом ведения аналогичных проектов и могут помочь избежать типовых ошибок.
Если ваша задача относится к профилю ЦПР РТСофт, мы с радостью поможем вам советом. Присылайте свои запросы, и наши техлиды подумают над вашими проблемными вопросами, чтобы предложить нужное решение.
📍 Прислать вопрос для обсуждения можно по ссылке: https://forms.yandex.ru/u/666ff69284227c5e4dd72643/
Конечно же, знания, полученные на наших курсах, помогают справиться с задачами самостоятельно. Но ещё быстрее и эффективнее можно решить вопрос, если посоветоваться с нами. Наши специалисты обладают опытом ведения аналогичных проектов и могут помочь избежать типовых ошибок.
Если ваша задача относится к профилю ЦПР РТСофт, мы с радостью поможем вам советом. Присылайте свои запросы, и наши техлиды подумают над вашими проблемными вопросами, чтобы предложить нужное решение.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝1
Во вторник мы уже рассказывали о том, что собираем ваши вопросы для консультаций. Время рассказать об одном из интересных кейсов-вопросов, который мы получали ранее 🏆
Задача:
Основная задача - помочь спроектировать систему, которая будет осуществлять подсчет пассажиров и оценивать интенсивность пассажиропотока в метро. Цель - оптимизация загруженности посадочной платформы и избежание очередей.
Решение:
У ЦПР РТСофт имеется богатый опыт в создании AI + IoT приложений при помощи интеграции технологий машинного зрения, дополненной реальности, а также аналитики данных. В рамках данного проекта был задействован наш опыт с такими платформами, как Intel Movidius, Nvidia Jetson, Google Coral, а также ML-фреймворками: Openvino, TensorRT, TFLite.
Технологические особенности:
- сервер размещен у заказчика
- предложено использование решение на основе нашего собственного AI/ML продукта - RTSoft OMGE
- для организации своевременного обновления парка устройств “по воздуху” использован модуль RTSoft IoT Rollouts (https://up2date.ritms.online/ru)
Задача:
Основная задача - помочь спроектировать систему, которая будет осуществлять подсчет пассажиров и оценивать интенсивность пассажиропотока в метро. Цель - оптимизация загруженности посадочной платформы и избежание очередей.
Решение:
У ЦПР РТСофт имеется богатый опыт в создании AI + IoT приложений при помощи интеграции технологий машинного зрения, дополненной реальности, а также аналитики данных. В рамках данного проекта был задействован наш опыт с такими платформами, как Intel Movidius, Nvidia Jetson, Google Coral, а также ML-фреймворками: Openvino, TensorRT, TFLite.
Технологические особенности:
- сервер размещен у заказчика
- предложено использование решение на основе нашего собственного AI/ML продукта - RTSoft OMGE
- для организации своевременного обновления парка устройств “по воздуху” использован модуль RTSoft IoT Rollouts (https://up2date.ritms.online/ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Подборки каких материалов по теме Embedded Linux вам наиболее интересны?
Anonymous Poll
64%
Видео (вебинары, обучающие)
48%
Книги
21%
Новостные статьи
48%
Практические кейсы
👍1
Публикуем вторую часть подборок с обучающими материалами!
(Сохраняйте, чтобы не потерять — видео могут быть полезны при подготовке к нашим тренингам)
0/ Я.Железо: Embedded Linux для чайников и умных колонок: https://rutube.ru/video/0f705e7e4b86fb7b1f8cbce2cae1db27/?r=wd
1/ Работа с файловыми системами на Linux, системы /proc/sys: https://rutube.ru/video/c45e3b32c0aec335fe56a9ae8c4c6409/
2/ (ENG) Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics: https://rutube.ru/video/7964acd8735c996afd171672815ba4ed/
3/ (ENG) Embedded Linux on RISC-V with BeagleV, Yocto and OpenEmbedded: https://rutube.ru/video/def7ac44f0ff72ecd0832b1ca20440d8/?r=wd
4/ (ENG) Kernel and Device Driver Development - part 1 | Embedded Linux Tutorial | Embedded Engineer | Uplat: https://rutube.ru/video/084895e9ce388d364f9415e81e756df4/?r=wd
(Сохраняйте, чтобы не потерять — видео могут быть полезны при подготовке к нашим тренингам)
0/ Я.Железо: Embedded Linux для чайников и умных колонок: https://rutube.ru/video/0f705e7e4b86fb7b1f8cbce2cae1db27/?r=wd
1/ Работа с файловыми системами на Linux, системы /proc/sys: https://rutube.ru/video/c45e3b32c0aec335fe56a9ae8c4c6409/
2/ (ENG) Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics: https://rutube.ru/video/7964acd8735c996afd171672815ba4ed/
3/ (ENG) Embedded Linux on RISC-V with BeagleV, Yocto and OpenEmbedded: https://rutube.ru/video/def7ac44f0ff72ecd0832b1ca20440d8/?r=wd
4/ (ENG) Kernel and Device Driver Development - part 1 | Embedded Linux Tutorial | Embedded Engineer | Uplat: https://rutube.ru/video/084895e9ce388d364f9415e81e756df4/?r=wd
👍3
Подборка полезных материалов по Embedded Linux. Часть 3: статьи
В этой части подборки — статьи, которые помогут разобраться с драйверами и безопасностью, а также взглянуть на Embedded Linux с разных сторон. Сохраняйте, чтобы не потерять!
1️⃣ Многообразный мир embedded systems и место Embox в нем
2️⃣ Ускорение процесса разработки под Embedded Linux
3️⃣ Написание драйвера для LCD дисплея под embedded linux
4️⃣ Безопасность встраиваемых систем Linux
5️⃣ Embedded Linux в двух словах
В этой части подборки — статьи, которые помогут разобраться с драйверами и безопасностью, а также взглянуть на Embedded Linux с разных сторон. Сохраняйте, чтобы не потерять!
1️⃣ Многообразный мир embedded systems и место Embox в нем
2️⃣ Ускорение процесса разработки под Embedded Linux
3️⃣ Написание драйвера для LCD дисплея под embedded linux
4️⃣ Безопасность встраиваемых систем Linux
5️⃣ Embedded Linux в двух словах
👍4
#вопросответ
Сегодня публикуем ответы на некоторые самые частые вопросы по обучению, которые мы получаем - и которые могут возникнуть у вас
Тренинг 2. Разработка драйверов Linux
Вопрос 1. Какая система сборки используется на курсе?
В курсе дается общий обзор Buildroot, но детально ни Buildroot, ни Yocto не используются (про Yocto и Buildroot рассказывается детально в курсе по Embedded Linux). Рассмотрение Docker тоже в значительной степени вне рамок разработки драйверов.
Вопрос 2. Какие темы рекомендуется повторить или изучить перед прохождением курса?
Необходимы знания Linux в пользовательском пространстве. Умение программировать на С (в частности, работа с указателями на функции). Желательно понимание работы с вводом-выводом в POSIX (open, close, read, write, ioctl, mmap), потоков, методов синхронизации и IPC в пользовательском пространстве. Понимание структуры Makefile.
Зарегистрироваться для участия в тренинге можно по ссылке: https://linuxcourses.rtsoft.ru/
Сегодня публикуем ответы на некоторые самые частые вопросы по обучению, которые мы получаем - и которые могут возникнуть у вас
Тренинг 2. Разработка драйверов Linux
Вопрос 1. Какая система сборки используется на курсе?
В курсе дается общий обзор Buildroot, но детально ни Buildroot, ни Yocto не используются (про Yocto и Buildroot рассказывается детально в курсе по Embedded Linux). Рассмотрение Docker тоже в значительной степени вне рамок разработки драйверов.
Вопрос 2. Какие темы рекомендуется повторить или изучить перед прохождением курса?
Необходимы знания Linux в пользовательском пространстве. Умение программировать на С (в частности, работа с указателями на функции). Желательно понимание работы с вводом-выводом в POSIX (open, close, read, write, ioctl, mmap), потоков, методов синхронизации и IPC в пользовательском пространстве. Понимание структуры Makefile.
Зарегистрироваться для участия в тренинге можно по ссылке: https://linuxcourses.rtsoft.ru/
Ресурсы для подготовки к тренингам по Embedded Linux
Сегодня делимся ссылками на полезные материалы, которые помогут вам подготовиться к успешному прохождения обучения на наших тренингах
1️⃣ Buildroot — часть 1. Общие сведения, сборка минимальной системы, настройка через меню
2️⃣ Сборка Embedded Linux от Yocto для QEMU x86 и первое приложение к нему
3️⃣ Справочник по Yocto Project
4️⃣ Makefile для самых маленьких
5️⃣ Git за полчаса: руководство для начинающих
Сохраняйте, чтобы не потерять!🔖
Сегодня делимся ссылками на полезные материалы, которые помогут вам подготовиться к успешному прохождения обучения на наших тренингах
1️⃣ Buildroot — часть 1. Общие сведения, сборка минимальной системы, настройка через меню
2️⃣ Сборка Embedded Linux от Yocto для QEMU x86 и первое приложение к нему
3️⃣ Справочник по Yocto Project
4️⃣ Makefile для самых маленьких
5️⃣ Git за полчаса: руководство для начинающих
Сохраняйте, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🎯Подборка ресурсов для подготовки к тренингу “Разработка драйверов Linux”
Собрали несколько материалов для подготовки к обучению. Сохраняйте, чтобы не потерять!
1️⃣ Электронная книга “Расширения ядра Linux: драйверы и модули | Цилюрик Олег”
2️⃣ Книга “Linux Device Drivers”
3️⃣ Статья “Создание собственных драйверов под Linux”
4️⃣ Статья “Как разработать драйвер Linux с нуля”
5️⃣ Книга “Mastering Linux Device Driver Development”
Собрали несколько материалов для подготовки к обучению. Сохраняйте, чтобы не потерять!
1️⃣ Электронная книга “Расширения ядра Linux: драйверы и модули | Цилюрик Олег”
2️⃣ Книга “Linux Device Drivers”
3️⃣ Статья “Создание собственных драйверов под Linux”
4️⃣ Статья “Как разработать драйвер Linux с нуля”
5️⃣ Книга “Mastering Linux Device Driver Development”
linuxcourses.rtsoft.ru
Корпоративное обучение системному программированию на Linux
Интенсивные программы «Системное программирование для Linux» и «Разработка драйверов для Linux», которые помогают слушателям выйти на новый уровень понимания этой операционной системы.
Программа тренинга:
Тема 1. Linux Kernel
Принципы разработки ядра:
•Жизненный цикл Linux Kernel
•Подготовка патчей к публикации
•Best practices работы с Linux Kernel Community
•Опционально: модуль ядра + LAB: пример сборки
Тема 2. Исходный код
Работа с исходным кодом мобильных и встраиваемых ОС
•Системы сборки (Ninja, Autotools, CMake)
•Структура хранения сборников в ОС:
• Yocto: LAB: Пример сборки образов, добавления рецепта для пользовательского приложения (с Makefile и CMake), рецепта для модуля ядра
• Buildroot
• AOSP
Тема 3. Kernel Configuration
Сборка ядра, окружение, адаптация под платформу
•Работа с kconfig & defconfig
•Типы образов ядра
•LAB: добавление своего модуля с запуском в qemu
•Работа с cmdline: все варианты генерации, основные параметры
Тема 4. Загрузка ОС
Брингап платформы
•Типы запуска и загрузки, nfs, tftpboot; LAB: сборка uboot и загрузка в qemu, по сети
•Передача управления в userspace, initd, system; LAB: добавление systemd сервиса
•LAB: основы отладки kgdb, earlyprintk, dynamic debugfs
Тема 5. Безопасность и уязвимости
Необходимые условия для аттестации ОС
•Основные типы уязвимостей
•Источники данных о CVE
•Верификация, SBOM
•Поиск и исправление уязвимостей. LAB: Сканер уязвимостей
Продолжительность: 2 дня
Заявки на обучение можно оставить через наш сайт: https://linuxcourses.rtsoft.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Сохраняйте, чтобы не потерять!
• bootp [loadAddress] [bootFilename] — Загружает образ через сеть с использованием протокола BootP/TFTP. Если аргументы не указаны, используются значения переменных окружения loadaddr и bootfile.
• dhcp — Запрашивает IP-адрес у DHCP-сервера. Если переменная autoload установлена на yes, файл из bootfile загружается в память по адресу loadaddr через TFTP.
• ping <pingAddress> — Проверяет доступность IP-адреса. Если ответ получен, вы увидите сообщение: "host <pingAddress> is alive".
• tftpboot [loadAddress] [bootfilename] — Передает образ файла через TFTP в RAM по адресу loadAddress.
• nfs [loadAddress] [host ip addr:bootfilename] — Загружает образ через NFS в память.
• rarpboot [loadAddress] [bootfilename] — Загружает образ через RARP/TFTP в память.
• sntp — Получает дату и время с NTP-сервера, указанного в переменной ntpserverip.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3
Сохраняйте, чтобы не потерять!
• usb reset — Сбрасывает (пересканирует) контроллер USB.
• usb stop [f] — Останавливает USB; [f] — принудительная остановка.
• usb tree — Показывает дерево USB-устройств.
• usb info [dev] — Отображает доступные USB-устройства.
• usb storage — Показывает информацию о USB-накопителях.
• usb dev [dev] — Показывает или устанавливает текущее USB-устройство.
• usb part [dev] — Печатает таблицу разделов одного или всех USB-накопителей.
• usb read addr blk# cnt — Читает блоки, начиная с блока blk#, в адрес оперативной памяти addr.
• fatload usb <dev[:part]> <addr> <filename> — Загружает образ файла filename с FAT-раздела part USB-устройства dev в оперативную память по адресу addr. Если раздел не указан, предполагается раздел 1.
• ext2load usb <dev[:part]> <addr> <filename> — Загружает образ файла filename с раздела EXT2/3 USB-устройства dev в оперативную память по адресу addr. Если раздел не указан, используется раздел 1.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
К нам присоединилось большое количество новых участников, сегодня делимся полезной информацией о нашей компании.
Кто мы? Центр Программных Разработок РТСофт - компания, специализирующаяся на заказной разработке ПО и систем машинного зрения.
Чем можем быть полезны:
Образовательные курсы в области Embedded Linux и ML. Обучаем системному программированию для Linux, на выбор доступно 7 образовательных тренингов: Основы разработки встраиваемых систем на базе Embedded Linux, Разработка драйверов Linux, Адаптация AOSP для устройства, Углубленный тренинг по загрузчику, Углубленный тренинг по CI/CD и разработке системных компонент, Тренинг по 4diac, ML для Embedded.
RITMS OMEGA. Система контроля качества продукции на основе ИИ, которая помогает повышать качество продукции и контролирует соблюдение технологических операций. Походит как для предприятий с непрерывными, так и дискретными производственными циклами.
RITMS UP2DATE. Open-source решение для управления парком удаленных устройств - от умных счетчиков до носимых фитнес-трекеров.
Услуги аутсорс-разработки. Мы работаем в сферах разработки систем компьютерного зрения, ML, системного ПО и драйверов, создания систем промышленного Интернета вещей (IIoT).
По всем вопросам можно обращаться на [email protected]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Основы разработки встраиваемых систем на базе Embedded Linux: 21-22 ноября 2024 (ОНЛАЙН), 19-20 декабря 2024 (оффлайн)
Разработка драйверов Linux: 14-18 октября 2024, 2-6 декабря 2024
Углубленный тренинг по загрузчику: 28-29 ноября 2024 (ОНЛАЙН)
Углубленный тренинг по CI/CD и разработке системных компонент: 7-8 ноября 2024
Для записи на тренинги заполните форму на сайте: https://linuxcourses.rtsoft.ru/
Ждем вас на наших тренингах!
Please open Telegram to view this post
VIEW IN TELEGRAM
Embedded Linux: создаем кастомную BSP
Создание BSP — важная задача в embedded-разработке, ввиду того, что разные устройства имеют различное железо, требующее своей специфической настройки.
Системы сборки, например, Buildroot и Yocto, позволяют создавать кастомные BSP. Рассмотрим пример работы с BSP для платы Nova в Buildroot:
1. Сначала настраивается дефолтная конфигурация, например, для платы BeagleBone:
2. Затем создается своя директория для настроек платы:
3. Далее добавляются нужные конфигурации для загрузчика, ядра и device tree, которые затем будут собраны в единый образ системы.
4. После этого можно запускать сборку:
Это создаст образ, который можно загрузить на устройство. Все настройки можно сохранить в файл конфигурации, чтобы потом легко пересобрать систему:
Рекомендуемые места для хранения ваших изменений:
📌 board/<организация>/<устройство>: здесь находятся любые патчи, бинарные файлы, дополнительные шаги сборки, конфигурационные файлы для Linux, U-Boot и других компонентов.
📌 configs/<устройство>_defconfig: содержит стандартную конфигурацию для платы.
📌 packages/<организация>/<имя_пакета>: сюда можно поместить любые дополнительные пакеты для этой платы.
Создание BSP — важная задача в embedded-разработке, ввиду того, что разные устройства имеют различное железо, требующее своей специфической настройки.
BSP (Board Support Package) — это набор конфигураций и драйверов, необходимых для работы операционной системы на конкретной аппаратной платформе.
Системы сборки, например, Buildroot и Yocto, позволяют создавать кастомные BSP. Рассмотрим пример работы с BSP для платы Nova в Buildroot:
1. Сначала настраивается дефолтная конфигурация, например, для платы BeagleBone:
make beaglebone_defconfig
2. Затем создается своя директория для настроек платы:
mkdir -p board/mycompany/nova
3. Далее добавляются нужные конфигурации для загрузчика, ядра и device tree, которые затем будут собраны в единый образ системы.
4. После этого можно запускать сборку:
make
Это создаст образ, который можно загрузить на устройство. Все настройки можно сохранить в файл конфигурации, чтобы потом легко пересобрать систему:
make savedefconfig BR2_DEFCONFIG=configs/nova_defconfig
Рекомендуемые места для хранения ваших изменений:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🗿2
Коллеги, выбираем формат проведения тренинга “Углубленный тренинг по загрузчику”!
Выберите формат (даты проведения - 28-29 ноября 2024)
Anonymous Poll
54%
Онлайн (с использованием Qemu)
21%
Оффлайн
25%
Узнать результат
Обращаем внимание, что углубленный тренинг по загрузчику состоится в онлайн-формате.
Основы разработки встраиваемых систем на базе Embedded Linux: 21-22 ноября 2024 (ОНЛАЙН), 19-20 декабря 2024 (оффлайн)
Разработка драйверов Linux: 14-18 октября 2024, 2-6 декабря 2024
Углубленный тренинг по загрузчику: 28-29 ноября 2024 (ОНЛАЙН)
Записаться на тренинг можно на сайте: https://linuxcourses.rtsoft.ru/
Ждем вас на наших тренингах!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Yocto VS Buildroot для встраиваемых систем
Yocto и Buildroot - это два наиболее популярных фреймворка, которые, тем не менее, могут быть использованы по-разному в зависимости от изначальной задачи.
Yocto — это не дистрибутив Linux, а фреймворк, который позволяет разработчикам создавать адаптированные дистрибутивы Linux для различных аппаратных архитектур. Отличительная особенность - высокая гибкость. Также среди плюсов выделяют то, что Yocto широко поддерживается, обладает большим набором инструментов и SDK. Однако, минусом является то, что время сборки достаточно велико.
Вместе с тем, Buildroot упрощает процесс создания дистрибутива Linux для встраиваемых систем. Он прост в понимании и быстр, а потому будет идеальным для небольших проектов с ограниченными ресурсами. Но нужно иметь в виду, что коммьюнити вокруг Buildroot, и, соответственно, поддержка существенно меньше.
Что же выбрать?
Все зависит от проекта. Если вы работаете над большим и сложным проектом, лучшим решением будет выбор Yocto: он позволяет добавлять функциональность и настраивать под различные платформы с помощью реализации слоев, это несомненный плюс в контексте кастомизации. Также важно отметить, что Yocto поддерживается Linux Foundation.
А Buildroot отлично подойдет, если вы работаете над небольшим проектом и просто ищете быстрое и простое решение для создания встраиваемой системы.
Yocto и Buildroot - это два наиболее популярных фреймворка, которые, тем не менее, могут быть использованы по-разному в зависимости от изначальной задачи.
Yocto — это не дистрибутив Linux, а фреймворк, который позволяет разработчикам создавать адаптированные дистрибутивы Linux для различных аппаратных архитектур. Отличительная особенность - высокая гибкость. Также среди плюсов выделяют то, что Yocto широко поддерживается, обладает большим набором инструментов и SDK. Однако, минусом является то, что время сборки достаточно велико.
Вместе с тем, Buildroot упрощает процесс создания дистрибутива Linux для встраиваемых систем. Он прост в понимании и быстр, а потому будет идеальным для небольших проектов с ограниченными ресурсами. Но нужно иметь в виду, что коммьюнити вокруг Buildroot, и, соответственно, поддержка существенно меньше.
Что же выбрать?
Все зависит от проекта. Если вы работаете над большим и сложным проектом, лучшим решением будет выбор Yocto: он позволяет добавлять функциональность и настраивать под различные платформы с помощью реализации слоев, это несомненный плюс в контексте кастомизации. Также важно отметить, что Yocto поддерживается Linux Foundation.
А Buildroot отлично подойдет, если вы работаете над небольшим проектом и просто ищете быстрое и простое решение для создания встраиваемой системы.
👍4
Компилируем device tree
Для загрузчика и ядра Linux требуется двоичное представление дерева устройств (Device Tree), которое создается с помощью компилятора дерева устройств – dtc. Компиляция создает файл с расширением .dtb, который называется бинарным деревом устройств или блобом дерева устройств.
Вот как это сделать:
1. Компилятор dtc встроен в исходный код Linux в директории scripts/dtc/dtc и также доступен в виде пакета для большинства дистрибутивов Linux.
2. Чтобы скомпилировать простое дерево устройств (без использования #include), выполните команду:
⚠️ Важно: Компилятор dtc не выдает подробных сообщений об ошибках и проверяет только базовый синтаксис, поэтому ошибки в исходном файле могут быть сложными для отладки.
Более подробно погрузиться в предметную область можно на нашем курсе “Основы разработки встраиваемых систем на базе Embedded Linux”
Для загрузчика и ядра Linux требуется двоичное представление дерева устройств (Device Tree), которое создается с помощью компилятора дерева устройств – dtc. Компиляция создает файл с расширением .dtb, который называется бинарным деревом устройств или блобом дерева устройств.
Вот как это сделать:
1. Компилятор dtc встроен в исходный код Linux в директории scripts/dtc/dtc и также доступен в виде пакета для большинства дистрибутивов Linux.
2. Чтобы скомпилировать простое дерево устройств (без использования #include), выполните команду:
$ dtc simpledts-1.dts -o simpledts-1.dtb
DTC: dts->dts on file "simpledts-1.dts"
⚠️ Важно: Компилятор dtc не выдает подробных сообщений об ошибках и проверяет только базовый синтаксис, поэтому ошибки в исходном файле могут быть сложными для отладки.
Более подробно погрузиться в предметную область можно на нашем курсе “Основы разработки встраиваемых систем на базе Embedded Linux”
👍3
Управление переменными окружения в U-Boot
В U-Boot есть ряд команд для работы с переменными окружения, позволяющими управлять конфигурациями загрузки и системными настройками:
✏️printenv [name ...] — выводит значения переменных окружения. Без аргументов отображает все переменные, а если указаны имена переменных, выводит только их значения.
✏️printenv_dynamic — отображает все динамические переменные.
✏️envreset — сбрасывает все переменные окружения к заводским настройкам. Не затрагивает постоянные настройки, такие как wlanaddr или ethaddr, которые хранятся в NVRAM.
✏️saveenv — сохраняет текущие значения переменных в NVRAM, чтобы они были доступны после перезагрузки.
✏️setenv name [value] — устанавливает значение для переменной с именем name. Если значение value не указано, переменная удаляется. Если переменная динамическая, она будет сброшена на значение по умолчанию.
🔖 Более подробно погрузиться в предметную область можно на нашем курсе “Углубленный тренинг по загрузчику”
В U-Boot есть ряд команд для работы с переменными окружения, позволяющими управлять конфигурациями загрузки и системными настройками:
✏️printenv [name ...] — выводит значения переменных окружения. Без аргументов отображает все переменные, а если указаны имена переменных, выводит только их значения.
✏️printenv_dynamic — отображает все динамические переменные.
✏️envreset — сбрасывает все переменные окружения к заводским настройкам. Не затрагивает постоянные настройки, такие как wlanaddr или ethaddr, которые хранятся в NVRAM.
✏️saveenv — сохраняет текущие значения переменных в NVRAM, чтобы они были доступны после перезагрузки.
✏️setenv name [value] — устанавливает значение для переменной с именем name. Если значение value не указано, переменная удаляется. Если переменная динамическая, она будет сброшена на значение по умолчанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1