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

Большинство современных дистрибутивов 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 с обновлениями пакетов и мелкими правками.
В то время, как сатанинский "РосКом(По/Над)зор" устраивает свой шабаш, убрал восьмую страницу «Сборка образа», заменив её на большой раздел «Сборка образа и запуск».

Дело в том, что для плат, оснащённых разными SoC, разный процесс сборки загрузочного *.img-образа, ровно как и его строение. Поэтому одной небольшой страницы с общими инструкциями оказалось недостаточно.

Сейчас над новым разделом всё ещё ведётся работа: добавлены сведения для плат, оснащённых Allwinner SoC. В будущем могут быть добавлены переводы документации U-Boot по установке загрузчика на Rockchip- и Broadcom-платы.

#ARM #OrangePi #RaspberryPi #Allwinner #Rockchip #LFA