diff --git a/0001-ethercat-Fix-ethercat-tool-compilation.patch b/0001-ethercat-Fix-ethercat-tool-compilation.patch new file mode 100644 index 0000000000000000000000000000000000000000..de7d3169ff2efa29f2fcd036a06bd339e40ab95c --- /dev/null +++ b/0001-ethercat-Fix-ethercat-tool-compilation.patch @@ -0,0 +1,74 @@ +From 92ed8d410831f06fcfada4102bee330f4866dd04 Mon Sep 17 00:00:00 2001 +From: xxhong +Date: Mon, 10 Oct 2022 05:05:42 +0800 +Subject: [PATCH] ethercat: Fix ethercat tool compilation + +* After commit f3ccfda193197 ("ethtool: extend coalesce setting uAPI with CQE mode") and + commit 7462494408cd3 ("ethtool: extend ringparam setting/getting API with rx_buf_len"), + ethtool extend the setting/getting API, it causes the following compilation error: + + ethtool-5.10-ethercat.c: error: initialization of '...' from incompatible pointer type '...' [-Werror=incompatible-pointer-types] + .get_ringparam = e1000_get_ringparam, + ^~~~~~~~~~~~~~~~~~~ + .set_ringparam = e1000_set_ringparam, + ^~~~~~~~~~~~~~~~~~~ + .get_coalesce = e1000_get_coalesce, + ^~~~~~~~~~~~~~~~~~ + .set_coalesce = e1000_set_coalesce, + ^~~~~~~~~~~~~~~~~~ + Modify these function arguments to fix this error. + +Signed-off-by: xxhong +Signed-off-by: root + +diff --git a/devices/e1000e/ethtool-5.10-ethercat.c b/devices/e1000e/ethtool-5.10-ethercat.c +index 3e71855..c03eff6 100644 +--- a/devices/e1000e/ethtool-5.10-ethercat.c ++++ b/devices/e1000e/ethtool-5.10-ethercat.c +@@ -655,7 +655,9 @@ static void e1000_get_drvinfo(struct net_device *netdev, + } + + static void e1000_get_ringparam(struct net_device *netdev, +- struct ethtool_ringparam *ring) ++ struct ethtool_ringparam *ring, ++ struct kernel_ethtool_ringparam *kernel_ring, ++ struct netlink_ext_ack *extack) + { + struct e1000_adapter *adapter = netdev_priv(netdev); + +@@ -666,7 +668,9 @@ static void e1000_get_ringparam(struct net_device *netdev, + } + + static int e1000_set_ringparam(struct net_device *netdev, +- struct ethtool_ringparam *ring) ++ struct ethtool_ringparam *ring, ++ struct kernel_ethtool_ringparam *kernel_ring, ++ struct netlink_ext_ack *extack) + { + struct e1000_adapter *adapter = netdev_priv(netdev); + struct e1000_ring *temp_tx = NULL, *temp_rx = NULL; +@@ -1991,7 +1995,9 @@ static int e1000_set_phys_id(struct net_device *netdev, + } + + static int e1000_get_coalesce(struct net_device *netdev, +- struct ethtool_coalesce *ec) ++ struct ethtool_coalesce *ec, ++ struct kernel_ethtool_coalesce *kernel_coal, ++ struct netlink_ext_ack *extack) + { + struct e1000_adapter *adapter = netdev_priv(netdev); + +@@ -2004,7 +2010,9 @@ static int e1000_get_coalesce(struct net_device *netdev, + } + + static int e1000_set_coalesce(struct net_device *netdev, +- struct ethtool_coalesce *ec) ++ struct ethtool_coalesce *ec, ++ struct kernel_ethtool_coalesce *kernel_coal, ++ struct netlink_ext_ack *extack) + { + struct e1000_adapter *adapter = netdev_priv(netdev); + +-- +2.33.0 + diff --git a/ethercat-1.5.2.tar.bz2 b/ethercat-1.5.2.tar.bz2 deleted file mode 100644 index 30fc2bfe2cf4b0132e8fe7cb49d3a28bed3e0606..0000000000000000000000000000000000000000 Binary files a/ethercat-1.5.2.tar.bz2 and /dev/null differ diff --git a/ethercat-e1000e-5.10.tar.gz b/ethercat-e1000e-5.10.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7407e82df58e6db1b2864d41f3504e0f184ba7bf Binary files /dev/null and b/ethercat-e1000e-5.10.tar.gz differ diff --git a/ethercat-igh.spec b/ethercat-igh.spec index d891b92a3b992f2acfa715e3463474d398e3060e..35bacc7917907ee6d801c278b1987e577cc65ca7 100644 --- a/ethercat-igh.spec +++ b/ethercat-igh.spec @@ -1,27 +1,26 @@ Name: ethercat-igh -Version: 1.5.2 -Release: 4 +Version: 5.10 +Release: 5 Summary: IgH EtherCAT Master for Linux License: LGPLv2.1 Group: Development/Other Url: https://www.etherlab.org/en/ethercat/index.php -Source0: ethercat-%{version}.tar.bz2 +Source0: ethercat-e1000e-%{version}.tar.gz Packager: Anton Midyukov BuildRequires: gcc-c++ BuildRequires: make -Requires: kernel-xeno -Patch0: ethercat-igh-xeno-00.patch -Patch1: ethercat-igh-gpos-initd.patch +BuildRequires: patchelf +BuildRequires: kernel-headers, kernel-devel +Patch0: 0001-ethercat-Fix-ethercat-tool-compilation.patch %description This is an open-source EtherCAT master implementation for Linux. %prep -%setup -q -n ethercat-%{version} +%setup -q -n ethercat-e1000e-%{version} %patch0 -p1 -%patch1 -p1 CPPFLAGS="${CPPFLAGS} -Doff64_t=__off64_t";export CPPFLAGS; ./bootstrap @@ -34,13 +33,15 @@ if [ $arch == "x86_64" ] ; then fi echo $enable_cycles_value -%configure --with-linux-dir=/root/project/kernel-modify2 --with-module-dir=/lib/modules/ethercat_gpos --enable-generic=yes --enable-8139too=yes --enable-e100=yes --enable-e1000=yes --enable-e1000e=yes --enable-ccat=yes --enable-igb=yes --enable-8139too=yes --enable-debug-if=no --enable-eoe=yes --enable-cycles=$enable_cycles_value --enable-hrtimer=yes --enable-regalias=yes --enable-tool=yes --enable-userlib=yes --enable-tty=no --enable-wildcards=yes --enable-sii-assign=yes --enable-wildcards=yes --enable-static --enable-shared +%configure --with-linux-dir=/usr/src/kernels/`ls /usr/src/kernels/ | awk -F' ' '{ print $1 }' | sed -n '1p'` --enable-generic=yes --enable-8139too=no --enable-e100=no --enable-e1000=no --enable-e1000e=yes --enable-ccat=no --enable-igb=no --enable-debug-if=no --enable-eoe=yes --enable-cycles=$enable_cycles_value --enable-hrtimer=yes --enable-regalias=yes --enable-tool=yes --enable-userlib=yes --enable-tty=no --enable-wildcards=yes --enable-sii-assign=yes --enable-wildcards=yes --enable-static --enable-shared %build %make_build make modules %install +make modules_install INSTALL_MOD_PATH=${RPM_BUILD_ROOT} INSTALL_MOD_DIR=ethercat + mkdir -p $RPM_BUILD_ROOT/usr/include/ install -c -m 644 include/ecrt.h include/ectty.h $RPM_BUILD_ROOT/usr/include/ @@ -59,7 +60,6 @@ install -c script/ethercat.service $RPM_BUILD_ROOT/lib/systemd/system mkdir -p $RPM_BUILD_ROOT/bin install -c tool/ethercat $RPM_BUILD_ROOT/bin/ -install -c mailbox_gateway/ethercat_mbg $RPM_BUILD_ROOT/bin/ mkdir -p $RPM_BUILD_ROOT/usr/lib64 install -c lib/.libs/libethercat.so.1.1.0 $RPM_BUILD_ROOT/usr/lib64/libethercat.so.1.1.0 @@ -72,22 +72,6 @@ ranlib $RPM_BUILD_ROOT/usr/lib64/libethercat.a (cd $RPM_BUILD_ROOT/usr/lib64 && patchelf --set-soname libethercat.so.1 libethercat.so.1.1.0) (cd $RPM_BUILD_ROOT/usr/lib64 && { ln -s -f libethercat.so.1.1.0 libethercat.so || { rm -f libethercat.so && ln -s libethercat.so.1.1.0 libethercat.so; }; }) -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/ccat -install -c devices/ccat/ec_ccat.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/ccat/ec_ccat.ko -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/e1000 -install -c devices/e1000/ec_e1000.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/e1000/ec_e1000.ko -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/e1000e -install -c devices/e1000e/ec_e1000e.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/e1000e/ec_e1000e.ko -install -c devices/ec_8139too.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/ec_8139too.ko -install -c devices/ec_e100.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/ec_e100.ko -install -c devices/ec_generic.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/ec_generic.ko -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/igb -install -c devices/igb/ec_igb.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/devices/igb/ec_igb.ko -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/examples/mini -install -c examples/mini/ec_mini.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/examples/mini/ec_mini.ko -mkdir -p $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/master -install -c master/ec_master.ko $RPM_BUILD_ROOT/lib/modules/ethercat_gpos/master/ec_master.ko - %postun kerName2=`uname -r` if [ -d /lib/modules/$kerName2/ethercat_gpos ] @@ -104,7 +88,6 @@ depmod -a %files /bin/ethercat -/bin/ethercat_mbg /etc/ethercat.conf /etc/init.d/ethercat /etc/sysconfig/ethercat @@ -118,12 +101,10 @@ depmod -a /usr/lib64/libethercat.so /usr/lib64/libethercat.so.1 -/lib/modules/ethercat_gpos/devices/ccat/ec_ccat.ko -/lib/modules/ethercat_gpos/devices/e1000/ec_e1000.ko -/lib/modules/ethercat_gpos/devices/e1000e/ec_e1000e.ko -/lib/modules/ethercat_gpos/devices/ec_8139too.ko -/lib/modules/ethercat_gpos/devices/ec_e100.ko -/lib/modules/ethercat_gpos/devices/ec_generic.ko -/lib/modules/ethercat_gpos/devices/igb/ec_igb.ko -/lib/modules/ethercat_gpos/examples/mini/ec_mini.ko -/lib/modules/ethercat_gpos/master/ec_master.ko +%exclude /lib/modules/*/modules.* +/lib/modules/*/ethercat/* + +%changelog +* Fri Feb 24 2023 xxhong - 5.10-5 +- add 0001-ethercat-Fix-ethercat-tool-compilation.patch +- remove 8139too,e100,e1000,ccat,igb