===== Сборка программной части для IMX8M_MN/MM ===== Для сборки загрузчика, ядра и файловой системы, нужно скачать три файла с {{https://disk.yandex.ru/d/yM9h7JoW7H-CYw|диска}}: SDK, firmware, dl.tar.gz, файл образа контейнера и в терминале перейти в каталог с файлами: * Распаковать sdk tar -xvf sdk_2021.04.24.tar.gz * Разрешить запуск firmware-imx-8.10.bin chmod +x firmware-imx-8.10.bin * Cкопировать firmware-imx-8.10.bin в папку sdk_2021.04.24/bootloader cp firmware-imx-8.10.bin sdk_2021.04.24/bootloader * Собрать образ контейнера sudo docker build -t px30_generic . ==== kernel ==== Для сборки kernel,dtb, нужно перейти в каталог sdk_2021.04.24 и выполнить команду: sudo docker run -v $(pwd):/BR -t px30_generic make -C /BR/kernel Результат: * //kernel/linux-imx/arch/arm64/boot/Image// * //kernel/linux-imx/arch/arm64/boot/dts/freescale/imx8mm-inmys-uq7-evk-lvds.dtb// ==== bootloader ==== Для сборки bootloader для загрузки с QSPI, нужно перейти в каталог sdk_2021.04.24 и выполнить команду: sudo docker run -v $(pwd):/BR -t px30_generic make -C /BR/bootloader Результат: * //bootloader/uboot-imx/flash.bin.fspi// Для сборки bootloader для загрузки с sd card, нужно перейти в каталог sdk_2021.04.24 и выполнить команду: sudo docker run -v $(pwd):/BR -t px30_generic make -C /BR/bootloader flash.bin.sdcard Результат: * //bootloader/uboot-imx/flash.bin.sdcard// Сделать SDcard загрузочной (установка bootloader на SDcard) dd if=bootloader/uboot-imx/flash.bin.sdcard of=/dev/sdX bs=1024 seek=33 ==== rootfs ==== Для сборки rootfs, нужно перейти в каталог sdk_2021.04.24 и выполнить команду: sudo docker run -v $(pwd):/BR -t px30_generic make -C /BR/rootfs Начнёт скачиваться buildroot. На некотором моменте загрузка завершится с ошибкой, нужно будет распаковать архив dl: sudo tar -xvf ../dl.tar.gz -C rootfs/buildroot-2020.11 Выполнить очистку проекта cd rootfs/buildroot-2020.11/ sudo make clean cd ../../ Запустить сборку второй раз: sudo docker run -v $(pwd):/BR -t px30_generic make -C /BR/rootfs Результат: //rootfs/buildroot-2020.11/output/images/rootfs.ext2// ==== создание загрузочной sd карты ==== понадобятся bootloader/uboot-imx/flash.bin.sdcard rootfs/buildroot-2020.11/output/images/rootfs.ext2 (собранные есть на яндекс диске: https://disk.yandex.ru/d/yM9h7JoW7H-CYw) sudo su cd <...>/sdk_2021.04.24 dev=/dev/sdX umount ${dev}* echo 'o n p 1 16384 +2G n p 2 4210688 +1G w'| tr ' ' '\n' | fdisk ${dev} dd if=rootfs/buildroot-2020.11/output/images/rootfs.ext2 of=${dev}1 bs=1M dd if=bootloader/uboot-imx/flash.bin.sdcard of=${dev} bs=1024 seek=33 sync Вставить sd карту в отладочную плату, установить jumper "bios_dis" (загружаться с sdcard а не с qspi) подать питание, в u-boot, после "Hit any key to stop autoboot:" ввести setenv mmcdev 1 saveenv boot ==== Советы howto ==== вот так можно собрать cmake проект: BR= #/xxx/xxx/buildroot-2020.11 cmake -DCMAKE_TOOLCHAIN_FILE=${BR}/output/host/usr/share/buildroot/toolchainfile.cmake . make в toolchainfile.cmake указаны пути к компилятору. библиотекам и includ-ам