Thank you Marek and Ross.

@Ross: I had a look into log.do_configure and found

checking for Linux kernel sources... /usr/src/linux-headers-6.5.0-14-generic 
(Kernel 6.5)

but these are from the host, my target kernel is a 6.1 with PREEMPT_RT !
Also it suggests to look into config.log, where I find

$ ../ethercat/configure --build=x86_64-linux --host=x86_64-poky-linux 
--target=x86_64-poky-linux --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin 
--sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share 
--sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var --libdir=/usr/lib 
--includedir=/usr/include --oldincludedir=/usr/include 
--infodir=/usr/share/info --mandir=/usr/share/man --disable-silent-rules 
--disable-dependency-tracking 
--with-libtool-sysroot=/home/vboxuser/yocto/poky/build/tmp/work/corei7-64-poky-linux/etherlab/0.1/recipe-sysroot
 --disable-static

so in fact my arguments aren't there.

--------

I tried the recipe from Marek (leaving --enable-igb and removing --disable-igb 
as suggested by Ross) and I got

| checking for kernel for igb driver... configure: error: kernel 6.1 not 
available for igb driver!

An internet search shows that the intel igb driver failing to build with 
several recent kernels 6.x seems known, and not related to yocto. So I gave up 
igb and settled for the generic driver with the following modification:

EXTRA_OECONF = "--enable-generic --disable-igb --disable-8139too 
--with-linux-dir=${STAGING_KERNEL_BUILDDIR}"

This way, bitbake completes without errors and I am able to test my image.

When I try to start the ethercat master with

/etc/init.d/ethercat start

I get:

Start EtherCAT master 1.6.0-rc1 modprobe: FATAL: Module ec_master not found in 
directory /lib/modules/6.1.59-rt16-intel-pk-preempt-rt failed

and in fact there is no ec_master.ko in /lib/modules (nor anywhere else).

If I understand correctly 
https://docs.yoctoproject.org/ref-manual/classes.html#autotools, the inherited 
autotools run configure behind the scenes. But the Etherlab installation 
instructions are:

./bootstrap
./configure { with args as needed }
make all modules
make modules_install install
depmod

bootstrap just contains an "autoreconf -i" which, according to the doc, is also 
automatically run behind the scenes.
Arguments for configure are supplied through EXTRA_OECONF and are OK
make modules and make modules_install are probably not run.

I see from the doc that there is also an EXTRA_OEMAKE variable which should 
pass additional arguments to make. So I try:

EXTRA_OEMAKE = "all modules"

but so bitbake fails. I see in log.do_compile:

/home/vboxuser/yocto/poky/build/tmp/work-shared/intel-corei7-64/kernel-source/scripts/Makefile.build:44:
 
/home/vboxuser/yocto/poky/build/tmp/work/corei7-64-poky-linux/ethercat/1.6.0-rc1+git/build/../git/Makefile:
 No such file or directory

I also see a worrying warning:

warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-poky-linux-gcc (GCC) 13.2.0
You are using:           gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

Why is it using the compiler from the host?
How can I add the custom make commands and depmod?

Thank you in advance for your replies.

--
Daniele Lugli
General Logic srl
Viale Curreno, 41
10133 Torino
Italy
tel +39 329 3933041
www.general-logic.com ( http://www.general-logic.com/ )
www.linkedin.com/in/daniele- lugli ( http://www.linkedin.com/in/daniele-lugli )
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#62206): https://lists.yoctoproject.org/g/yocto/message/62206
Mute This Topic: https://lists.yoctoproject.org/mt/103796912/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to