Что такое 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 («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 1.0 (версия от 30.03.2024)
Добавлен раздел по созданию загрузочных файлов LFA (
PDF-версию руководства можно прочитать здесь.
Добавлен раздел по созданию загрузочных файлов LFA (
boot.scr
, uImage
, скрипты busybox init).PDF-версию руководства можно прочитать здесь.
Для сборки одного из компонентов загрузчика U-Boot требуется кросс-компилятор OpenRISC (
or1k-elf
). Инструкции по сборке второго кросс-компилятора в руководство не будут добавлены, однако будет доступен готовый пакет с кросс-компилятором.На этой неделе в LFA (1)
(период с 25 по 31 марта)
Самым главным нововведением в LFA было добавление инструкций по генерации
Исправлены страницы сборки нескольких пакетов (например, переработал страницу о сборке ядра Linux, исправив пути установки devicetree), а также дополнен раздел дополнительных сведений.
Количество заведённых на нашем GitHub issues увеличилось до 25, 5 из которых имеют критический уровень и помечены как
#Week
(период с 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. На данный момент работа над разделением ещё не завершена: нам ещё нужно закончить инструкции по установке загрузчика (опционально), установке кросс-компилятора
Очередной переработке подвергся и раздел по сборке ядра Linux: были добавлены рекомендации по настройке ядра, а также значительно упрощены инструкции по компиляции и установки файлов devicetree. Ну и обновили раздел «Содержимое пакета».
Исправлены инструкции по распаковке компонентов компилятора GCC. Теперь при копировании этих инструкций в терминал не будет возникать ошибка распаковки.
Добавлена страница со сведениями о проверке корректности сборки кросс-компилятора.
Добавлены инструкции по сборке пакета Wireless Tools.
Изменён формат ссылок в руководстве: теперь те ссылки, которые ведут на внешние источники, выделены жирным шрифтом.
Велись работы и над разделом дополнительных материалов: готовы первая и вторая части статей о строении дистрибутивов Linux. Первая часть обзорная и содержит информацию о наборе ПО в типичном дистрибутиве Linux, вторая рассказывает о процессе загрузки ОС на ARM-компьютерах.
С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html
#Week
(период с 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 помечены как
#Week
(период с 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. Чтобы не перепечатывать их каждый раз из руководства.
GitHub
GitHub - Linux-for-ARM/lfa-bootscripts: Загрузочные скрипты LFA для системы инициализации из BusyBox
Загрузочные скрипты LFA для системы инициализации из BusyBox - Linux-for-ARM/lfa-bootscripts
Linux for ARM
Завёл отдельный репозиторий с загрузочными скриптами для системы инициализации из BusyBox. Чтобы не перепечатывать их каждый раз из руководства.
Теперь в руководстве используется первая версия LFA Bootscripts.
Было/стало
Было/стало
На этой неделе в LFA (4)
(период с 15 по 21 апреля)
Самое важное изменение — это переделка страницы о создании загрузочных скриптов. Теперь вместо того, чтобы перепечатывать достаточно большие скрипты самостоятельно, был создан отдельный пакет LFA Bootscripts, скрипты из которого устанавливаются в систему с помощью системы сборки
Вместе с этим добавил в раздел с приложениями подраздел "Загрузочные скрипты и конфигурационные файлы", который содержит листинги скриптов и конфигов, которые создаёт или устанавливает пользователь в
Наконец закончил страницу о системах инициализации и начал описывать стандартные утилиты UNIX. Может быть, я когда-нибудь закончу наконец раздел дополнительных материалов, но это не точно 😄.
Дополнил раздел о создании стандартных файлов и каталогов собираемой базовой ОС: теперь предлагается создать дополнительных пользователей и групп. Их создание опционально. Оно может пригодиться тем, кто собирается устанавливать специфичное доп. ПО.
Дополнил страницу о создании файла
Ну и то, ради чего это руководство и затевалось: сборка загрузчика. Добавил больше информации для обладателей плат на базе Allwinner SoC а именно информация о сборке crust и кросс-компилятора or1k. Также решил проблему скачивания прошивки TF-A - теперь она скачивается корректно из репозитория LFA.
Тем временем релиз LFA 1.0 всё ближе и ближе. Конкретную дату я себе не устанавливал. Первая версия выйдет тогда, когда все issue, касаемые LFA 1.0, будут закрыты.
Количество открытых issue — 6, из которых 2 помечены как
С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html
#Week
(период с 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
На этой неделе в LFA (5)
(период с 22 по 28 апреля)
Продолжаю шлифовать страницы по сборке программ. Исправил страницу с установкой библиотеки
Работаю над разделом о сборке загрузчика U-Boot. Переработал страницу по сборке U-Boot для эмулятора QEMU, переместив в начало только то, что нужно, а дополнительные сведения и рекомендации по сборке убрав вниз, а также начал работать над страницами о сборке загрузчика для плат на базе SoC Broadcom и Rockchip.
Перед анонсом первой версии редактирую все страницы руководства, чтобы выглядели единообразно и целостно, стараюсь исправлять ошибки и опечатки. Дату выхода первой версии руководства назначать себе не стал, LFA 1.0 выйдет тогда, когда будет готова. Может быть, это будет начало-середина июня.
#Week
(период с 22 по 28 апреля)
Продолжаю шлифовать страницы по сборке программ. Исправил страницу с установкой библиотеки
libgcc
: теперь если LFA собирается для 32-битной архитектуры, библиотека ищется в правильной директории и копируется в нужное место.Работаю над разделом о сборке загрузчика U-Boot. Переработал страницу по сборке U-Boot для эмулятора QEMU, переместив в начало только то, что нужно, а дополнительные сведения и рекомендации по сборке убрав вниз, а также начал работать над страницами о сборке загрузчика для плат на базе SoC Broadcom и Rockchip.
Перед анонсом первой версии редактирую все страницы руководства, чтобы выглядели единообразно и целостно, стараюсь исправлять ошибки и опечатки. Дату выхода первой версии руководства назначать себе не стал, LFA 1.0 выйдет тогда, когда будет готова. Может быть, это будет начало-середина июня.
С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html
#Week
На этой неделе в LFA (6)
(период с 29 апреля по 5 мая)
На выходных удалось поработать с библиотекой
Сейчас там только структуры для обработки ошибок (
На сайте руководства переработал страницу с ссылками на определённые версии LFA: теперь список доступных версий представлен в виде таблицы, содержащий имя версии LFA, описание и ссылки для чтения HTML и PDF-версии руководства.
#Week
(период с 29 апреля по 5 мая)
На выходных удалось поработать с библиотекой
lfa-rs
— Rust-крейт, содержащий основные объекты для работы с системой LFA. В планах в будущем начать работу над системой сборки LFA и несколькими другими программами, поэтому эта библиотека будет очень кстати.Сейчас там только структуры для обработки ошибок (
Error
, ErrorKind
и Result<T, Error>
) и макросы для вывода сообщений в stdout/stderr.На сайте руководства переработал страницу с ссылками на определённые версии LFA: теперь список доступных версий представлен в виде таблицы, содержащий имя версии LFA, описание и ссылки для чтения HTML и PDF-версии руководства.
С обновлённой версией LFA можно ознакомиться здесь: https://linux-for-arm.github.io/lfa/dev/index.html
#Week