IPC SDK使用教程

开发环境硬件配置建议

  • 64 位 CPU

  • Ubuntu20.04系统

  • 8GB 内存

  • 40GB 空闲空间用来编译

软件配置

SDK获取

发送邮件至 support@neardi.com 获取相关开发资料

下载完成后,在解压前先查看 MD5 码和LKD3588-SDK-Linux-IPC-V1.0.tar.gz.md5sum中是否一致:

$ md5sum LKD3588-SDK-Linux-IPC-V1.0.tar.gz
******************************** LKD3588-SDK-Linux-IPC-V1.0.tar.gz

解压:

tar zxvf LKD3588-SDK-Linux-IPC-V1.0.tar.gz

提取:

cd LKD3588-SDK-Linux-IPC-V1.0
git reset --hard

切换分支:

branch explain
lz16000003 Neardi master branch
git checkout lz16000003

编译 SDK

选择配置

./build.sh lunch

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


0. BoardConfig-rk3588-neardi-linux-ipc-lkd3588-f1.mk

Which would you like? [0]: 0

全自动编译

全自动编译会执行所有编译。

./build.sh

部分编译

  • 编译 u-boot

./build.sh clean uboot
./build.sh uboot

生成镜像文件:output/image/download.bin、output/image/idblock.img 和 output/image/uboot.img

  • 编译 kernel

/build.sh clean kernel
./build.sh kernel

生成镜像文件:output/image/boot.img

  • 编译 rootfs

./build.sh clean rootfs
./build.sh rootfs

编译后使用 ./build.sh firmware 命令打包成rootfs.img 生成镜像文件:output/image/rootfs.img

  • 编译 media

./build.sh clean media
./build.sh media

生成文件的存放目录:output/out/media_out

  • 更多编译LKD3588-IPC-软件开发文档/LKD3588-IPC-Linux原厂开发文档/Rockchip_Quick_Start_Linux_IPC_SDK_CN.pdf

烧录镜像

SDK提供Windows烧写工具<SDK>/Tools/windows/SocToolKit/SocToolKit.exe

../../_images/Soc_ToolKit.png

运行Demo

配置网络

ifconfig enP2p33s0 up

udhcpc -i enP2p33s0

执行结果

udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending select for 192.168.1.237
udhcpc: lease of 192.168.1.237 obtained, lease time 86400
deleting routers
adding dns 192.168.1.1

拷贝OV13855 Camera 文件

adb push <SDK>/media/isp/release_camera_engine_rkaiq_rk3588_aarch64-rockchip1031-linux-gnu/isp_iqfiles/ov13855_CMK-OT2016-FV1_default.json /oem/usr/share/iqfiles

运行3A Server

默认情况下,IPC APP已经运行,在IPC运行之前需要手动运行3A server, 因此先kill掉IPC APP

 ps | grep rkipc
  395 root     3482m S    rkipc -a /oem/usr/share/iqfiles
  622 root      2396 S    grep rkipc

kill -9 395

注意, 此处395是IPC进程号, 需要根据实际显示结果而改变。

  • 启动3A服务

rkaiq_3A_server &

执行结果

 Cound not find rkisp dev names, skipped /dev/media0
ERR: Bad media topology for: /dev/media0
Cound not find rkisp dev names, skipped /dev/media1
ERR: Bad media topology for: /dev/media1
DBG: get rkisp-isp-subdev devname: /dev/v4l-subdev3
DBG: get rkisp-input-params devname: /dev/video30
DBG: get rkisp-statistics devname: /dev/video29
DBG: get rkisp_mainpath devname: /dev/video22
rkaiq log level ff0

************************** VERSION INFOS **************************
version release date: 2022-09-20
         AIQ:       AIQ v3.0x9.1
   IQ PARSER:       Calib v1.4.8,magicCode:1170944
************************ VERSION INFOS END ************************
DBG: get rkisp-isp-subdev devname: /dev/v4l-subdev7
DBG: get rkisp-input-params devname: /dev/video39
DBG: get rkisp-statistics devname: /dev/video38
DBG: get rkisp_mainpath devname: /dev/video31
DBG: subscribe events from /dev/video30 success !
DBG: device manager start
DBG: rkisp_init engine succeed
DBG: /dev/media2: wait stream start event...
  • 重启IPC APP

rkipc -a /oem/usr/share/iqfiles/ &

执行结果

# [rkipc.c][main]:main begin
[rkipc.c][main]:rkipc_ini_path_ is (null), rkipc_iq_file_path_ is /oem/usr/share/iqfiles/, rkipc_log_level is 3
[param.c][rk_param_init]:rk_param_init
[param.c][rk_param_init]:g_ini_path_ is /userdata/rkipc.ini
[param.c][rk_param_dump]:section_num is 35
[param.c][rk_param_dump]:section_name is audio.0
[param.c][rk_param_dump]:audio.0:enable = 1

......

[DEBUG rtsp_msg.c:865:rtsp_msg_parse_from_array] 
TEARDOWN rtsp://192.168.1.237:554/live/0 RTSP/1.0
CSeq: 6
User-Agent: LibVLC/3.0.17.3 (LIVE555 Streaming Media v2016.11.28)
Session: 12345678

[DEBUG rtsp_demo.c:1048:rtsp_handle_TEARDOWN] 
[DEBUG rtsp_msg.c:998:rtsp_msg_build_to_array] 
RTSP/1.0 200 OK
CSeq: 6
Date: Fri Jan  1 12:19:35 2021
Session: 12345678
Server: rtsp_demo
  • 获取IPC Video Streamer

PC安装VLC

../../_images/vlc-ipc-address.png

打开网络流

../../_images/vlc-rtsp.png

IQ Tools使用

参阅<SDK>LKD3588-SDK-Linux-IPC-V1.0/tools/windows/ISP_AIQ_Tool/AIQTool-v2.0.f-20220826/Doc