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) |