瑞芯微DR4-RK3588源码编译及开发调试-3

609 阅读3分钟

1 RKNN_DEMO分辨率适配

1、创建指定分辨率的配置文件

    原配置文件目录:
    buildroot/output/rockchip_rk1808/build/rknn_demo-
    1.0.0/minigui/MiniGUI-1280x720.cfg
    
    在相同目录下创建 MiniGUI-480x480.cfg,将文件内容的1280x720改成
    480x480分辨率
    
2、选中指定配置cfg文件

    目录:buildroot/package/rockchip/rknn_demo/rknn_demo.mk
    1 ifeq ($(BR2_PACKAGE_RK1808),y)
    2  RKNN_DEMO_MINIGUI_CFG=minigui/MiniGUI‐480x480.cfg
    3 endif


3、清除编译记录,并重新编译完整镜像
rm buildroot/output/rockchip_rk1808/build/rknn_demo-1.0.0/.stamp_*
./build.sh

2 编译下载

硬件版型选择

./build.sh init

processing option: init

You're building on Linux
Lunch menu...pick a combo:

0. default BoardConfig.mk
1. BoardConfig-dr4-rk3588-buildroot.mk
2. BoardConfig-dr4-rk3588-debian.mk
3. BoardConfig-dr4-rk3588-ubuntu.mk
4. BoardConfig-multi-dtb-dr4-rk3588-buildroot.mk
5. BoardConfig-multi-dtb-dr4-rk3588-debian.mk
6. BoardConfig-multi-dtb-dr4-rk3588-ubuntu.mk
7. BoardConfig-multi-dtb-rd-box-rk3588-buildroot.mk
8. BoardConfig-multi-dtb-rd-box-rk3588-debian.mk
9. BoardConfig-multi-dtb-rd-box-rk3588-ubuntu.mk
10. BoardConfig-multi-dtb-rd-rk3588-buildroot.mk
11. BoardConfig-multi-dtb-rd-rk3588-debian.mk
12. BoardConfig-multi-dtb-rd-rk3588-ubuntu.mk
13. BoardConfig-multi-dtb-rp-rk3588s-buildroot.mk
14. BoardConfig-multi-dtb-rp-rk3588s-debian.mk
15. BoardConfig-multi-dtb-rp-rk3588s-ubuntu.mk
16. BoardConfig-nano-rk3588-buildroot.mk
17. BoardConfig-nano-rk3588-debian.mk
18. BoardConfig-nano-rk3588-ubuntu.mk
19. BoardConfig-rd-box-rk3588-buildroot.mk
20. BoardConfig-rd-box-rk3588-debian.mk
21. BoardConfig-rd-box-rk3588-ubuntu.mk
22. BoardConfig-rd-rk3588-buildroot.mk
23. BoardConfig-rd-rk3588-debian.mk
24. BoardConfig-rd-rk3588-ubuntu.mk
25. BoardConfig-rp-rk3588s-buildroot.mk
26. BoardConfig-rp-rk3588s-debian.mk
27. BoardConfig-rp-rk3588s-ubuntu.mk
Which would you like? [0]: 4

选择显示屏型号
vim dr4-rk3588.dts

/* lcd */
//#include "rp-lcd-mipi0-5-720-1280-v2-boxTP.dtsi"
//#include "rp-lcd-mipi0-7-720-1280.dtsi"
//#include "rp-lcd-mipi0-8-800-1280-v3.dtsi"
//#include "rp-lcd-mipi0-8-1200-1920.dtsi"
//#include "rp-lcd-mipi0-10-800-1280-v3.dtsi"
#include "rp-lcd-mipi0-10-1200-1920.dtsi"
//#include "rp-lcd-edp0-13.3-15.6-1920-1080.dtsi"
//#include "rp-lcd-edp1-13.3-15.6-1920-1080.dtsi"
//#include "rp-lcd-mipi1-gm8775-lvds-21-1920-1080.dtsi"
//#include "rp-lcd-mipi1-gm8775-lvds-10.1-1024-600.dtsi"

/* mulit lcd */
//#include "rp-multi-lcd-edp0-13.3-edp1-13.3-dp0.dtsi"
//#include "rp-multi-lcd-edp0-13.3-edp1-15.6-dp0.dtsi"

3 QT应用移植及打包编译过程

第一:查看buildroot/package/rockchip/apps/

1:编译QT qcamera 应用相关的 Config.in 与 qcamera.mk

/home/rpdzkj/rk3588/rk3588-linux/buildroot/package/rockchip/apps/qcamera

cat Config.in

config BR2_PACKAGE_QCAMERA
	bool "qcamera"
	depends on BR2_PACKAGE_QT5
	help
	  Rockchip camera application based on QT
	  
cat qcamera.mk

################################################################################
#
# qcamera
#
################################################################################

QCAMERA_VERSION = 1.0
QCAMERA_SITE = $(TOPDIR)/../app/qcamera
QCAMERA_SITE_METHOD = local

QCAMERA_LICENSE = ROCKCHIP
QCAMERA_LICENSE_FILES = LICENSE

# TODO: Add install rules in .pro
define QCAMERA_INSTALL_TARGET_CMDS
	mkdir -p $(TARGET_DIR)/usr/share/applications $(TARGET_DIR)/usr/share/icon
	$(INSTALL) -D -m 0644 $(@D)/icon_camera.png $(TARGET_DIR)/usr/share/icon/
	$(INSTALL) -D -m 0755 $(@D)/qcamera $(TARGET_DIR)/usr/bin/
	$(INSTALL) -D -m 0755 $(@D)/qcamera.desktop $(TARGET_DIR)/usr/share/applications/
endef

$(eval $(qmake-package))

2:生效qcamera应用Config.in配置文件,重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

rpdzkj@ubuntu:~/rk3588/rk3588-linux/buildroot/package/rockchip/apps$ ls
apps.mk  Config.in  multivideoplayer  qcamera  qfm  qlauncher  qplayer  qsetting

rpdzkj@ubuntu:~/rk3588/rk3588-linux/buildroot/package/rockchip/apps$ cat Config.in 
source "package/rockchip/apps/multivideoplayer/Config.in"
source "package/rockchip/apps/qcamera/Config.in"
source "package/rockchip/apps/qfm/Config.in"
source "package/rockchip/apps/qlauncher/Config.in"
source "package/rockchip/apps/qplayer/Config.in"
source "package/rockchip/apps/qsetting/Config.in"

第二:配置QT qcamera应用,使其能够编译到output,最终打包到镜像中

buildroot/configs/rockchip

rpdzkj@ubuntu:~/rk3588/rk3588-linux/buildroot/configs/rockchip$ ll
total 188
drwxrwxr-x 2 rpdzkj rpdzkj  4096 Jan 31 16:09 ./
drwxrwxr-x 3 rpdzkj rpdzkj 20480 Jan 17 15:25 ../
-rw-rw-r-- 1 rpdzkj rpdzkj   374 Jan 17 15:25 audio.config
-rw-rw-r-- 1 rpdzkj rpdzkj   365 Jan 17 15:25 audio_gst.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1160 Jan 17 15:25 base.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1330 Jan 17 15:25 base_extra.config
-rw-rw-r-- 1 rpdzkj rpdzkj  2108 Jan 17 15:25 base_nvr.config
-rw-rw-r-- 1 rpdzkj rpdzkj   539 Jan 17 15:25 benchmark.config
-rw-rw-r-- 1 rpdzkj rpdzkj   244 Jan 17 15:25 bt.config
-rw-rw-r-- 1 rpdzkj rpdzkj   123 Jan 17 15:25 busybox.config
-rw-rw-r-- 1 rpdzkj rpdzkj   344 Jan 17 15:25 busybox_minimal.config
-rw-rw-r-- 1 rpdzkj rpdzkj   116 Jan 17 15:25 camera.config
-rw-rw-r-- 1 rpdzkj rpdzkj  2171 Jan 17 15:25 camera_gst.config
-rw-rw-r-- 1 rpdzkj rpdzkj   205 Jan 17 15:25 chromium.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1734 Jan 17 15:25 debug.config
-rw-rw-r-- 1 rpdzkj rpdzkj   150 Jan 17 15:25 gdb.config
-rw-rw-r-- 1 rpdzkj rpdzkj    28 Jan 17 15:25 gpu.config
-rw-rw-r-- 1 rpdzkj rpdzkj    62 Jan 17 15:25 gpu_dummy.config
-rw-rw-r-- 1 rpdzkj rpdzkj   175 Jan 17 15:25 kernel.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1127 Jan 17 15:25 network.config
-rw-rw-r-- 1 rpdzkj rpdzkj   466 Jan 17 15:25 network_only_eth.config
-rw-rw-r-- 1 rpdzkj rpdzkj    22 Jan 17 15:25 npu2.config
-rw-rw-r-- 1 rpdzkj rpdzkj   265 Jan 17 15:25 ntfs.config
-rw-rw-r-- 1 rpdzkj rpdzkj   118 Jan 31 16:09 qt_app.config


cat qt_app.config 

BR2_PACKAGE_QCAMERA=y
BR2_PACKAGE_QLAUNCHER=y
BR2_PACKAGE_QSETTING=y
BR2_PACKAGE_QFM=y
BR2_PACKAGE_QPLAYER=y
BR2_PACKAGE_MULTIVIDEOPLAYER=y

移植的话,添加:

BR2_PACKAGE_QCAMERA=y

4 QT应用删除


第一:配置QT qcamera应用,删除BR2_PACKAGE_QCAMERA=y,使其最终编译没有QT qcamera

buildroot/configs/rockchip

rpdzkj@ubuntu:~/rk3588/rk3588-linux/buildroot/configs/rockchip$ ll
total 188
drwxrwxr-x 2 rpdzkj rpdzkj  4096 Jan 31 16:09 ./
drwxrwxr-x 3 rpdzkj rpdzkj 20480 Jan 17 15:25 ../
-rw-rw-r-- 1 rpdzkj rpdzkj   374 Jan 17 15:25 audio.config
-rw-rw-r-- 1 rpdzkj rpdzkj   365 Jan 17 15:25 audio_gst.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1160 Jan 17 15:25 base.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1330 Jan 17 15:25 base_extra.config
-rw-rw-r-- 1 rpdzkj rpdzkj  2108 Jan 17 15:25 base_nvr.config
-rw-rw-r-- 1 rpdzkj rpdzkj   539 Jan 17 15:25 benchmark.config
-rw-rw-r-- 1 rpdzkj rpdzkj   244 Jan 17 15:25 bt.config
-rw-rw-r-- 1 rpdzkj rpdzkj   123 Jan 17 15:25 busybox.config
-rw-rw-r-- 1 rpdzkj rpdzkj   344 Jan 17 15:25 busybox_minimal.config
-rw-rw-r-- 1 rpdzkj rpdzkj   116 Jan 17 15:25 camera.config
-rw-rw-r-- 1 rpdzkj rpdzkj  2171 Jan 17 15:25 camera_gst.config
-rw-rw-r-- 1 rpdzkj rpdzkj   205 Jan 17 15:25 chromium.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1734 Jan 17 15:25 debug.config
-rw-rw-r-- 1 rpdzkj rpdzkj   150 Jan 17 15:25 gdb.config
-rw-rw-r-- 1 rpdzkj rpdzkj    28 Jan 17 15:25 gpu.config
-rw-rw-r-- 1 rpdzkj rpdzkj    62 Jan 17 15:25 gpu_dummy.config
-rw-rw-r-- 1 rpdzkj rpdzkj   175 Jan 17 15:25 kernel.config
-rw-rw-r-- 1 rpdzkj rpdzkj  1127 Jan 17 15:25 network.config
-rw-rw-r-- 1 rpdzkj rpdzkj   466 Jan 17 15:25 network_only_eth.config
-rw-rw-r-- 1 rpdzkj rpdzkj    22 Jan 17 15:25 npu2.config
-rw-rw-r-- 1 rpdzkj rpdzkj   265 Jan 17 15:25 ntfs.config
-rw-rw-r-- 1 rpdzkj rpdzkj   118 Jan 31 16:09 qt_app.config


cat qt_app.config 

BR2_PACKAGE_QCAMERA=y
BR2_PACKAGE_QLAUNCHER=y
BR2_PACKAGE_QSETTING=y
BR2_PACKAGE_QFM=y
BR2_PACKAGE_QPLAYER=y
BR2_PACKAGE_MULTIVIDEOPLAYER=y

应用删除的话,移除:

BR2_PACKAGE_QCAMERA=y


第二:构建的应用包,删除qcamera

/home/rpdzkj/rk3588/rk3588-linux/buildroot/output/rockchip_rk3588/build

qcamera-1.0
qfm-1.0
qlauncher-1.0
qplayer-1.0
qsetting-1.0
qt5base-5.15.2
qt5connectivity-5.15.2
qt5declarative-5.15.2
qt5multimedia-5.15.2

mv qcamera-1.0 qcamera-1.0-bak

第三:构建的配置文件,删除.config

buildroot/output/rockchip_rk3588/.config

# configuration written to /home/rpdzkj/rk3588/rk3588-linux/buildroot/output/rockchip_rk3588/.config
#
make: Leaving directory '/home/rpdzkj/rk3588/rk3588-linux/buildroot'
615c615
< BR2_PACKAGE_QCAMERA=y
---
> # BR2_PACKAGE_QCAMERA is not set
Found old config, override it? (y/n):y


第四:最终构建的文件系统,构建不会删除之前的遗留,在/usr/share/icon下,需要手动删除icon_camera.png

/home/rpdzkj/rk3588/rk3588-linux/buildroot/output/rockchip_rk3588/target/usr/share/icon
$ ll
total 56
drwxr-xr-x  2 rpdzkj rpdzkj  4096 Jan 17 17:37 ./
drwxr-xr-x 33 rpdzkj rpdzkj  4096 Jan 17 15:25 ../
-rw-r--r--  1 rpdzkj rpdzkj  5395 Jan 17 17:31 icon_camera.png
-rw-r--r--  1 rpdzkj rpdzkj  1613 Jan 17 17:31 icon_folder.png
-rw-r--r--  1 rpdzkj rpdzkj  2287 Jan 17 17:31 icon_multivideoplayer.png
-rw-r--r--  1 rpdzkj rpdzkj  3496 Jan 17 17:31 icon_player.png
-rw-r--r--  1 rpdzkj rpdzkj  5451 Jan 17 17:31 icon_qsetting.png
-rw-r--r--  1 rpdzkj rpdzkj 19944 Jan 17 17:37 icon_testApp.png

rm  -rf icon_camera.png

第五:最终构建的文件系统,构建不会删除之前的遗留,在/usr/share/applications下,需要手动删除qcamera.desktop*

/home/rpdzkj/rk3588/rk3588-linux/buildroot/output/rockchip_rk3588/target/usr/share/applications

$ ll
total 56
drwxr-xr-x  2 rpdzkj rpdzkj 4096 Jan 31 16:16 ./
drwxr-xr-x 33 rpdzkj rpdzkj 4096 Jan 17 15:25 ../
-rw-r--r--  1 rpdzkj rpdzkj 8498 Mar 10  2021 chromium.desktop
-rwxr-xr-x  1 rpdzkj rpdzkj 4610 Jan 17 17:31 mimeapps.list*
-rwxr-xr-x  1 rpdzkj rpdzkj  133 Jan 17 17:31 multivideoplayer.desktop*
-rwxr-xr-x  1 rpdzkj rpdzkj  105 Jan 17 17:31 qcamera.desktop*
-rwxr-xr-x  1 rpdzkj rpdzkj   97 Jan 17 17:31 qfm.desktop*
-rwxr-xr-x  1 rpdzkj rpdzkj  105 Jan 17 17:31 qplayer.desktop*
-rwxr-xr-x  1 rpdzkj rpdzkj  109 Jan 17 17:31 qsetting.desktop*
-rw-r--r--  1 rpdzkj rpdzkj  276 Jan 23  2017 qv4l2.desktop
-rwxr-xr-x  1 rpdzkj rpdzkj  106 Jan 17 17:37 testApp.desktop*

rm -rf qcamera.desktop*


第六:最终构建的文件系统,构建不会删除之前的遗留,在/usr/bin下,需要手动删除qcamera

/home/rpdzkj/rk3588/rk3588-linux/buildroot/output/rockchip_rk3588/target/usr/bin

rm -rf qcamera