INMYS WIKI

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

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

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


boards:nms-sm-rk3568:firmware_5.10:start

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
boards:nms-sm-rk3568:firmware_5.10:start [2024/01/29 10:49] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1boards:nms-sm-rk3568:firmware_5.10:start [2024/11/22 15:58] (текущий) – [Сборка Linux при помощи Buildroot и Docker] Артем Слепов
Строка 1: Строка 1:
 +{{indexmenu_n>510}}
 +===== NMS-SM-RK3568, Kernel 5.10 Firefly =====
 +==== Сборка Linux при помощи Buildroot и Docker ====
 +<note important>
 +Репозиторий с актуальными DTS: https://github.com/inmys/buildroot-external-inmys/tree/nms-sm-rk3568-5.10
 +</note>
  
 +<note warning>Ядро от Firefly нестабильно работает с h264. Переходим на[[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:firmware_5.10:pci_cam#%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B9_%D1%87%D0%B0%D1%81%D1%82%D0%B8_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_nms-sm-rk3568_kernel_510_%D1%81_tw6869| Radxa Kernel]]  </note>
 +Для выполнение следующей инструкции, на компьютере должно быть установлено [[https://docs.docker.com/engine/install/|Docker окружение]]
 +
 +
 +==== Подготовка окружения ====
 +  - Необходимо скачать архивы [[https://doc.inmys.ru/open?hash=4ef09a2f3d4e897a616fa0e314928006&fn=external.tar.gz|external.tar.gz]], [[https://doc.inmys.ru/open?hash=7bbc3cfaef565724c1fd0a6d957dc102&fn=kernel_5.10.tar.gz|kernel_5.10.tar.gz]], [[https://doc.inmys.ru/open?hash=3634d88f557950df694f9b85d1e97463&fn=buildroot_5.10.tar.gz|buildroot.tar.gz]], распаковать их в одну папку, перейти в папку container и собрать образ контейнера следующей командой: 
 +<code>
 +cd container
 +sudo docker build -t rk3568 .
 +</code>
 +На выходе будет образ **rk3568**, которым можно собирать все компоненты системы.
 +Далее неоходимо перейти в родительский каталог
 +<code>cd ..</code>
 +
 +
 +==== Сборка rootfs ====
 +Команды сборки
 +<code>sudo docker run -it -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t rk3568 make  rockchip_rk356x_inmys_defconfig -C buildroot</code>
 +<code>sudo docker run  -it -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t rk3568 make -C buildroot</code> Сборка может длится до часа, в зависимости от конфигурации компьютера, если возникла ошибка, связанная с host-gcc-final-ХХХ, то повторить команду сборки.
 +Результаты будут лежать в папке buildroot/output/rockchip_rk356x_inmys/images.
 +
 +==== Сборка kernel ====
 +Команды сборки:
 +<code>sudo docker run -it -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t rk3568 make ARCH=arm64 CROSS_COMPILE=/BR/buildroot/output/rockchip_rk356x_inmys/host/bin/aarch64-buildroot-linux-gnu- rockchip_inmys_defconfig -C kernel</code>
 +<code>sudo docker run  -it -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t rk3568 make ARCH=arm64 CROSS_COMPILE=/BR/buildroot/output/rockchip_rk356x_inmys/host/bin/aarch64-buildroot-linux-gnu- Image -C kernel</code>
 +Результаты будут лежать в папке kernel/arch/arm64/boot/Image. 
 +==== Сборка dtb ====
 +Команда сборки <code>sudo docker run -it -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t rk3568 make ARCH=arm64 CROSS_COMPILE=/BR/buildroot/output/rockchip_rk356x_inmys/host/bin/aarch64-buildroot-linux-gnu- rockchip/rk3568-inmys-smarc-evm.dtb -C kernel</code>
 +Результат будет лежать в папке kernel/arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dtb.
 +
 +===== Прошивка SD карты =====
 +Скачайте архив со скриптами для прошивки [[https://doc.inmys.ru/open?hash=491e2d83da0dcea7b8ebbb824efd6ccb&fn=burn_5.10.tar.gz|burn.tar.gz]]
 +  - Перейти в каталог burn <code>cd burn</code>
 +  - Создать временный каталог для монтирования карты памяти <code>mkdir /mnt/d4</code>
 +  - Скопируйте файл buildroot/output/rockchip_rk356x_inmys/images/rootfs.ext2 в каталог burn/rootfs.ext2
 +  - Скопируйте файл kernel/arch/arm64/boot/Image burn/pboot/Image
 +  - kernel/arch/aarch64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dtb burn/pboot/rk3568-inmys-smarc-evm.dtb
 +  - Выполните команду: <code>cp burn/pboot/rk3568-inmys-smarc-evm.dtb burn/pboot/rk-kernel.dtb</code>
 +  - Выполните команду <code>sudo ./burn_sd.sh /dev/sdX</code> __**ГДЕ ВМЕСТО X БУКВА КАРТЫ ПАМЯТИ**__
 +
 +===== Проверка =====
 +Для проверки установки видео-драйверов, выполните следующие команды:
 +<code>
 +uname -a
 +gst-inspect-1.0 | grep mpph
 +</code>
 +Корректный результат:
 +<code>
 +# uname -a
 +Linux rk3568 5.10.160 #7 SMP Tue Jan 30 14:22:12 UTC 2024 aarch64 GNU/Linux
 +# gst-inspect-1.0 | grep mpph
 +rockchipmpp:  mpph264enc: Rockchip Mpp H264 Encoder
 +rockchipmpp:  mpph265enc: Rockchip Mpp H265 Encoder
 +</code>
 +
 +Для записи видео, рекомендуется увеличить чувствительность камеры (для проверки используется imx219):
 +<code>
 +v4l2-ctl -c gain=2000
 +</code>
 +Запись в файл output.mp4:
 +<code>
 +gst-launch-1.0 -e v4l2src device=/dev/video1 ! videoconvert ! mpph264enc ! h264parse ! qtmux ! filesink location=output.mp4
 +</code>