INMYS WIKI

Инженерами для инженеров

Инструменты пользователя

Инструменты сайта


boards:nms-uq7-imx8mini:buildsw

Сборка программной части для IMX8M_MN/MM

Для сборки загрузчика, ядра и файловой системы, нужно скачать три файла с диска: 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=<path_to_buildroot>   #/xxx/xxx/buildroot-2020.11
cmake -DCMAKE_TOOLCHAIN_FILE=${BR}/output/host/usr/share/buildroot/toolchainfile.cmake .
make
в toolchainfile.cmake указаны пути к компилятору. библиотекам и includ-ам
boards/nms-uq7-imx8mini/buildsw.txt · Последнее изменение: 2022/09/08 13:03 — Komlik Ivan