Skip to content

libmpi.so xxx symbol not found issue #1621

Closed

Description

@lida2003

Here, we are doing some porting for Hi3536 board: Can't launch msposd on Groud stattion NVR Hi3536dv100 #18

And we got :

root@openipc-hi3536dv100:~# ldd msposd_hi3536
        ldd (0x7f603000)
        libdnvqe.so => /usr/lib/libdnvqe.so (0xb6dd5000)
        libmpi.so => /usr/lib/libmpi.so (0xb6d52000)
        libupvqe.so => /usr/lib/libupvqe.so (0xb6d3c000)
        libVoiceEngine.so => /usr/lib/libVoiceEngine.so (0xb6d23000)
        libevent_core-2.2.so.1 => /usr/lib/libevent_core-2.2.so.1 (0xb6d07000)
        libc.so => ldd (0x7f603000)
Error relocating /usr/lib/libmpi.so: jpeg_read_scanlines: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_SetBufInfo: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_GetJpegInfo: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_SetYCbCr420spFlag: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_mem_src: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_abort_decompress: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_start_decompress: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_SetOutDesc: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_destroy_decompress: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_std_error: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_CreateDecompress: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_GetLuPixSum: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_read_header: symbol not found
Error relocating /usr/lib/libmpi.so: jpeg_finish_decompress: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_SetStreamPhyMem: symbol not found
Error relocating /usr/lib/libmpi.so: HI_JPEG_SetLuPixSumFlag: symbol not found
Error relocating msposd_hi3536: MI_RGN_UpdateCanvas: symbol not found
Error relocating msposd_hi3536: unsupported relocation type 3
Error relocating msposd_hi3536: unsupported relocation type 3
Error relocating msposd_hi3536: unsupported relocation type 3
Error relocating msposd_hi3536: unsupported relocation type 3

I believe the libmpi.so is from thirdparty, which now we have met issues:

Anyone can help with the consistency of so and head files?

Activity

  1. widgetii commented on Oct 17, 2026

    @widgetii
    Member

    Fixed on master by #2614 (f182c17), with #2603 and OpenIPC/msposd#107.

    What was wrong. The package shipped userspace libraries and kernel modules from different MPP releases. libmpi.so came from 1.0.1.0 and the .ko files from 1.0.4.2, so the ioctl payloads disagree. For example, RGN_ATTR_S grew a u32CanvasNum field, so libmpi sends 0xc0185200 while region.ko only accepts 0xc01c5200 and answers -1. That is the RGN_Create failed with 0xffffffff reported in OpenIPC/msposd#18. The two kinds of error in the original log have different causes:

    • The jpeg_* / HI_JPEG_* relocations are libmpi's dependency on HiSilicon's own libjpeg.so (a jpeg6b build carrying the HI_JPEG_* extensions). The binary has to link -ljpeg, and the image has to ship the matching library.
    • MI_RGN_UpdateCanvas and unsupported relocation type 3 mean that binary was not a hi3536 build at all.

    What changed

    Tested on a lab Hi3536DV100 NVR:

    • all 22 modules load, and the MPI probe returns 0 on every call;
    • vdec configures HDMI at 720p60;
    • msposd's OSD is drawn, read back from /dev/fb0.

    That covers the board in our lab. If yours behaves differently on an image built from master after f182c17, please reopen with dmesg and the output of the failing command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions