Intel® Edge Software Hub
Get answers from community peers to your questions about building Edge Software Hub solutions for edge compute node.
Announcements
Welcome to the Intel Community! If you like the answer to your question, please mark it as 'Accepted Solution' to help others.

The Edge Software Vision Package for Red Hat Enterprise Linux is now available here.

Learn more about developing on Intel® Hardware and Software here.

IGH EtherCAT :About Compiling.

san1998
Beginner
1,812 Views

Is there a Ubuntu22.04 static library, libethercat.a?

The Igh EtherCAT Master source code provided by ECI cannot be compiled and installed, can you provide a static library or tell the way to compile successfully.

Thanks.

0 Kudos
1 Solution
Lay
Employee
1,588 Views

Hi,

 

Step 1) download ECI source by follow this guide. https://eci.intel.com/docs/3.0.2/getstarted/download_eci.html

Step 2) Build ECI package using manual method. https://eci.intel.com/docs/3.0.2/development/eci_build_engine.html#step-4-start-a-bitbake-environment

*save the manual build command later can start bitbake environment to build igh package

Step 3) You can obtain igh package in build/eci-packages-jammy/tmp/work/eci-jammy-amd64/ighethercat/1.5.2-3/ethercat-1.5.2/

 

 

View solution in original post

0 Kudos
6 Replies
san1998
Beginner
1,788 Views

sjw@sjw-virtual-machine:/usr/src/ighethercat-dkms-1.5.2$ sudo ./configure --enable-8139too=no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking dependency style of g++... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether to build kernel modules... yes
checking for Linux kernel sources... /usr/src/linux-headers-5.19.0-46-generic (Kernel 5.19)
checking for Linux modules installation directory...
checking for Linux modules installation subdirectory...
checking for RTAI path... not specified.
checking for Xenomai path... not specified.
checking whether to build RTDM interface... no
checking whether to build the debug interface... no
checking whether to build the debug ring... no
checking whether to build with EoE support... yes
checking whether to build with EwT support... no
checking whether to use the CPU timestamp counter... no
checking whether to use high-resolution timers for scheduling... no
checking whether to read alias addresses from registers... no
checking whether to build the command-line tool... yes
checking whether to build the userspace library... yes
checking whether to build the tty driver... no
checking whether to allow identification wildcards... no
checking for number of Ethernet devices... 1 (Redundancy disabled)
checking for vlan priority... 5 (Redundancy enabled)
checking vlan id... 1 (Redundancy enabled)
checking whether to assign the SII to PDI... yes
checking whether to syslog in realtime context... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Doxyfile
config.status: creating Kbuild
config.status: creating Makefile
config.status: creating devices/Kbuild
config.status: creating devices/Makefile
config.status: creating devices/e1000/Kbuild
config.status: creating devices/e1000/Makefile
config.status: creating devices/e1000e/Kbuild
config.status: creating devices/e1000e/Makefile
config.status: creating devices/igb/Kbuild
config.status: creating devices/igb/Makefile
config.status: creating devices/igc/Kbuild
config.status: creating devices/igc/Makefile
config.status: creating devices/stmmac/Kbuild
config.status: creating devices/stmmac/Makefile
config.status: creating ethercat.spec
config.status: creating examples/Kbuild
config.status: creating examples/Makefile
config.status: creating examples/dc_rtai/Kbuild
config.status: creating examples/dc_rtai/Makefile
config.status: creating examples/dc_user/Makefile
config.status: creating examples/mini/Kbuild
config.status: creating examples/mini/Makefile
config.status: creating examples/rtai/Kbuild
config.status: creating examples/rtai/Makefile
config.status: creating examples/rtai_rtdm/Makefile
config.status: creating examples/rtai_rtdm_dc/Makefile
config.status: creating examples/tty/Kbuild
config.status: creating examples/tty/Makefile
config.status: creating examples/user/Makefile
config.status: creating examples/xenomai/Makefile
config.status: creating examples/xenomai_posix/Makefile
config.status: creating examples/ecatdio/Makefile
config.status: creating examples/multi_axis/Makefile
config.status: creating examples/fly_trigger_poc/Makefile
config.status: creating examples/soe_axis/Makefile
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating m4/Makefile
config.status: creating master/Kbuild
config.status: creating master/Makefile
config.status: creating script/Makefile
config.status: creating script/ethercat.service
config.status: creating script/ethercatctl
config.status: creating script/init.d/Makefile
config.status: creating script/init.d/ethercat
config.status: creating script/sysconfig/Makefile
config.status: creating tool/Makefile
config.status: creating tty/Kbuild
config.status: creating tty/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
sjw@sjw-virtual-machine:/usr/src/ighethercat-dkms-1.5.2$ sudo make
make: *** No rule to make target 'Makefile.am', needed by 'Makefile.in'. Stop.

0 Kudos
JesusE_Intel
Moderator
1,758 Views

Hi san1998,

Thanks for reaching out, have you tried to install the IgH EtherCAT Master Stack from the Edge Controls for Industrial APT repository? You can find more information in the following documentation.

https://eci.intel.com/docs/3.0.2/components/ethercat.html?highlight=ethercat#install-igh-ethercat-master-stack

If you would still like to build from source, could you please let me know which version of ECI you are using and what documentation/steps you followed? Thanks.


Regards,

Jesus


0 Kudos
san1998
Beginner
1,747 Views

I have installed the IgH EtherCAT Master Stack from the Edge Controls for Industrial APT repository. ECI version is 3.0.2.

After  install  IgH EtherCAT Master, I have successfully started the master and connected the servos. And I need to  compile the program with a static library-libethercat.a, But ECI build in /usr/src/ighethercat-dkms-1.5.2 cannot compile and generate a static library.

Enter sudo make after entering sudo ./configure,something went wrong.

sjw@sjw-virtual-machine:/usr/src/ighethercat-dkms-1.5.2$ sudo make
make: *** No rule to make target 'Makefile.am', needed by 'Makefile.in'. Stop.

Thanks!

 

 

0 Kudos
JesusE_Intel
Moderator
1,671 Views

Hi san1998,


Apologies for the delay, I've been exploring building the EtherCAT static library with this software package. I believe only the library is provided, to build the static library you will need to clone the open-sourced repository and build from source. However, let me reach out to the development team and confirm if this is accurate.


Regards,

Jesus


0 Kudos
Lay
Employee
1,589 Views

Hi,

 

Step 1) download ECI source by follow this guide. https://eci.intel.com/docs/3.0.2/getstarted/download_eci.html

Step 2) Build ECI package using manual method. https://eci.intel.com/docs/3.0.2/development/eci_build_engine.html#step-4-start-a-bitbake-environment

*save the manual build command later can start bitbake environment to build igh package

Step 3) You can obtain igh package in build/eci-packages-jammy/tmp/work/eci-jammy-amd64/ighethercat/1.5.2-3/ethercat-1.5.2/

 

 

0 Kudos
JesusE_Intel
Moderator
1,498 Views

If you need any additional information, please submit a new question as this thread will no longer be monitored.


0 Kudos
Reply