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
Завёл отдельный репозиторий с загрузочными скриптами для системы инициализации из 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
Linux for ARM
UPD. Согласно milestone, релиз готов на 97%. Т.е. нужно закрыть одно issue, протестировать руководство и всё.
Несмотря на то, что над версией LFA 1.0.0 я работал несколько месяцев, я не могу назвать её стабильной на 100% - ничто не идеально. В будущих корректирующих версиях, которые я планирую выпускать так долго, пока не выйдет LFA 2.0.0 (да и вообще не хочу спешить с выходом мажорных версий), конечно, будут исправляться многие ошибки и недочёты, но по-настоящему стабильная и серьёзная версия LFA, на мой взгляд, будет не LFA 1.X, а LFA 2.X.
Условия выхода LFA 2.0.0 таковы:
1. Разработка автоматизированной системы сборки LFA. Система сборки не является заменой ручного метода сборки системы, она предназначена для упрощения тестирования сборочных инструкций LFA на корректность.
2. Расширение и конкретизация сведений о сборке загрузчика U-Boot. Я хочу добавить больше сведений о файлах
3. Возможный отказ от 32-битных архитектур семейства ARM. Вообще, я хочу оставить поддержку только ARMv8, но не знаю, решусь ли я на этот радикальный шаг к версии LFA 2.0. Возможно, во втором релизе руководства сохранятся текущие поддерживаемые архитектуры.
Кроме того мне очень хочется написать некое подобие пакетного менеджера для LFA, но это уже мечты, и я не знаю, воплощу ли их когда-либо в жизнь. Как обычно бывает, когда замышляешь что-то крупное, постоянно нет возможности это реализовать — то не хватает времени, то сил, то всего вместе.
Условия выхода LFA 2.0.0 таковы:
1. Разработка автоматизированной системы сборки LFA. Система сборки не является заменой ручного метода сборки системы, она предназначена для упрощения тестирования сборочных инструкций LFA на корректность.
2. Расширение и конкретизация сведений о сборке загрузчика U-Boot. Я хочу добавить больше сведений о файлах
boot.cmd
и uInitrd
, конкретизировать главу по сборке img-образа системы, а также добавить информацию о некоторых патчах, которые желательно бы применить к некоторым пакетам.3. Возможный отказ от 32-битных архитектур семейства ARM. Вообще, я хочу оставить поддержку только ARMv8, но не знаю, решусь ли я на этот радикальный шаг к версии LFA 2.0. Возможно, во втором релизе руководства сохранятся текущие поддерживаемые архитектуры.
Кроме того мне очень хочется написать некое подобие пакетного менеджера для LFA, но это уже мечты, и я не знаю, воплощу ли их когда-либо в жизнь. Как обычно бывает, когда замышляешь что-то крупное, постоянно нет возможности это реализовать — то не хватает времени, то сил, то всего вместе.