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
Channel created
Что такое LFA?

LFA («Linux for ARM») — руководство по самостоятельной сборке (кросс-компиляции) своего дистрибутива Linux с нуля из исходного кода для компьютеров на ARM-архитектуре. Некий аналог руководства LFS для ARM.

Для кого нужна LFA?

LFA нужна в первую очередь для тех, кто хочет понять механизм кросс-компиляции программного обеспечения для разных архитектур процессора. Например, эта система компилируется на x86_64 компьютере для ARM компьютера. Кроме того, это руководство может быть полезно тем, кто хочет изучить строение дистрибутивов Linux. Вручную собирая и настраивая ПО вы можете получить опыт разработки и администрирования ОС Linux. Кроме того, быть может, это руководство спровоцирует создание и развитие действительно качественных Linux-систем для ARM-компьютеров.

Для какого оборудования?

Существует множество компьютеров на архитектуре ARM. В LFA основной упор сделан на одноплатные ПК типа Raspberry Pi или Orange Pi, а также на ряд компьютеров типа PineBook.

LFA — это самостоятельный проект?

LFA во многом обязана руководству CLFS Embedded. Основные сборочные инструкции и программное обеспечение было взято оттуда. Однако CLFS Embedded не получает должного развития и последняя версия этого руководства для ARM датируется 2019 годом. LFA не только полностью переведена на русский язык, но ещё и во многом актуализирована, в частности, были обновлены версии программного обеспечения, предлагаемого к сборке.

На какой стадии разработки находится LFA?

На данный момент работа над проектом далека от завершения. К версии 1.0 планируется добавить в руководство ряд новых опциональных пакетов, предоставить инструкции по сборке загрузчика U-Boot, а также закончить раздел «Дополнительные материанлы», в котором будут содержаться основные сведения об ARM-компьютерах.

Для получения дополнительной информации вы можете посетить наш сайт (https://linux-for-arm.github.io/).
Сегодня в LFA была добавлена информация о генерации img-образа системы.

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

Прогресс работы над LFA 1.0 можно отследить здесь.
LFA 1.0 (версия от 30.03.2024)

Добавлен раздел по созданию загрузочных файлов LFA (boot.scr, uImage, скрипты busybox init).

PDF-версию руководства можно прочитать здесь.
Для сборки одного из компонентов загрузчика U-Boot требуется кросс-компилятор OpenRISC (or1k-elf). Инструкции по сборке второго кросс-компилятора в руководство не будут добавлены, однако будет доступен готовый пакет с кросс-компилятором.
На этой неделе в LFA (1)

(период с 25 по 31 марта)

Самым главным нововведением в LFA было добавление инструкций по генерации img-образа и дополнение инструкций по сборке загрузчика U-Boot для плат, оснащённых Allwinner SoC. Несмотря на то, что эти инструкции ещё нуждаются в тестировании и, возможно, в дополнении и исправлении, основные работы по оснащению LFA сборочными инструкциями, отсутствующими в оригинальной LFA были сделаны.

Исправлены страницы сборки нескольких пакетов (например, переработал страницу о сборке ядра Linux, исправив пути установки devicetree), а также дополнен раздел дополнительных сведений.

Количество заведённых на нашем GitHub issues увеличилось до 25, 5 из которых имеют критический уровень и помечены как bug, по 3 из 25 нуждается дополнительная помощь, 13 из 25 связаны непосредственно с документацией LFA и 7 из 25 связаны с программным обеспечением в составе LFA.

#Week
Ну что, за этот месяц (с 3 марта) было сделано ровно 100 коммитов в master-ветку репозитория с руководством. За это время были написаны основные инструкции по сборке пакетов, а также начал работу над добавлением сведений о загрузчике U-Boot (по сути LFA и задумывалась не только как адаптация руководства CLFS, но ещё и добавление, в отличие от последней, инструкций по сборке загрузчика).
На этой неделе в LFA (2)

(период с 1 по 7 апреля)

Вновь перерабатываются страницы сборки основных пакетов LFA. На этот раз переработке подвергся раздел сборки загрузчика для плат на базе Allwinner SoC: одна страница со всеми инструкциями по сборке были разделены на несколько, чтобы упростить навигацию и разграничить этапы сборки каждого из компонентов, необходимых для U-Boot. На данный момент работа над разделением ещё не завершена: нам ещё нужно закончить инструкции по установке загрузчика (опционально), установке кросс-компилятора or1k и сборке crust.

Очередной переработке подвергся и раздел по сборке ядра Linux: были добавлены рекомендации по настройке ядра, а также значительно упрощены инструкции по компиляции и установки файлов devicetree. Ну и обновили раздел «Содержимое пакета».

Исправлены инструкции по распаковке компонентов компилятора GCC. Теперь при копировании этих инструкций в терминал не будет возникать ошибка распаковки.

Добавлена страница со сведениями о проверке корректности сборки кросс-компилятора.

Добавлены инструкции по сборке пакета Wireless Tools.

Изменён формат ссылок в руководстве: теперь те ссылки, которые ведут на внешние источники, выделены жирным шрифтом.

Велись работы и над разделом дополнительных материалов: готовы первая и вторая части статей о строении дистрибутивов Linux. Первая часть обзорная и содержит информацию о наборе ПО в типичном дистрибутиве Linux, вторая рассказывает о процессе загрузки ОС на ARM-компьютерах.

С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html

#Week
На этой неделе в LFA (3)

(период с 8 по 14 апреля)

Продолжается работа над разделом дополнительных материалов: закончены страницы о загрузке Linux на ARM-компьютерах и о сборке программ из исходников, а также начал работу над страницей о системах инициализации. Она ещё не готова, но основные сведения там перечислены. Осталось только описать ряд популярных систем инициализации (systemd, SysVInit, OpenRC, runit).

Несколько страниц в руководстве дополнены разделом "Смотрите также" со ссылками как на страницы внутри LFA, так и на сторонние сайты.

Добавил раздел Roadmap с информацией о планах для реализации в будущих версиях LFA. Думаю, что он будет доступен только в нестабильных версиях руководства.

Закончил страницу с информацией о Devicetree. Я не углублялся подробно в их строение, сборку и установку. Просто описал их предназначение, типы файлов и т.д.

И пересчитал относительное время сборки для большинства пакетов.

Судя по milestone, первая версия LFA готова на 66%, открыто 12 issue, за неделю было закрыто 7 issue, 4 issue помечены как bug.

С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html

#Week
👍1
Завёл отдельный репозиторий с загрузочными скриптами для системы инициализации из BusyBox. Чтобы не перепечатывать их каждый раз из руководства.
На этой неделе в LFA (4)

(период с 15 по 21 апреля)

Самое важное изменение — это переделка страницы о создании загрузочных скриптов. Теперь вместо того, чтобы перепечатывать достаточно большие скрипты самостоятельно, был создан отдельный пакет LFA Bootscripts, скрипты из которого устанавливаются в систему с помощью системы сборки make.

Вместе с этим добавил в раздел с приложениями подраздел "Загрузочные скрипты и конфигурационные файлы", который содержит листинги скриптов и конфигов, которые создаёт или устанавливает пользователь в $LFA_SYS/etc/*.

Наконец закончил страницу о системах инициализации и начал описывать стандартные утилиты UNIX. Может быть, я когда-нибудь закончу наконец раздел дополнительных материалов, но это не точно 😄.

Дополнил раздел о создании стандартных файлов и каталогов собираемой базовой ОС: теперь предлагается создать дополнительных пользователей и групп. Их создание опционально. Оно может пригодиться тем, кто собирается устанавливать специфичное доп. ПО.

Дополнил страницу о создании файла /etc/hosts, а также написал страницу о создании начального файла /etc/fstab. Можно считать, что весь 4 раздел ("Настройка базовой системы") закончен.

Ну и то, ради чего это руководство и затевалось: сборка загрузчика. Добавил больше информации для обладателей плат на базе Allwinner SoC а именно информация о сборке crust и кросс-компилятора or1k. Также решил проблему скачивания прошивки TF-A - теперь она скачивается корректно из репозитория LFA.

Тем временем релиз LFA 1.0 всё ближе и ближе. Конкретную дату я себе не устанавливал. Первая версия выйдет тогда, когда все issue, касаемые LFA 1.0, будут закрыты.

Количество открытых issue — 6, из которых 2 помечены как bug и 1 как help wanted, закрыто 5 issue. Судя по milestone, LFA 1.0 готова на 84%. В будущем это число будет меняться в бОльшую или мЕньшую сторону, но тем не менее основные задачи выполнены (почти).

С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html

#Week
👍1
Все помеченные как bug issue были закрыты. Надеюсь, что до релиза новых не всплывёт.
Добавлены списки плат на базе SoC Broadcom и Rockchip, с которыми совместим загрузчик U-Boot. В скором времени инструкции по сборке U-Boot для этих плат будут закончены.