Radix cross Linux
120 subscribers
60 photos
2 videos
5 files
116 links
Radix cross Linux - Distribution with a cross platform build system. Дистрибутив Radix cross Linux не является разработкой "на основе". Это полностью самостоятельный дистрибутив.

Homepage: https://radix-linux.su
Download Telegram
У меня еще один вопрос. А дело вот в чем. Я никогда не соревновался с такими продуктами как Yocto и BuildRoot (у меня всего 1000 поддерживаемых пакетов). Но вот система сборки не уступает.

Что будет если я скажу, что build-system может выступать как замена Yocto и BuildRoot ?

https://openhub.net/p/radix
Система сборки (подключение инструментов)

В этой статье мы рассмотрим, как подключить к системе сборки новый toolchain и использовать его в работе над проектом простого приложения для платы Longan Nano на базе микроконтроллера GD32VF103CBT6 от компании GigaDevice.

Система сборки создавалась для обеспечения параллельной сборки множества прошивок для линеек различных устройств, построенных на CPU с разными архитектурами. Однако если возникает необходимость, к ней можно подключать новые устройства. Именно этот процесс мы и рассмотрим.

Ведь у каждого Bare-metal разработчика наверняка в шкафу лежит масса всяческих плат и проводочков, но, для каждого из них, проекты исходников разбросаны по разным каталогам и найти нужный, со временем, становится все труднее и труднее.

Если в проектах, основанных на Yocto или BuildRoot, вы поставляете свой код в чужой репозиторий, то здесь наоборот, вы подключаете систему сборки к своему дереву каталогов, где хранятся ваши личные проекты. Одним словом, система сборки дает вам несколько иной уровень независимости, ну и про импортозамещение тоже забывать нельзя.

Читать далее »

Telegram: @rxlinux
Добавлен в лист ожидания на distrowatch.com:

New distributions added to waiting list:
Radix Cross Linux. Radix Cross Linux is a Russian distribution built for embedded devices and cross-compiling to a variety of CPU architectures.

https://distrowatch.com/weekly.php?issue=20241028#waiting
👍2
Blue Pill (STM32F103C8T6)

Подключил к системе сборки Toolchain arm-none-eabi и пример для платы Blue Pill.

Пример можно найти на ветке Radix cross Linux 1.11 в каталоге doc/examples/hello-blue-pill.

Добавил краткую инструкцию по прошивке.

Не пропадать же добру!

Telegram: @rxlinux
👍3
В Телеге не разрешают тематические разделы создавать в каналах до тех пор, пока число подписчиков не превысит 200 человек.

Но хотелось бы завести несколько диалогов:
- микроконтроллеры
- загрузчики
- GPU
- минималистичный сборки для встройки
- Desktop окружение

И т. д. и т. п.
Кросс-компиляция NGINX (для случая GCC)

NGINX – это HTTP‑сервер и обратный прокси‑сервер, почтовый прокси‑сервер, а также TCP/UDP прокси‑сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных сайтов.

Однако кросс‑компиляция NGINX практически невозможна, поскольку разработанные Игорем Сысоевым скрипты конфигурирования исходного кода в большинстве случаев используют так называемую процедуру "Try Run".

Те кто знаком с утилитами Autoconf, Automake знают, что проверки необходимых параметров системы и кросс‑компилятора осуществляются различными процедурами, которые, в свою очередь, могут применять попытки сборки исходного кода (Try compile), компоновки объектных файлов (Try link) и, наконец, попытки запуска тестовых программ (Try Run).

Естественно, если речь идет о кросс‑сборке, операции "Try Run" недопустимы, ведь мы не можем запустить программу, собранную под целевую архитектуру отличающуюся от архитектуры машины сборки на самой машине сборки.

В Autotools проблемы, связанные с невозможностью запуска целевых программ на сборочной машине в некоторых случаях решаются кешированием переменных, которые могу быть переопределены пользователем в файле ‑‑cache‑file или заданы в командной строке вызова скрипта ./configure.

Скрипты Игоря Сысоева не предусматривают такого переопределения машинно‑зависимых величин. Однако величин, которые необходимо задать во время конфигурирования исходных кодов NGINX достаточно много. К ним, в первую очередь, относятся размеры типов данных. Именно с них мы и начнем.

Читать далее »

Telegram: @rxlinux
URL: https://radix-linux.su/
Дистрибутив Radix cross Linux не является разработкой "на основе". Все, начиная с инструментариев и заканчивая готовыми загрузочными образами, готовится самостоятельно из открытых исходных кодов с применением cross-компиляторов. Устройства, на которых работает система, выбираются исходя из наличия свободных драйверов и загрузчиков, а также возможности приобрести целевое оборудование в России.

ПО, авторы которого не предусмотрели возможность cross-сборки, не включается в состав системы.

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

Загрузочные образы содержат локальный репозиторий пакетов и поэтому установка системы не требует подключения к сети Internet.

Telegram: @rxlinux
Возможно ли выделить ту часть артефактов Radix, которые и являются собственно этим проектом? Какая на них лицензия (если есть)?

Разумеется можно. В проекте 4 основных репозитория:
1) sources - его клон расположен на FTP-сервере и служит для сбора оригинальных исходников из Internet (лицензия MIT).
2) Toolchains - здесь готовятся инструменты для сборки (лицензия MIT).
3) build-system - Система сборки (лицензия RADIX почти равна лицензии Apache v2 [но требование распространять главный принцип работы]), которая подключается к следующему репозиторию:
4) System - непосредственно репозиторий сборки дистрибутива (лицензия RADIX).

Первый репозиторий отчуждаемый, то есть пользователь может создать клон на собственном FTP-сервере и самостоятельно указать свой сервер как источник для репозиториев 2, 3, 4

Второй репозиторий, пользователь может клонировать и строить собственные toolchain-ы, если ему не хватает существующих.

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

Четвертый, - содержит сценарии сборки пакетов и создания образов Radix cross Linux. Данный репозиторий нацелен на сборку полной системы (возможна сборка по слоям: base, X11, MATE, ...).

Таким образом все сценарии сборки (артефакты Radix) находятся в 4-м репозитории и подпадают под лицензию (Radix cross Linux). Все используемые лицензии приведены на странице Licenses.
👍2
Следует добавить, если заказчик решит построить сборку собственного дистрибутива на собственных серверах, то мы можем оказать ему полное содействие (даже название можно сменить, если дистрибутив заказчика будет нацелен на другие задачи, не совпадающие с целями Radix cross Linux, и не будет конкурировать). Но это отдельная тема.
Прискорбно наблюдать, как в GNU Compiler Collection (GCC) добавляют компиляторы не заботясь о кросс-сборке. Так, например, компилятор Modula-2 не кросс-компиляемый. Во время конфигурирования просто забыли добавить —host триплет (что приводит к ошибке сразу) и, кроме того, утилиты mlink, mc, которые должны работать на build-машине, собираются кроссом на целевую машину. В результате, естественно, происходит ошибка при запуске mlink на build-машине (во время сборки GCC).

Подобных ошибок множество, например, при компоновке библиотеки gmp использутся левые build, host, target триплеты и без наложения pathch-ей на Makefile.in собрать кроссом GCC не получится.

Люди забывают, что (в случае GCC):
—build - это машина, на которой собирают GCC;
—host - это машина, на которой будет работать собранная коллекция компиляторов (GCC);
—target - это машина, для которой готовятся программы с помощью GCC на host-машине.

В общем, компилятор Modula-2 не готов и в сборку GCC добавлен не будет.

Rust, вообще не понятно зачем, добавили в GCC. Он (тот что в составе GCC) вообще не может готовить программы.

Отрадно то, что к компилятору языка D, в составе GCC, нет никаких претензий. Разве что runtime у него великоват.
❤1
Baikal-M (BE-1000)

На базе SoC BE-M1000 компании «Байкал Электроникс» создано множество материнских плат и плат для встроенных систем. Наверное, самыми распространенными можно считать материнские платы Эдельвейс TF307.

Сам SoC BE-1000 имеет восемь ядер Arm® Cortex™-A57, работающих на частоте 1.5 GHz, и поддерживает кэш L1, L2, and L3. Видеоподсистема включает два контроллера (LVDS and HDMI), а также HD видео декодер. Графический ускоритель Arm Mali™-T628 содержит восемь ядер.

Также SoC BE-M1000 содержит два контроллера памяти DDR3/4 и множество интерфейсов: PCIe Gen3, 10 Gb Ethernet, 1 Gb Ethernet, USB 3.0, USB 2.0, SATA 6G, eMMC/SD, I2S, SPI, UART, I2C, GPIO, и так далее. SoC соответствует технологии Arm TrustZone® и предоставляет все возможности, необходимые для создания надежных систем.

Мы получили плату TF307-MB-S-D Rev. 4.0 от компании BaikalElectronics и портировали на нее систему Radix cross Linux.

Читать далее »

Telegram: @rxlinux
🔥1
Radix cross Linux 1.11

Начинается большая работа по обновлению системы до версии 1.11. Впереди обновление практически всех пакетов, переход на новые версии GNU Libc, GCC-14.2.0, binutils-2.43.1, ...

На данный момент в системе около 1000 пакетов, так что работы предстоит много. Работа будет не быстрой.

Все будет происходить на ветке radix-1.11, начиная с ревизии 388, так что можно будет видеть последовательность обновления системы.

Telegram: @rxlinux
Telegram List

На GitHub существует репозиторий, в котором представлен:

Список интересных групп, каналов и ботов телеграма. Чаты Telegram для программистов и разработчиков, гиков, айтишников, сисадминов и девопсов, а также прочих неравнодушных к компьютерам и программированию.

Чтобы добавить собственный канал или группу, необходимо создать пулреквест.

Надеюсь, в этом списке найдется что-нибудь интересное для каждого.

Telegram: @rxlinux
👍2
Фундаментальный принцип работы Системы сборки

Сейчас многие разработчики стараются перевести свои проекты на новые системы сборки, отказываясь от Make(1).

Мы же хотим поговорить здесь именно о GNU Make, поскольку данная утилита позволяет запросто решать сложные, на первый взгляд, задачи.

Например, как можно организовать параллельную, многопоточную сборку программ, одновременно на несколько целевых машин и при этом сохранить простоту пользовательских Make-файлов?

Ответ на этот вопрос представлен в описании главного принципа работы Системы сборки Radix cross Linux.

Посмотрите, может и в ваших проектах найдется достойное место старой доброй утилите GNU Make.

Читать далее »

Telegram: @rxlinux
Большие числа

Разбирая содержимое дисков, нашел старые наработки, которые за много лет так и не привел в порядок. Часть этих работ я решил оформить в виде библиотеки функций работы с целыми, вещественными и комплексными числами повышенной разрядности.

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

Разрядность ограничена 65536 бит для арифметических операций и 16384 бит для тригонометрии. Ограничения обусловлены порядком рядов аппроксимации.

Исходный код можно найти в репозитории libmpu.git, где в файле README.md приведен простой пример вычиcлений.

Кому интересны большие числа, оставляйте комментарии и обращайтесь.

Telegram: @rxlinux
🔥2
MPU Library

Составление полной документации на библиотеку libmpu потребует много времени. Пока есть только краткое описание возможностей библиотеки в статье MPU Library.

Исходный код можно загрузить из каталога releases на FTP-сервере.

Читать далее »

Telegram: @rxlinux
This media is not supported in your browser
VIEW IN TELEGRAM
С Наступающим Новым годом.
🎄12☃3👍2
REG.RU и Let's Encrypt

Множество людей покупают доменные имена у регистраторов и создают собственные сайты. Разумеется, им необходимы SSL‑сертификаты. Однако покупать доверенные сертификаты могут не все и, зачастую, используют бесплатные Let's Encrypt SSL‑сертификаты, время жизни которых составляет 90 суток.

Для автоматического обновления SSL‑сертификатов Let's Encrypt обычно используется API управления DNS‑зоной, который предоставляет регистратор доменных имен.

Рассмотрим один из возможных способов автоматического обновления сертификатов на примере регистратора REG.RU и его API управления DNS‑зонами.

Читать далее »
🔥2