To run the sample on the target as non-root

Change the current directory to the folder that contains the nvsipl_camera binary:

samples/nvmedia/nvsipl/test/camera/

Launch Command Construction

iolauncher --wait -U 1000:1000,10100,10140,10150,2110,2230,2340,2341,2342,2343,2347,2400,3000,3220,3220,3800,3810,3830,3850,3870,3920,3923,40002,40005,40006,40020,40052,45031,45036,45037,45038,45042,45043,45044,45045,45046,45047,45047,45066,45068,45069,45071,45085,45112,55006,55007,55016,55017,55018,55019,55034,55066,55067,55070 -A nonroot,allow,public_channel -A nonroot,allow,interruptevent -A nonroot,allow,able=cdac/devblk:3 -A all,allow,able=nvsys/system_info -A all,allow,able=nvcap/reserve_access_isp_channel -A all,allow,able=nvcap/reserve_access_vi_channel -A all,allow,able=cba/tag:3 /samples/nvmedia/nvsipl_camera -c V1SIM623S4RU5195NB3_CPHY_x4 -m "'0 1111 0 0'" --showfps

In the previous example, the primary UID:GID is 1000:1000, which is the default-installed non-privileged nvidia:nvidia user and group.

Required SGID for Camera Application

Following are the minimum set of SGIDs required for a SIPL Client:

SGID Library
2110 nvsku
2230 nvcap
2340 nvi2c0
2341 nvi2c1
2342 nvi2c2
2343 nvi2c3
2347 nvi2c7
2400 devv_nvhv
3000 nvsys
3220 io_pkt
3800 devm-cdac
10100 devg_nvrm_nvmap
10140 devg_nvrm_nvhost
10150 devg_nvrm_nvgpu_igpu
55006 libnvisp.so
55007 libnvisppg.so
55016 libnvscibuf.so.1
55017 libnvscicommon.so.1
55018 libnvscistream.so.1
55019 libnvscisync.so.1
55070 libnvsipl_devblk_campwr_max20087_fusa.so
55066 libnvsipl_devblk_drv_imx623vb2.so
55067 libnvsipl_devblk_drv_imx728vb2.so
55034 libnvsipl_devblk_drv_ar0820_cust1.so
40002 libc.so.5
40005 libm.so.3
40006 libslog2.so.1
45066 libnvdtcommon.so
40020 libudt.so
45047 libnvsciipc.so
45046 libnvscievent.so
45031 libnvivc.so
45071 libnvsocsys.so
45112 libnvdvms_client.so
45038 libnvos.so
45037 libnvos_s3_safety.so
45069 libnvrm_mem.so
45043 libnvrm_host1x.so
45044 libnvrm_stream.so
45042 libnvrm_gpu.so
45045 libnvrm_surface.so
45085 NITO Files
40002 ldqnx-64.so.2, libgcc_s.so.1,libc.so.5
40052 libcatalog.so.1
40005 libm.so.3
40006 libslog2.so.1
45066 libnvdtcommon.so
40020 libudt.so
45047 libnvsciipc.so
45046 libnvscievent.so
45031 libnvivc.so
45071 libnvsocsys.so
45112 libnvdvms_client.so
45038 libnvos.so
45037 libnvos_s3_safety.so
45069 libnvrm_mem.so
45043 libnvrm_host1x.so
45044 libnvrm_stream.so
45042 libnvrm_gpu.so
45045 libnvrm_surface.so
40052 libcatalog.so.1

Required QNX Abilities

Following are the minimum set of QNX abilities required for a SIPL client:
Custom Ability
public_channel
interruptevent
cdac/devblk:<i2c_bus>
nvsys/system_info
nvcap/reserve_access_isp_channel
nvcap/reserve_access_vi_channel
cba/tag:<i2c_bus>

<i2c_bus> corresponds to the i2c bus of deserializer. In the examples below the bus IDs are 0,2,3,7 for deserializer A, B, C and D respectively.

SIPL CDAC

SIPL CDAC Resource Block (virtualized deserializer) nodes are populated under /dev/sipl/resblockXY, the GID of the Resource Block nodes are configured the SIPL CDAC Device Tree for each Resource Block. Currently, the default parameters are set to the following for the Orin and similar platforms:
Resource Block GID Description
/dev/sipl/resblock0 3810 Deserializer A (i2c0)
/dev/sipl/resblock2 3830 Deserializer B (i2c2)
/dev/sipl/resblock3 3850 Deserializer C (i2c3)
/dev/sipl/resblock7 3870 Deserializer D (i2c7)