{{indexmenu_n>610}} ===== Подготовка программной части для модуля NMS-SM-RK3568 без блобов (opensource), Kernel 6.1 ===== Собирать можно либо в ubuntu(20.04/22.04) либо в docker. ===== Сборка в Ubuntu 20.04/22.04 ===== ==== Подготовка ==== wget https://buildroot.org/downloads/buildroot-2023.11.1.tar.gz git clone -b nms-sm-rk3568 https://github.com/inmys/buildroot-external-inmys tar -xf buildroot-2023.11.1.tar.gz make BR2_EXTERNAL=$PWD/buildroot-external-inmys -C buildroot-2023.11.1 O=$PWD/output br_defconfig ==== Сборка ==== cd output make # ждём несколько часов Если в процессе сборки, лог завис на этапе скачивания qemu, то нужно самостоятельно скачать [[https://download.qemu.org/qemu-7.2.0.tar.xz |QEMU]] и положить в папку buildroot-2023.02.1/dl Результат: output/images/Image output/images/rk3568-inmys-smarc-evm.dtb rootfs.cpio.gz rootfs.ext2.gz ==== Изменение и пересборка rootfs ==== make menuconfig make ==== Пересборка kernel (Image/dtb) ==== make linux-rebuild ==== Подготовить toolchain c помощью которого можно кросскомпилировать программы (например Qt) ==== make sdk Результат: output/images/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz ===== Сборка в Docker ===== Для выполнения следующей инструкции, на компьютере должно быть установлено [[https://docs.docker.com/engine/install/|Docker окружение]] ==== Подготовка ==== wget https://buildroot.org/downloads/buildroot-2023.11.1.tar.gz git clone -b nms-sm-rk3568 https://github.com/inmys/buildroot-external-inmys tar -xf buildroot-2023.11.1.tar.gz # build docker image with name "buildroot-2023.11.1" docker build -t buildroot-2023.11.1 buildroot-2023.11.1/support/docker # initial config rootfs docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.11.1 make BR2_EXTERNAL=/workdir/buildroot-external-inmys -C /workdir/buildroot-2023.11.1 O=/workdir/output br_defconfig ==== Сборка ==== cd output docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.02.1 make -C /workdir/output # ждём несколько часов Результат: output/images/Image output/images/rk3568-inmys-smarc-evm.dtb rootfs.cpio.gz rootfs.ext2.gz ==== Изменение и пересборка rootfs ==== docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.02.1 make -C /workdir/output menuconfig docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.02.1 make -C /workdir/output ==== Пересборка kernel (Image/dtb) ==== docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.02.1 make -C /workdir/output linux-rebuild ==== Подготовить toolchain c помощью которого можно кросскомпилировать программы (например Qt) ==== docker run --mount type=bind,source="$(pwd)",target=/workdir --user "$(id -u):$(id -g)" -it buildroot-2023.02.1 make -C /workdir/output sdk Результат: output/images/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz ===== Дополнительно ===== ==== Созадание загрузочной SD карты ==== Скачать {{ :boards:nms-sm-rk3568:burn.tar.gz |burn.tar.gz}} tar -xf burn.tar.gz скопировать в burn файлы: Image rk3568-inmys-smarc-evm.dtb rootfs.cpio.gz sudo ./burn_sd.sh /dev/sdX ГДЕ ВМЕСТО X БУКВА КАРТЫ ПАМЯТИ ==== Консольный uart ==== Консольный uart конфигугрируется на скорости 1500000. ==== Использование toolchain для кросс-компиляции ==== Для кросс-компиляции нужен компьютер x86_64(amd64) с установленным linux, подойдут: ubuntu,debian. tar -xf aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz cd aarch64-buildroot-linux-gnu_sdk-buildroot/ ./relocate-sdk.sh Теперь: * aarch64-buildroot-linux-gnu_sdk-buildroot/bin/qmake можно использовать для сборки qt проектов. * aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake для сборки cmake проектов. о том как настроить qt creator для кросс-компиляции написано здесь (host.tar.gz == aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz) https://wiki.inmys.ru/doku.php?id=boards:nms-hh-px30:bsp Уже собранный aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz : https://disk.yandex.ru/d/P4YAk8zqebVlNg