intel / icamerasrc

icamerasrc
24 stars 35 forks source link

Unable to use plugin after build and install #28

Open kfechter opened 1 year ago

kfechter commented 1 year ago

I built and installed the plugin following the directions, however trying any of the commands results in the error

No such element or plugin 'icamerasrc'

I've tried rebuilding it and reinstalling it to no avail. gst-inspect-1.0 doesn't show the plugin as installed.

I am installing this on a tigerlake system with IPU6, the drivers, hal, and bins are all installed, as well as ll prerequisites for this repo.

brmarkus commented 1 year ago

Do you see icamerasrc being blacklisted (gst-inspect-1.0 -b)?

Have you tried to delete the "plugin registry" (under /.cache/gstreamer-1.0/registry*.bin)?

And then, check again with GST_DEBUG=4 gst-inspect-1.0 icamerasrc whether there are any icamerasrc related log messages.

Where can you see your built icamerasrc shared library?

From "https://github.com/intel/icamerasrc/tree/icamerasrc_slim_api#pipeline-examples":

  • Ensure ${GST_PLUGIN_PATH} includes icamerasrc installation path

Do you see the path being part of GST_PLUGIN_PATH, or can you add it?

kfechter commented 1 year ago

gst-inspect-1.0 -b shows no blacklisted modules removing the cache does not change anything the library is installed in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/ with the other plugins that are being loaded

there is a warning loading the plugin in the debug output saying libia_cca.so can't be loaded but the file does exist in /usr/lib from the installation of one of the other requirements for ipu6.

brmarkus commented 1 year ago

In your environment with your given search-paths being set, can you call ldd to check if all dynamic-libraries are present?

$> ldd /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsticamerasrc.so

What does gst-inspect-1.0 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgsticamerasrc.so print (with/without gst-debug log level)?

kfechter commented 1 year ago

ldd shows three files missing, but doing an ls in the /usr/lib directory shows those files as being there. however, attempting to copy them results in an error saying the files don't exist for some reason

libia_cca.so => not found libia_log.so => not found libgcss.so.0 => not found

I was able to get those files re-copied, and now the icamerasrc plugin loads, but I have a new issue now.

sudo -E gst-launch-1.0 icamerasrc device-name=tpg_ipu6 ! video/x-raw,format=YUY2,width=1280,height=720 ! videoconvert ! ximagesink Setting pipeline to PAUSED ... [01-31 18:14:46.530] CamHAL[INF] aiqb file name hm11b1.aiqb [01-31 18:14:46.530] CamHAL[INF] aiqb file name hm11b1.aiqb [01-31 18:14:46.530] CamHAL[INF] aiqb file name ov01a1s.aiqb [01-31 18:14:46.530] CamHAL[INF] aiqb file name ov01a1s.aiqb [01-31 18:14:46.530] CamHAL[INF] aiqb file name hm11b1.aiqb [01-31 18:14:46.530] CamHAL[INF] aiqb file name hm11b1.aiqb Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock [01-31 18:14:46.535] CamHAL[ERR] Get entity fail for calling getEntityById [01-31 18:14:46.535] CamHAL[ERR] Get entity fail for calling getEntityById [01-31 18:14:46.535] CamHAL[ERR] Get entity fail for calling getEntityById [01-31 18:14:46.535] CamHAL[ERR] setup Link Intel IPU6 TPG 0 [-1:0] ==> Intel IPU6 CSI2 BE [-1x0] enable 1 failed. [01-31 18:14:46.535] CamHAL[ERR] set MediaCtlConf McLink failed: ret = -1 [01-31 18:14:46.535] CamHAL[ERR] set up mediaCtl failed [01-31 18:14:46.535] CamHAL[ERR] configure Device Configure failed [01-31 18:14:46.535] CamHAL[ERR] failed to config streams. ERROR: from element /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0: src pad: Internal data flow error. Additional debug info: gstcambasesrc.cpp(3143): gst_cam_base_src_loop (): /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0: streaming task paused, reason not-negotiated (-4) Execution ended after 0:00:00.003372477 Setting pipeline to NULL ... Freeing pipeline ...

karolszk commented 1 year ago

On Lenovo Carbon X1 10 gen failed in the following situation:

sudo -E gst-launch-1.0 icamerasrc buffer-count=7 ! video/x-raw,format=NV12,width=1280,height=720 ! videoconvert ! ximagesink [02-11 12:26:47.326] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.326] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.326] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.326] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.327] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.327] CamHAL[ERR] Parse AE gain range failed [02-11 12:26:47.328] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.328] CamHAL[ERR] Parse AE eExposure time range failed [02-11 12:26:47.328] CamHAL[ERR] Malformed ET range in exposure time range configuration [02-11 12:26:47.328] CamHAL[ERR] Parse AE gain range failed Setting pipeline to PAUSED ... [02-11 12:26:47.630] CamHAL[INF] aiqb file name ov13b10.aiqb [02-11 12:26:47.630] CamHAL[ERR] there is no aiqb file:ov13b10 [02-11 12:26:47.630] CamHAL[INF] aiqb file name ov13b10.aiqb [02-11 12:26:47.630] CamHAL[ERR] there is no aiqb file:ov13b10 [02-11 12:26:47.630] CamHAL[INF] aiqb file name ov8856.aiqb [02-11 12:26:47.630] CamHAL[ERR] there is no aiqb file:ov8856 [02-11 12:26:47.630] CamHAL[INF] aiqb file name ov8856.aiqb [02-11 12:26:47.630] CamHAL[ERR] there is no aiqb file:ov8856 [02-11 12:26:47.630] CamHAL[INF] aiqb file name ov01a10.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name ov01a10.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name ov01a10.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name ov01a10.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb [02-11 12:26:47.631] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HM2170_1SG205N3_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HM2170_1SG205N3_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HM2170_CJFME18_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HM2170_CJFME18_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HI556_1BG502T3_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HI556_1BG502T3_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HI556_CJFLE25_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name HI556_CJFLE25_ADL.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name ov01a1s.aiqb [02-11 12:26:47.632] CamHAL[INF] aiqb file name ov01a1s.aiqb [02-11 12:26:47.633] CamHAL[ERR] Failed to find DevName for cameraId: 0, get video node: ov13b10 , devname: /dev/v4l-subdev1 [02-11 12:26:47.635] CamHAL[ERR] MediaControl init failed Failed to set pipeline to PAUSED. Setting pipeline to NULL ... Freeing pipeline ...

karolszk commented 1 year ago

dmesg:

14.070490] intel-ipu6 intel-ipu: enabling device (0000 -> 0002) [ 14.070712] intel-ipu6 intel-ipu: Device 0x465d (rev: 0x2) [ 14.070738] intel-ipu6 intel-ipu: physical base address 0x603c000000 [ 14.070739] intel-ipu6 intel-ipu: mapped as: 0x00000000d50191a0 [ 14.070777] intel-ipu6 intel-ipu: IPU in secure mode [ 14.070779] intel-ipu6 intel-ipu: IPU secure touch = 0x0 [ 14.070781] intel-ipu6 intel-ipu: IPU camera mask = 0xff [ 14.085977] intel-ipu6 intel-ipu: IPC reset done [ 14.085990] intel-ipu6 intel-ipu: cpd file name: intel/ipu6ep_fw.bin [ 14.089059] intel-ipu6 intel-ipu: firmware: direct-loading firmware intel/ipu6ep_fw.bin [ 14.089063] intel-ipu6 intel-ipu: FW version: 20220510 [ 14.089592] intel-ipu6 intel-ipu: Device 0x465d (rev: 0x2) [ 14.089611] intel-ipu6 intel-ipu: physical base address 0x603c000000 [ 14.089612] intel-ipu6 intel-ipu: mapped as: 0x000000005b6777b7 [ 14.089643] intel-ipu6 intel-ipu: IPU in secure mode [ 14.089644] intel-ipu6 intel-ipu: IPU secure touch = 0x0 [ 14.089645] intel-ipu6 intel-ipu: IPU camera mask = 0xff [ 14.091636] intel-ipu6 intel-ipu: IPC reset done [ 14.091650] intel-ipu6 intel-ipu: cpd file name: intel/ipu6ep_fw.bin [ 14.091779] intel-ipu6 intel-ipu: firmware: direct-loading firmware intel/ipu6ep_fw.bin [ 14.091782] intel-ipu6 intel-ipu: FW version: 20220510 [ 14.092

mehkir commented 1 year ago

Hello, I have the same problem that the plugin icamersrc cannot be loaded. I installed the libraries through the following AUR packages on archlinux 6.1.18-1-lts:

What I found out so far:

So it seems that the library /usr/lib/libipu6ep.a containing the symbol vied_nci_mem_type is present, but the icamerasrc still fails to load.

Does anyone have an idea why this is possible?

brmarkus commented 1 year ago

Not sure it's a runtime dependency (resolved at runtime via dlopen(), dlsym()) or a build-time dependency.

When calling ldd /usr/lib/gstreamer-1.0/libgsticamerasrc.so do you see all dependencies/libraries being resolved?

"/usr/lib/libipu6ep.a" is a static library/archive, not a shared library...

Do you see more when calling DL_DEBUG=libs gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgsticamerasrc.so, i.e. which library tries to resolve the symbol with the help of which other libraries?

mehkir commented 1 year ago

Below you see the output when I perform your given commands.

$ ldd  /usr/lib/gstreamer-1.0/libgsticamerasrc.so
    linux-vdso.so.1 (0x00007ffebabe3000)
    libgstallocators-1.0.so.0 => /usr/lib/libgstallocators-1.0.so.0 (0x00007f4c4002b000)
    libgstvideo-1.0.so.0 => /usr/lib/libgstvideo-1.0.so.0 (0x00007f4c3ff60000)
    libgsticamerainterface-1.0.so.1 => /usr/lib/libgsticamerainterface-1.0.so.1 (0x00007f4c3ff5b000)
    libgstbase-1.0.so.0 => /usr/lib/libgstbase-1.0.so.0 (0x00007f4c3fed6000)
    libgstcontroller-1.0.so.0 => /usr/lib/libgstcontroller-1.0.so.0 (0x00007f4c3fec3000)
    libgstreamer-1.0.so.0 => /usr/lib/libgstreamer-1.0.so.0 (0x00007f4c3fd72000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f4c3fd0f000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f4c3fbc4000)
    libdrm_intel.so.1 => /usr/lib/libdrm_intel.so.1 (0x00007f4c3fb9f000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00007f4c3fb88000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f4c3f800000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f4c3faa0000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f4c3f619000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f4c3fa7e000)
    liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00007f4c3f57f000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f4c3fa77000)
    libunwind.so.8 => /usr/lib/libunwind.so.8 (0x00007f4c3fa5e000)
    libdw.so.1 => /usr/lib/libdw.so.1 (0x00007f4c3f4ea000)
    libffi.so.8 => /usr/lib/libffi.so.8 (0x00007f4c3fa51000)
    libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007f4c3f44f000)
    libpciaccess.so.0 => /usr/lib/libpciaccess.so.0 (0x00007f4c3fa45000)
    /usr/lib64/ld-linux-x86-64.so.2 (0x00007f4c4022a000)
    liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f4c3f41c000)
    libelf.so.1 => /usr/lib/libelf.so.1 (0x00007f4c3f402000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f4c3f3e8000)
    libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f4c3f318000)
    libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f4c3f305000)
$ DL_DEBUG=libs gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgsticamerasrc.so

(gst-inspect-1.0:12991): GStreamer-WARNING **: 16:41:18.219: Failed to load plugin '/usr/lib/gstreamer-1.0/libgsticamerasrc.so': /usr/lib/gstreamer-1.0/libgsticamerasrc.so: undefined symbol: vied_nci_mem_type
Die Plugin-Datei konnte nicht geladen werden: Opening module failed: /usr/lib/gstreamer-1.0/libgsticamerasrc.so: undefined symbol: vied_nci_mem_type

EDIT: I forgot to mention, that I could not perform the rpm steps:

# build rpm package and then install
make rpm
rpm -ivh --force --nodeps icamerasrc-*.rpm

Are these also important or just an alternative to the sudo make install before?

brmarkus commented 1 year ago

I'm not so familiar with "archlinux" and your mentioned "AUR packages"; make rpm creates the RPM packages which then will be installed via rpm -ivh --force --nodeps icamerasrc-*.rpm.

Could be related with your issue... i.e. a missing package not being installed - but is there really more than one (1) "icamerasrc" RPM file - as a wild-card is used in icamerasrc-*.rpm...?

In addition to "ldd" and "DL_DEBUG", do you see something different when calling strace gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgsticamerasrc.so?

Where you required to rebuild the system library cache after building and installing icamerasrc (e.g. via ldconfig)?

mehkir commented 1 year ago

I'm not so familiar with "archlinux" and your mentioned "AUR packages"; make rpm creates the RPM packages which then will be installed via rpm -ivh --force --nodeps icamerasrc-*.rpm.

Could be related with your issue... i.e. a missing package not being installed - but is there really more than one (1) "icamerasrc" RPM file - as a wild-card is used in icamerasrc-*.rpm...?

I don't know, it fails to build with: cp: the call to stat for '' is not possible: file or directory not found

In addition to "ldd" and "DL_DEBUG", do you see something different when calling strace gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgsticamerasrc.so?

There is a lot. Do you want me to paste everything in here?

Where you required to rebuild the system library cache after building and installing icamerasrc (e.g. via ldconfig)?

No I wasn't.

EDIT: After sudo make install (I removed all AUR packages and tried it manually according to the 4 steps on the github page) I got among other things:

Libraries have been installed in:
   /usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

and

Libraries have been installed in:
   /usr/lib/gstreamer-1.0

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

But I think thats only the case if I want to compile other programs with the installed libraries, right?

mehkir commented 1 year ago

Here is a section of the strace gst-inspect-1.0 /usr/lib/gstreamer-1.0/libgsticamerasrc.so output. I have no clues:

...
openat(AT_FDCWD, "/usr/lib/libpciaccess.so.0", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=42880, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 45088, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fa129df4000
mmap(0x7fa129df7000, 20480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x3000) = 0x7fa129df7000
mmap(0x7fa129dfc000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x8000) = 0x7fa129dfc000
mmap(0x7fa129dfe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x9000) = 0x7fa129dfe000
close(4)                                = 0
mprotect(0x7fa129dfe000, 4096, PROT_READ) = 0
mprotect(0x7fa12a0d0000, 12288, PROT_READ) = 0
mprotect(0x7fa12a027000, 53248, PROT_READ) = 0
mprotect(0x7fa12a760000, 4096, PROT_READ) = 0
mprotect(0x7fa12a785000, 4096, PROT_READ) = 0
mprotect(0x7fa12a798000, 4096, PROT_READ) = 0
mprotect(0x7fa12a159000, 8192, PROT_READ) = 0
mprotect(0x7fa12b0a5000, 4096, PROT_READ) = 0
mprotect(0x7fa12a214000, 69632, PROT_READ) = 0
mprotect(0x7fa12b0ac000, 4096, PROT_READ) = 0
munmap(0x7fa12a79a000, 116971)          = 0
munmap(0x7fa12a227000, 1935776)         = 0
munmap(0x7fa12b0a7000, 24648)           = 0
munmap(0x7fa12a15c000, 827456)          = 0
munmap(0x7fa12b0a2000, 16424)           = 0
munmap(0x7fa12a0d7000, 541128)          = 0
munmap(0x7fa12a787000, 74120)           = 0
munmap(0x7fa12a762000, 149000)          = 0
munmap(0x7fa12a74b000, 92696)           = 0
munmap(0x7fa129e00000, 2324480)         = 0
munmap(0x7fa12a03d000, 628536)          = 0
munmap(0x7fa129df4000, 45088)           = 0
getpeername(2, 0x7ffd18219a60, [128])   = -1 ENOTSOCK (Socket-Operation an einem nicht-Socket)
futex(0x7fa12af46ea8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
ioctl(2, TCGETS, 0x7ffd18219a30)        = -1 ENOTTY (Unpassender IOCTL (I/O-Control) für das Gerät)
getpid()                                = 2072
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=2298, ...}, AT_EMPTY_PATH) = 0
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=2298, ...}, AT_EMPTY_PATH) = 0
read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\t\0\0\0\0"..., 4096) = 2298
lseek(4, -1449, SEEK_CUR)               = 849
read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\t\0\0\0\0"..., 4096) = 1449
close(4)                                = 0
write(2, "\n(gst-inspect-1.0:2072): GStream"..., 128) = 128
write(2, " /usr/lib/gstreamer-1.0/libgstic"..., 81) = 81
write(2, "Die Plugin-Datei konnte nicht ge"..., 149) = 149
close(1)                                = 0
close(2
(gst-inspect-1.0:2072): GStreamer-WARNING **: 18:28:18.261: Failed to load plugin '/usr/lib/gstreamer-1.0/libgsticamerasrc.so': /usr/lib/gstreamer-1.0/libgsticamerasrc.so: undefined symbol: vied_nci_mem_type
)                                = 0
Die Plugin-Datei konnte nicht geladen werden: Opening module failed: /usr/lib/gstreamer-1.0/libgsticamerasrc.so: undefined symbol: vied_nci_mem_type
pidfd_open(2073, 0)                     = 1
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
poll([{fd=1, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\1\0\0\0\0\0\0\0", 8)          = 8
read(3, 0x7ffd18219db0, 8)              = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=1, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = 1 ([{fd=1, revents=POLLIN}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2073, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
waitid(P_PIDFD, 1, {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2073, si_uid=1000, si_status=0, si_utime=0, si_stime=0}, WNOHANG|WEXITED, NULL) = 0
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x55fdcc04f070, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
close(1)                                = 0
exit_group(-1)                          = ?
+++ exited with 255 +++
mehkir commented 1 year ago

A note on the build_rpm.sh script in the rpm folder: The line rpm_path=$(awk '/^Wrote:.*rpm$/ { print $2; exit }' "$tempdir/rpmbuild.log") does not work if the bash uses other locales than englisch because of 'Wrote'.

The rpm is also found with this line instead: rpm_path=$(awk '/rpm$/ { print $2; exit }' "$tempdir/rpmbuild.log")

EDIT: The icamerasrc plugin is still blacklisted. I tried all of this on a Thinkpad X1 Carbon Gen10 with ov2740 sensor.

nobuhikosawai commented 1 year ago

I had the similar issue to this comment https://github.com/intel/icamerasrc/issues/28#issuecomment-1411205262, then I realized that during some process, /usr/lib/libia_cca.so and other files copied from ipu6-camera-bins/<IPU_VER>/lib/ are turned into symbolic links.

I fixed this issue by simply doing:

mkdir /usr/lib/<IPU_VER>/
cp -r ipu6-camera-bins/<IPU_VER>/lib/* /usr/lib/<IPU_VER>/
almereyda commented 1 year ago

I can confirm that re-running the steps provided in:

will help GStreamer in finding an otherwise missing libgcss.so, symlinked at libgcss.so.0, which is then symlinked to libgcss.so.0.0.0, where the actual file will be found afterwards.


Edit: It appears the target locations of the symlinks are expected and prepared in step three of the HAL installation readme, "Move user space driver". To make it work (again) after all those mv commands, I had to issue cp /usr/lib/ipu6ep/libgcss.so.0 /usr/lib/ to have GST_DEBUG=4 gst-inspect-1.0 -b report positively again.

Also moving the camera directory into the ipu6ep directory is not expected by all other components, why a heartful cp -r /usr/share/defaults/etc/ipu6ep/camera /usr/share/defaults/etc helped to get it back in place, where it would be expected.