Avnu / OpenAvnu

OpenAvnu - an Avnu sponsored repository for Time Sensitive Network (TSN and AVB) technology
467 stars 288 forks source link

avb-igb build failing, does avb-igb build supports on latest ubuntu 22.04 and kernal 6.5.0-15? #933

Closed varahalu10406 closed 8 months ago

varahalu10406 commented 8 months ago

igb_main.c:239:27: error: initialization of ‘vm_fault_t ()(struct vm_fault )’ {aka ‘unsigned int ()(struct vm_fault )’} from incompatible pointer type ‘int ()(struct vm_fault )’ [-Werror=incompatible-pointer-types] 239 | .fault = igb_vm_fault

MarcinMiklas commented 8 months ago

It looks like you didn't have the last version of igb_avb subrepo.

Go to lib/igb_avb subfolder and checkout latest master branch like this:

git checkout master git pull

Submodules commits are not automatically updated in master OpenAvnu repo.

varahalu10406 commented 8 months ago

Thanks; it fixed the compilation issue. But i am getting one more error root@user:OpenAvnu/lib/igb_avb/igb_avb/kmod# ARCH=I210 make make -C /lib/modules/6.5.0-15-generic/build M=/home/user/OpenAvnu/lib/igb_avb/igb_avb/kmod modules make[1]: Entering directory '/usr/src/linux-headers-6.5.0-15-generic' /usr/src/linux-headers-6.5.0-15-generic/Makefile:779: arch/I210/Makefile: No such file or directory make[2]: No rule to make target 'arch/I210/Makefile'. Stop. make[1]: [Makefile:234: __sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-15-generic' make: *** [Makefile:267: default] Error 2

MarcinMiklas commented 8 months ago

You must not provide ARCH=I210 when building kernel module. ARCH is used in kernel for different purposes than in OpenAvnu, it means CPU architecture in kernel. So try just "make" without ARCH.

varahalu10406 commented 8 months ago

Thanks , it's worked.

varahalu10406 commented 8 months ago

Hi @MarcinMiklas,

I have compiled with the latest 6.5.0.15 kernel and the igb_avb latest version, but I was not able to insert the igb.ko into the system.

ERROR: root@IND:/home/user/OpenAvnu/lib/igb_avb/igb_avb# insmod kmod/igb_avb.ko insmod: ERROR: could not insert module kmod/igb_avb.ko: Invalid module format

root@IND:/home/user/OpenAvnu/lib/igb_avb/igb_avb# uname -a Linux IND 6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

root@IND:/home/user/OpenAvnu/lib/igb_avb/igb_avb# modinfo kmod/igb_avb.ko filename: /home/user/OpenAvnu/lib/igb_avb/igb_avb/kmod/igb_avb.ko version: 5.3.2_AVB license: GPL description: Intel(R) Gigabit Ethernet Network Driver author: Intel Corporation, e1000-devel@lists.sourceforge.net srcversion: 206A9FE647C06222AF12CD0 alias: pci:v00008086d0000157Csvsdbcsci alias: pci:v00008086d0000157Bsvsdbcsci alias: pci:v00008086d000015F6svsdbcsci alias: pci:v00008086d00001538svsdbcsci alias: pci:v00008086d00001537svsdbcsci alias: pci:v00008086d00001536svsdbcsci alias: pci:v00008086d00001533svsdbcsci* depends: dca retpoline: Y name: igb_avb vermagic: 6.5.0-15-generic SMP preempt mod_unload modversions parm: tx_size_ethtool:Tx ring size passed in insmod parameter (int) parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (max 100000), default 3=adaptive (array of int) parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int) parm: Node:set the starting node to allocate memory on, default -1 (array of int) parm: LLIPort:Low Latency Interrupt TCP Port (0-65535), default 0=off (array of int) parm: LLIPush:Low Latency Interrupt on TCP Push flag (0,1), default 0=off (array of int) parm: LLISize:Low Latency Interrupt on Packet Size (0-1500), default 0=off (array of int) parm: RSS:Number of Receive-Side Scaling Descriptor Queues - must be 4 for AVB (array of int) parm: VMDQ:Number of Virtual Machine Device Queues: 0-1 = disable, 2-8 enable, default 0 (array of int) parm: max_vfs:Number of Virtual Functions: 0 = disable, 1-7 enable, default 0 (array of int) parm: MDD:Malicious Driver Detection (0/1), default 1 = enabled. Only available when max_vfs is greater than 0 (array of int) parm: QueuePairs:Enable Tx/Rx queue pairs for interrupt handling (0,1), default 1=on (array of int) parm: EEE:Enable/disable on parts that support the feature (array of int) parm: DMAC:Disable or set latency for DMA Coalescing ((0=off, 1000-10000(msec), 250, 500 (usec)) (array of int) parm: LRO:Large Receive Offload (0,1), default 0=off (array of int) parm: debug:Debug level (0=none, ..., 16=all) (int) parm: tx_size:Tx Ring size passed in insmod parameter (int)

MarcinMiklas commented 8 months ago

Please check dmesg output for more details. I don't have that kernel on any of my machines to check myself.

varahalu10406 commented 8 months ago

Thanks @MarcinMiklas ; it's fixed with below steps.

sudo apt update && sudo apt upgrade sudo apt remove --purge linux-headers-* sudo apt autoremove && sudo apt autoclean sudo apt install linux-headers-$(uname -r )

Recompiling agb_avb, able to insert the driver,

MarcinMiklas commented 8 months ago

Great, so I am closing the issue.