В этой статье в качестве примера рассматривается платформа платы разработки 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.