Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						22 Mar 2021 10:57				#203225
		by Stormholt
	
	
		
			
	
			
			 		
													
	
				Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo was created by Stormholt			
			
				Hello
I know this problem is pretty normal with first installation of linuxcnc-ethercat, however none of the answers on the other topics have done it for me, or maybe i am too dense to understand the answer.
SO... i have followed Grotius' installation guide using ec-debianize.
The error happens when running the line "loadrt lcec" in the postgui.hal file
The answers i have already tried to solve this with have been:
Using the realtime.mk from 0.9.1 release
This one, not quite relevant due to the installation method
This never really came to a conclusion
I definetly believe that the lcec.so and libethercat are not linked properly as "ldd lcec.so" prints:However i have no idea how to solve this.
libethercat.so are located: /usr/lib/x86_64-linux-gnu/libethercat.so
I have gone through the process of installation on two pc's, one with ubuntu 20.04 and another with Mint 19.3, both have reached the same point.
Can someone please help me ? Thanks in advance
			
					I know this problem is pretty normal with first installation of linuxcnc-ethercat, however none of the answers on the other topics have done it for me, or maybe i am too dense to understand the answer.
SO... i have followed Grotius' installation guide using ec-debianize.
The error happens when running the line "loadrt lcec" in the postgui.hal file
lcec: dlopen: /home/vaerks/linuxcnc/rtlib/lcec.so: undefined symbol: ecrt_slave_config_sdo
lcec: dlopen: /home/vaerks/linuxcnc/rtlib/lcec.so: undefined symbol: ecrt_slave_config_sdo
hal/postgui.hal:7: waitpid failed /home/vaerks/linuxcnc/bin/rtapi_app lcec
hal/postgui.hal:7: /home/vaerks/linuxcnc/bin/rtapi_app exited without becoming ready
hal/postgui.hal:7: insmod for lcec failed, returned -1The answers i have already tried to solve this with have been:
Using the realtime.mk from 0.9.1 release
This one, not quite relevant due to the installation method
This never really came to a conclusion
I definetly believe that the lcec.so and libethercat are not linked properly as "ldd lcec.so" prints:
ldd ~/linuxcnc/rtlib/lcec.so
	linux-vdso.so.1 (0x00007ffc4c342000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7837fbb000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7837bca000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f7838579000)libethercat.so are located: /usr/lib/x86_64-linux-gnu/libethercat.so
I have gone through the process of installation on two pc's, one with ubuntu 20.04 and another with Mint 19.3, both have reached the same point.
Can someone please help me ? Thanks in advance
Please Log in or Create an account to join the conversation.
- Hakan
 - Offline
 - Platinum Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 998
 - Thank you received: 333
 
			
	
						22 Mar 2021 11:22		 -  22 Mar 2021 11:24		#203227
		by Hakan
	
	
		
			
	
	
			 		
													
	
				Replied by Hakan on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				The step to place a small file in /etc/ld.so.conf.d to help find where libethercat.so is has gone wrong.
Before starting linuxcnc enter
% export LD_LIBRARY_PATH=/opt/etherlab/lib:$LD_LIBRARY_PATH
or wherever the libethercat.so is.
					Before starting linuxcnc enter
% export LD_LIBRARY_PATH=/opt/etherlab/lib:$LD_LIBRARY_PATH
or wherever the libethercat.so is.
		Last edit: 22 Mar 2021 11:24  by Hakan.			
	
		The following user(s) said Thank You: Stormholt 	
			Please Log in or Create an account to join the conversation.
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						22 Mar 2021 12:23				#203231
		by Stormholt
	
	
		
			
	
			
			 		
													
	
				Replied by Stormholt on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				Hello Hakan, thank you for your answer!
I tried the following before running linuxcnc:However it did not seem to work :-/
After linuxcnc i get this:			
					I tried the following before running linuxcnc:
$ export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu$LD_LIBRARY_PATH
$ $LD_LIBRARY_PATH
bash: /usr/lib/x86_64-linux-gnu: Is a directoryAfter linuxcnc i get this:
$LD_LIBRARY_PATH
bash: /home/vaerks/linuxcnc/lib:/usr/lib/x86_64-linux-gnu: No such file or directoryPlease Log in or Create an account to join the conversation.
- Hakan
 - Offline
 - Platinum Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 998
 - Thank you received: 333
 
			
	
						22 Mar 2021 13:03				#203233
		by Hakan
	
	
		
			
	
	
			 		
													
	
				Replied by Hakan on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				In a new fresh terminal window, type
$ echo $LD_LIBRARY_PATH
If that produce an empty output, then type
$ export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
If there is an output, type
$ export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
Don't forget the ":" Then followed by
$ linuxcnc your-ini.ini
It can also be that the libethercat.so is found but the build of it has gone wrong and is missing the functions you list.
					$ echo $LD_LIBRARY_PATH
If that produce an empty output, then type
$ export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
If there is an output, type
$ export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
Don't forget the ":" Then followed by
$ linuxcnc your-ini.ini
It can also be that the libethercat.so is found but the build of it has gone wrong and is missing the functions you list.
		The following user(s) said Thank You: Stormholt 	
			Please Log in or Create an account to join the conversation.
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						22 Mar 2021 13:10				#203234
		by Stormholt
	
	
		
			
	
			
			 		
													
	
				Replied by Stormholt on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				yeah i removed the ":" because the variable was empty.
So it must have something to do with the build as you wrote :-/
					So it must have something to do with the build as you wrote :-/
Please Log in or Create an account to join the conversation.
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						22 Mar 2021 15:42				#203252
		by Stormholt
	
	
		
			
	
	
			 		
													
	
				Replied by Stormholt on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				I managed to get past this error. With an answer i had previously tried, but apparently failed
Thanks to Shameless
For anyone with the same problem, You need to overwrite your ~/linuxcnc-ethercat/src/realtime.mk file with the following:
After which you can do following:			
					Thanks to Shameless
For anyone with the same problem, You need to overwrite your ~/linuxcnc-ethercat/src/realtime.mk file with the following:
include ../config.mk
include Kbuild
cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
             > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
.PHONY: all clean install
ifeq ($(BUILDSYS),kbuild)
module = $(patsubst %.o,%.ko,$(obj-m))
ifeq (,$(findstring -Wframe-larger-than=,$(EXTRA_CFLAGS)))
  EXTRA_CFLAGS += $(call cc-option,-Wframe-larger-than=2560)
endif
$(module):
	$(MAKE) EXTRA_CFLAGS="$(EXTRA_CFLAGS)" KBUILD_EXTRA_SYMBOLS="$(RTLIBDIR)/Module.symvers $(RTAIDIR)/modules/ethercat/Module.symvers" -C $(KERNELDIR) SUBDIRS=`pwd` CC=$(CC) V=0 modules
clean::
	rm -f $(obj-m)
	rm -f *.mod.c .*.cmd
	rm -f modules.order Module.symvers
	rm -rf .tmp_versions
else
module = $(patsubst %.o,%.so,$(obj-m))
EXTRA_CFLAGS := $(filter-out -Wframe-larger-than=%,$(EXTRA_CFLAGS))
$(module): $(lcec-objs)
	$(CC) -shared -o $@ $(lcec-objs) -Wl,-rpath,$(LIBDIR) -L$(LIBDIR) -llinuxcnchal -lethercat -lrt
%.o: %.c
	$(CC) -o $@ $(EXTRA_CFLAGS) -Os -c $<
endif
all: $(module)
clean::
	rm -f $(module)
	rm -f $(lcec-objs)
install: $(module)
	mkdir -p $(DESTDIR)$(RTLIBDIR)
	cp $(module) $(DESTDIR)$(RTLIBDIR)/After which you can do following:
cd ~/linuxcnc-ethercat
make clean
make 
sudo make install
		The following user(s) said Thank You: cncLab, mat1370 	
			Please Log in or Create an account to join the conversation.
- Grotius
 - 
				
											 - Offline
 - Platinum Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 2419
 - Thank you received: 2343
 
			
	
						22 Mar 2021 15:46		 -  22 Mar 2021 15:51		#203254
		by Grotius
	
	
		
			
	
	
			 		
													
	
				Replied by Grotius on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				Hi,
For ethercat i have a iso over here.
And a newer iso over here.
Ethercat is working for kernels up to 4.19 with ec-debianize. Tested on Debian.
For your error : undefined symbol: ecrt_slave_config_sdo.
Did you follow the ec-debianize procedure and installed the 2 .deb package's both?
To be sure, i advise to install a fresh pc and do the process again. But you fixed it i see, nice !
The mercurial repository has changed to git. See etherlab website. This is important for ec-debianize.
The source is changed, and at the moment not compatible with newer kernels.
Finally i now have my new distro Bullseye working with realtime kernel and ethercat.
Linux debian 5.10.0-4-rt-amd64 And Linux debian 5.10.0-5-rt-amd64 are working for ethercat.
Today i had a conversation with Florian Pose about some ethercat problems, related to the latest kernels > 5.0.0
They are solved. So now i must look to make a .deb package for it. And i must dig into ec-debianize to fix this.
					For ethercat i have a iso over here.
And a newer iso over here.
Ethercat is working for kernels up to 4.19 with ec-debianize. Tested on Debian.
For your error : undefined symbol: ecrt_slave_config_sdo.
Did you follow the ec-debianize procedure and installed the 2 .deb package's both?
To be sure, i advise to install a fresh pc and do the process again. But you fixed it i see, nice !
The mercurial repository has changed to git. See etherlab website. This is important for ec-debianize.
The source is changed, and at the moment not compatible with newer kernels.
Finally i now have my new distro Bullseye working with realtime kernel and ethercat.
Linux debian 5.10.0-4-rt-amd64 And Linux debian 5.10.0-5-rt-amd64 are working for ethercat.
Today i had a conversation with Florian Pose about some ethercat problems, related to the latest kernels > 5.0.0
They are solved. So now i must look to make a .deb package for it. And i must dig into ec-debianize to fix this.
		Last edit: 22 Mar 2021 15:51  by Grotius.			
	
		The following user(s) said Thank You: arvidb, Stormholt, Rabin 	
			Please Log in or Create an account to join the conversation.
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						23 Mar 2021 08:28				#203360
		by Stormholt
	
	
		
			
	
			
			 		
													
	
				Replied by Stormholt on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				Hey Grotius
I have been reading a lot of your post getting into ethercat with linuxcnc, so thank for your answer to this topic and thanks for your answers in general.
I did indeed follow the ec-debianize procedure and installed both packages.
In terms of kernel my first attempt was on Ubuntu 20.04 withLinux 5.8.0-45-generic x86_64 and second attempt on Mint 19.3 with Linux 5.0.0-32-generic x86_64, so i am very interested in the .deb package and revision to ec-debianize you will be working on. Where can i follow the development of this project or get notified of its completion?
					I have been reading a lot of your post getting into ethercat with linuxcnc, so thank for your answer to this topic and thanks for your answers in general.
I did indeed follow the ec-debianize procedure and installed both packages.
In terms of kernel my first attempt was on Ubuntu 20.04 withLinux 5.8.0-45-generic x86_64 and second attempt on Mint 19.3 with Linux 5.0.0-32-generic x86_64, so i am very interested in the .deb package and revision to ec-debianize you will be working on. Where can i follow the development of this project or get notified of its completion?
Please Log in or Create an account to join the conversation.
- Grotius
 - 
				
											 - Offline
 - Platinum Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 2419
 - Thank you received: 2343
 
			
	
						23 Mar 2021 10:39				#203377
		by Grotius
	
	
		
			
	
			
			 		
													
	
				Replied by Grotius on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				Hi Stromholt,
5.8.0-45-generic x86_64, i don't know if this is compatible. Ubuntu is long time ago for me.
For Debian i use at least a "rt" in the kernel name.
Current development for compatibility with latest kernels is here
It's like a working dir for me.
so i am very interested in the .deb package and revision to ec-debianize you will be working on.
Just got linuxcnc deb package ready, and now starting with the ec-debianize story. I hope it goes well. But i know with linux
you could get a few head scratchers....
But my starting point is perfect. Ethercat-bus works already and Linuxcnc works.
					5.8.0-45-generic x86_64, i don't know if this is compatible. Ubuntu is long time ago for me.
For Debian i use at least a "rt" in the kernel name.
Current development for compatibility with latest kernels is here
It's like a working dir for me.
so i am very interested in the .deb package and revision to ec-debianize you will be working on.
Just got linuxcnc deb package ready, and now starting with the ec-debianize story. I hope it goes well. But i know with linux
you could get a few head scratchers....
But my starting point is perfect. Ethercat-bus works already and Linuxcnc works.
Please Log in or Create an account to join the conversation.
- Stormholt
 - 
				
									Topic Author
											 - Offline
 - Senior Member
 - 
				
			 
		Less
		More
		
			
	
		- Posts: 58
 - Thank you received: 8
 
			
	
						23 Mar 2021 12:20				#203383
		by Stormholt
	
	
		
			
	
			
			 		
													
	
				Replied by Stormholt on topic Linuxcnc-ethercat: undefined symbol: ecrt_slave_config_sdo			
			
				And of course it makes sense you would primarily work with real time kernels, however i am working on a team taking turns working with the actually cnc machine so i mainly develop and sim on my private ubuntu pc and later push an implement on the actual machine with an rt kernel.
I will try and setup a machine with this kernel (similar to our machine) to work with ethercat.
Good luck with the head scratching!
					I will try and setup a machine with this kernel (similar to our machine) to work with ethercat.
Good luck with the head scratching!
Please Log in or Create an account to join the conversation.
		Time to create page: 0.083 seconds