Найти в Дзене
Forlinx Embedded

Как создать файловую систему Buildroot и добавить системные инструменты на платформе OK3588-C?

В этой статье в качестве примера рассматривается платформа платы разработки Forlinx OK3588-C, чтобы объяснить, как использовать Buildroot для построения файловой системы и добавления общих системных инструментов, таких как OpenCV. Она подходит для разработчиков, которым необходимо настраивать встроенные системы Linux. Эта статья относится к системе Buildroot Linux 5.10.209. Цель этой статьи — показать, как вносить индивидуальные изменения в Buildroot 209. forlinx@ubuntu20:~/3-3588-SDK_Kernel_5.10.209/1-Linux5.10.209+Qt5.15.10+Forlinx_Desktop22.04/OK3588-linux-source$ ls
приложение build_secret_uboot.sh внешний вывод debian rkbin rtos ubuntu
build_close.sh build.sh предварительно собранные ядра устройства rkflash.sh инструменты uefi buildroot общая документация Makefile README.md rockdev u-boot yocto Чтобы скомпилировать buildroot, удалите rootfs.ext4 из этого каталога (переместите в другой каталог или переименуйте его) forlinx@ubuntu20:~/3-3588-SDK_Kernel_5.10.209/1-Linux5.10.209+Qt5.1
Оглавление

В этой статье в качестве примера рассматривается платформа платы разработки Forlinx OK3588-C, чтобы объяснить, как использовать Buildroot для построения файловой системы и добавления общих системных инструментов, таких как OpenCV. Она подходит для разработчиков, которым необходимо настраивать встроенные системы Linux.

1. Обзор

Эта статья относится к системе Buildroot Linux 5.10.209. Цель этой статьи — показать, как вносить индивидуальные изменения в Buildroot 209.

2. Операции

2.1 Загрузка и распаковка исходного кода SDK

forlinx@ubuntu20:~/3-3588-SDK_Kernel_5.10.209/1-Linux5.10.209+Qt5.15.10+Forlinx_Desktop22.04/OK3588-linux-source$ ls
приложение build_secret_uboot.sh внешний вывод debian rkbin rtos ubuntu
build_close.sh build.sh предварительно собранные ядра устройства rkflash.sh инструменты uefi buildroot общая документация Makefile README.md rockdev u-boot yocto

2.2 Доступна компиляция Buildroot

Чтобы скомпилировать buildroot, удалите rootfs.ext4 из этого каталога (переместите в другой каталог или переименуйте его)

forlinx@ubuntu20:~/3-3588-SDK_Kernel_5.10.209/1-Linux5.10.209+Qt5.15.10+Forlinx_Desktop22.04/OK3588-linux-source/prebuilts/forlinx/buildroot$ ls

rootfs.ext4

2.3 Компиляция элементов конфигурации по умолчанию

Чтобы обеспечить совместимость с предыдущими элементами конфигурации Buildroot по умолчанию (forlinx_ok3588_defconfig), выполните повторную компиляцию, выполнив ./build.sh или ./build.sh buildroot.

В процессе сборки, в соответствии с элементами конфигурации в forlinx_ok3588_defconfig, пакеты исходного кода программных проектов будут извлечены с сервера и помещены в каталог /buildroot/package.

forlinx@ubuntu20:~/3-3588-SDK_Kernel_5.10.209/1-Linux5.10.209+Qt5.15.10+Forlinx_Desktop22.04/OK3588-linux-source/buildroot/package$

После завершения компиляции добавляется и генерируется ряд файлов.

Сгенерируйте файлы в buildroot/output/forlinx_ok3588/

ОглавлениеИспользованиеОписаниестроитьСохраните промежуточные и временные файлы, созданные в процессе компиляции.Если эти файлы удалить, время перекомпиляции будет очень долгим.хозяинСодержит инструменты и двоичные файлы, скомпилированные для хоста системы сборки.То есть кросс-компилятор.изображенияСохраняет окончательно сгенерированные файлы образа прошивки.rootfs.ext4 — это образ системы Buildroot, который можно заменить напрямую.скриптыСодержит различные файлы скриптов, используемые Buildroot.Используется для автоматизированного построения, настройки среды или решения определенных задач.постановкаСодержит заголовочные файлы, библиотечные файлы и другие файлы, связанные с разработкой целевой системы.Требуется в процессе кросс-компиляции.цельСодержит полное содержимое корневой файловой системы (rootfs) на целевом устройстве.Содержит только файлы, необходимые во время выполнения, и не включает заголовочные файлы или библиотеки, связанные с разработкой.

После компиляции он будет напрямую упакован в update.img.

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

2.4 Добавление системных инструментов или необходимых библиотечных файлов в систему Buildroot

Возьмем в качестве примера OpenCV4:

①. Войдите в каталог Buildroot и скомпилируйте forlinx_ok3588_defconfig

сделать forlinx_ok3588_defconfig

②. Откройте графический интерфейс menuconfig и выберите проекты, которые необходимо скомпилировать.

сделать menuconfig ARCH=arm64

ПараметрыИспользованиеПараметры целиНастройте архитектуру и аппаратные параметры целевого устройства.Варианты сборкиНастройте поведение сборки Buildroot.Цепочка инструментовНастройте набор инструментов кросс-компиляцииКонфигурация системыНастройте цепочку инструментов кросс-компиляции.ЯдроНастройте ядро ​​Linux.Целевые пакетыВыберите программные пакеты для установки в целевой системе.Образы файловой системыНастройте тип создаваемого образа файловой системы.ЗагрузчикиНастройте загрузчики (например, U-Boot, GRUB).Хост-утилитыНастройте инструменты, работающие на хосте.Устаревшие параметры конфигурацииОбработка устаревших или вышедших из употребления параметров конфигурации.

Если OpenCV4 необходим сейчас, выполните прямой поиск в визуальном списке, отметьте требуемые элементы конфигурации, сохраните их и создайте новый файл .config.

③ Компиляция

Собрать пакет инструментов отдельно

сделать opencv4

Полная подборка

Непосредственно выполнить make

делать

④ После завершения полной компиляции Buildroot добавит исполняемый файл и зависимые

библиотеки OpenCV4 в целевую файловую систему, которая будет присутствовать в buildroot/output/forlinx_ok3588/image/rootfs.ext4.

В то же время Buildroot скопирует файлы библиотеки, зависящие от компиляции OpenCV4, в цепочку инструментов, которая является хост-каталогом в buildroot/output/forlinx_ok3588, упомянутом выше. При необходимости вы можете упаковать компилятор для использования.

Использование: Вы можете развернуть среду кросс-компиляции, напрямую задав переменные среды в файле environment-setup в каталоге хоста.

исходная среда-настройка

⑤ Сохраните текущую конфигурацию в defconfig

Рекомендуется сделать резервную копию и сохранить оригинальный forlinx_ok3588_defconfig.

сделать сохраненный efconfig

2.5. Замена и трансплантация

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

buildroot/output/forlinx_ok3588/host
buildroot/output/forlinx_ok3588/image/rootfs.ext4

Первоначально опубликовано на www.forlinx.net.