This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IPC installation issue in linux

I am trying to use IPC in TCI6638. With the help of this post I installed IPC Library in ubutnu

e2e.ti.com/.../521961

And tried to compile image_processing demo . Compilation was successful and output file works fine.

There is one particular issue. When I include these files in image processing demo as:


#include <ti/ipc/interfaces/INetworkTransport.h>
#include <ti/ipc/interfaces/ITransport.h>
#include <ti/ipc/transports/TransportRpmsg.h>
in my code it gives me error
fatal error xdc/sdt.h no such file exists.

Seems like some issue in installation.

Regards

  • Hi Rao Munzir,

    I will ask IPC team to comment here. Thank you for your patience.
  • Any update?
  • Hi Rao,

    Rao said:
    in my code it gives me error

    fatal error xdc/sdt.h no such file exists.

    This seems to be a file location / path inclusion error.

    Give the complete path and try building again as a first attempt. If that works, you can include the path in the project properties.

  • I gave the complete path to TransportRpmsg.h . But now I see an error undefined reference to TransportRpmsg_Factory. while I physically checked the presence of TransportRpmsg_Factory in TransportRpmsg.h.

  • I see that 

     libtitransportrpmsg.so.1 is not present in lib folder of IPC after installations.

    Seems like some issue in installation.

    Any suggestions

  • Sounds like you have not compiled the IPC library for transport module.
    processors.wiki.ti.com/.../IPC_FAQ_for_Keystone_Devices.
  • Rao,

    Once you build IPC, you will find " libtitransportrpmsg.so.1"

    The following are the steps to build IPC.

    1. Install the mcsdk_bios_3_xx_xx_xx which will install the IPC package version, ipc_3_xx_xx_xx

    2. Go to the directory where the IPC package is installed.

    3. Open the products.mak file and make sure the following parameters are set appropriately.

    For example:- ( For ipc-linux build )

          PLATFORM = TCI6638

          DESTDIR = /opt/ti/ipc_3_xx_xx_xx/ipc_3_xx_xx_xx_lib

           XDC_INSTALL_DIR = /opt/ti/xdctools_3_xx_xx_xx

          BIOS_INSTALL_DIR = /opt/ti/bios_6_xx_xx_xx

          ti.targets.elf.C66 = /opt/ti/ccsv5/tools/compiler/C6000_7.4.5

    4. $cd /opt/ti/ ipc_3_xx_xx_xx

    5. $make distclean

    6. $make –f ipc-linux.mak config

    7. $make

    8. $make install

    NOTE: You will find the built binaries in the folder where you set to "DESTDIR"

  • I got these errors during compilation
    at step sudo make install
    arm-linux-gnueabihf-ranlib /home/ubuntu/ti_6_1_3/ccsv6/ipc_3_36_02_13/ipc_3_36_02_13_lib/lib/libtiipcutils_lad.a
    ../../../libtool: line 6556: arm-linux-gnueabihf-ranlib: command not found
    make[2]: *** [install-libLTLIBRARIES] Error 127
    make[2]: Leaving directory `/home/ubuntu/ti_6_1_3/ccsv6/ipc_3_36_02_13/linux/src/utils'
    make[1]: *** [install-am] Error 2
    make[1]: Leaving directory `/home/ubuntu/ti_6_1_3/ccsv6/ipc_3_36_02_13/linux/src/utils'
    make: *** [install-recursive] Error 1
  • Rao,
    Have you modified the "products.mak" for the toolchain ?

    TOOLCHAIN_LONGNAME = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR = <Toolchain installed directory>
    TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-

    Also please make sure that you have exported the toolchain in Linux (bash.bashrc file)

    Ex:
    export PATH=<Toolchain installed directory>/bin:$PATH
  • I have removed these errors by entering make install instead of sudo make install.
    now libtitransportrpmsg.so.1 is present in lib folder.
    But i still got the error when i run compiled binary on evmk2h
    error while loading shared libraries: libtitransportrpmsg.so.1: cannot open shared object file: No such file or directory
  • Rao,

    Check whether the destination directory is given in the makefile to find those libraries.


    For example, in the makefile located at mcsdk_bios_3_0x_xx_xx\demos\image_processing\ipc\master\src\makefile

    IPC_INSTALL_DIR := /opt/ti/ipc_3_3x_xx_xx

    #The location where the libraries are installed after building the IPC package
    SIPC_LINUX_DIR := /opt/ti/ipc_3_3x_xx_xx/IPC_Linux_libraries
    CROSS_COMPILE ?= arm-linux-gnueabihf-
    CC := $(CROSS_COMPILE)gcc
    CFLAGS := -Wall -I$(COMMON_INC) -I$(MASTER_INC) -I$(IPC_INSTALL_DIR)/linux/include -I$(IPC_INSTALL_DIR)/packages -D_GNU_SOURCE
    LFLAGS := -lpthread -L$(SIPC_LINUX_DIR)/ -ltitransportrpmsg -L$(SIPC_LINUX_DIR)/ -ltiipc -L$(SIPC_LINUX_DIR)/ -ltiipcutils
  • Yes I have made sure those paths are correct. But still my binary file complian about missing

    error while loading shared libraries: libtitransportrpmsg.so.1: cannot open shared object file: No such file or directory

    This is so time consuming for me. 

    Is there anything special that needs to be done on LINUX on evm.

    I have currently 3.10.10 kernel on evm.

    But image processing demo is working fine

  • I found this link with similar problem.
    shall I too copy the libraries to filesystem.
    what about copying them directly on evm as suggested by customer in this post. please elaborate . I have spent 4 weeks and I am no where near to development.

    e2e.ti.com/.../1904105
  • Yes, you have to copy into filesystem.
    You can do "make install" and you would see the libraries and binaries in "DESTDIR" and copy into filesystem.
    Please let us know if any problem.
  • where should I copy them in filesystem
  • Copy the contents of lib folder of IPC DESTDIR location into filesystem lib folder and content of bin folder of IPC DESTDIR location into bin folder of filesystem.