Linux for ARM
5 subscribers
17 photos
32 links
Канал разработчиков проекта «Linux for ARM»

Сайт: https://linux-for-arm.github.io/
Репозиторий: https://github.com/Linux-for-ARM/
Последняя версия: https://linux-for-arm.github.io/book/dev/index.html
Download Telegram
На этой неделе в LFA (8)

(период с 20 по 26 мая)

На этой неделе вышел в свет наш первый релиз LFA 1.0! В принципе, писать больше нечего. Версия 1.1 будет в содержать в основном обновления пакетов, исправления опечаток и дополнение инструкций по сборке загрузчика U-Boot.

Ну и конечно же ALFA (Automated Linux for ARM) — программа для сборки LFA из исходного кода. Я планирую начать работу над ней и закончить к выходу LFA 2.0. Я хочу использовать ALFA для тестирования сборочных инструкций, потому что собирать всё вручную — это долго и муторно для тестирования и работы над LFA.

Для LFA 1.1 обновил часть пакетов и дополнил список требований к хосту. Спасибо одному из читателей за обратную связь!

#Week
Please open Telegram to view this post
VIEW IN TELEGRAM
Система инициализации LFA

Большинство современных дистрибутивов Linux в качестве системы инициализации используют systemd. Есть несколько "особенных", которые вместо него используют либо SysVInit, либо OpenRC либо что-то ещё более экзотическое.

А вот в LFA ничего из этого нет! Всё дело в том, что LFA это руководство, в котором рассказывается о встраиваемой системе, поэтому применение какого-то "тяжёлого" софта, на мой взгляд, не является предпочтительным, поэтому здесь используется система инициализации из состава BusyBox. Подобно SysVInit он использует загрузочные скрипты, с примером которых вы можете ознакомиться в нашем репозитории lfa-bootscripts. В LFA 1.1 о системе инициализации BusyBox будет рассказано подробнее.

Вообще, BusyBox содержит в себе просто кучу самых разных программ (понятное дело, весьма минималистичных), объединённых в один двоичный файл. Вы можете ознакомиться с каждой из них при сборке этого пакета.

#Tips
Навигация по руководству

Устали использовать мышь для переключения на страницу вперёд/назад? Используйте клавиатуру! С помощью стрелок "Влево" и "Вправо" возможна навигация на страницу вперёд/назад, а по нажатию на клавишу s откроется строка поиска по руководству.

#Tips
Офлайн версия руководства

Если вам нужен доступ к LFA и без интернета, то вы, конечно, можете воспользоваться PDF-версией, однако она, на мой взгляд, не очень удобна по сравнению с HTML-версией. Скачайте архив с offline-html руководством и откройте файл index.html. На этом всё - больше никаких телодвижений для чтения руководства предпринимать не нужно и уж тем более не нужно устанавливать никаких серверов и прочего ПО.

#Tips
Сборка дополнительного ПО

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

Поэтому для сложного ПО рекомендуем вам поднять виртуальную машину (да ту же QEMU) и собирать там. Для этого вам нужна уже собранная по LFA система - она у вас уже есть. Всё, что вам нужно - это собрать загрузчик U-Boot для QEMU и создать ряд необходимых для него файлов, после чего сгенерировать образ полученной системы и загрузиться с него (обратите также своё внимание на то, что ядро также должно иметь поддержку эмулируемых железок в QEMU). Далее вы собираете в этой системе все зависимости, а также искомую программу, запаковываете собранные зависимости и программу в архив (и только их, но не всю систему!) и распаковываете в $LFA_SYS, т.е. туда, где содержатся файлы собранной системы LFA.

#Tips
https://wiki.freebsd.org/arm/Allwinner/booting

Информация с WiKi FreeBSD по поводу записи загрузчика (U-Boot) на компьютеры с Allwinner SoC. 3 достаточно распространённых среди одноплатников SoC Allwinner, Broadcom и Rockchip. Мб есть и другие, но я пока что встречал одноплатники именно с этими.
Please open Telegram to view this post
VIEW IN TELEGRAM
Linux for ARM 1.1.1

Корректирующий микровыпуск LFA.

Изменения:

- Исправил ссылки для скачивания файлов wget-list и md5sums
- Обновил ядро Linux до версии 6.6
- Обновил Binutils до версии 2.43

Доступны онлайн-версия, HTML-версия для локального чтения (откройте файл index.html) и PDF.

Исходный код доступен в репозитории GitHub.
Теперь для самостоятельной сборки руководства LFA требуется установить зависимость mdbook-variables. Этот пакет (Rust crate) используется в книге, чтобы не менять вручную ряд данных в руководстве, зависящих от версии LFA или используемых в ней пакетов.

Из-за непоняток с сервисом Boosty решил отказаться от него. Обычные банковские карты — наше всё.

Из нерешённого (на будущее):

- Обновление пакетов, входящих в состав LFA;
- Создание инструментария для автоматизации сборки руководства (HTML, PDF, offline HTML) и автоматизации редактирования метаданных (списки пакетов в файлах packages.toml и pkg_list.toml).
Please open Telegram to view this post
VIEW IN TELEGRAM
Теперь для генерации файлов md5sums, wget-list, md/*/pkgs/*.md применяется программа pkg. Кроме того, она может использоваться и для редактирования метаданных руководства в удобном псевдографическом режиме (файлы packages.toml и pkg_info.toml).

pkg — программа, написанная на Rust (в репозитории handbook приведена её скомпилированная версия), являющаяся заменой нескольким Python-скриптам.

Исходный код программы содержится в отдельном репозитории GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мелкое изменение на сайте: теперь по ссылке https://linux-for-arm.github.io/lfa/stable/ всегда доступна стабильная на данный момент версия LFA.

До этого на странице для чтения на стабильную версию указывала последняя опубликованная версия.
У нас в чате возник вопрос по поводу дальнейших обновлений руководства.

В планах выпустить крупный релиз LFA 2.0. Но это будет не сейчас. Могу сказать, что это будет после февраля 2025 года. Из обязательных условий выхода второй версии LFA — релиз системы автоматизированной сборки LFA. Конечно, основная идея LFA заключается в самостоятельной сборке каждого пакета из исходного кода. Однако система для автоматизации сборки нужна в первую очередь мне, потому что после каждого обновления даже мелкого пакета в руководстве выполнять полную пересборку системы для тестирования правильности обновления, конечно, такое себе.

Пока эта система сборки находится на стадии проектирования и разработки, будут выходить корректирующие версии LFA 1.X с обновлениями пакетов и мелкими правками.