Unable to load external modules - unsupported RELA relocation:275

Hi,

I’m trying to use a pci-express capture card (model Magewell PCI pro capture, http://www.magewell.com/downloads) that is supposed to work with the tx1 board.

The driver is working fine on Jetson TX1 R24.2.1 but failed to load (modprobe) on R28.1 with this error : unsupported RELA relocation:275.

I suspect that there might be an issue in the current kernel.

Any help or fix would be greatly appreciated.

Thanks.

Is the driver part of upstream kernel? if yes, can you please give me the config that enables the driver?
If not, possible to share the location of driver?
Also, how did you compile the driver? If it is not compiled on target, probably you can give that a try.

The driver is not part of the kernel, it can be found here :
http://www.magewell.com/files/ProCaptureForLinuxTX1_3589.tar.gz

I compiled it on the tx1 board itself. Compilation went fine but the generated module cannot be loaded, complaining about “unsupported RELA relocation : 275”. I did some research and it “seems” to be an issue between the kernel version and the gcc compiler. If you could confirm this, it would be great and it would definetely help me to find a way to resolve the issue. I will try a more recent version of gcc as soon as i can.

Thank you

I came across the following issue when I had tried to compile. Is this expected? if not, could you tell me what am i missing here?

Building module for kernel 4.4.38-tegra ... make: Entering directory '/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build'
make -C /lib/modules/4.4.38-tegra/build M=/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.38-tegra'
  CC [M]  /home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-mem.o
  CC [M]  /home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-user.o
  CC [M]  /home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-kernel.o
  CC [M]  /home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-phy.o
scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
scripts/Makefile.build:261: recipe for target '/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-mem.o' failed
make[2]: *** [/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-mem.o] Error 2
make[2]: *** Waiting for unfinished jobs....
scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
scripts/Makefile.build:261: recipe for target '/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-phy.o' failed
make[2]: *** [/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-phy.o] Error 2
scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
scripts/Makefile.build:261: recipe for target '/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-kernel.o' failed
make[2]: *** [/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-kernel.o] Error 2
scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
scripts/Makefile.build:261: recipe for target '/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-user.o' failed
make[2]: *** [/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build/sources/dma/mw-dma-user.o] Error 2
Makefile:1414: recipe for target '_module_/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build' failed
make[1]: *** [_module_/home/nvidia/temp/ProCaptureForLinuxTX1_3589/mwcap_build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.38-tegra'
Makefile:33: recipe for target 'all' failed
make: *** [all] Error 2

Hello,

Sorry i have been away for while.

This is not the expected result but I had this issue while compiling the driver. I resolved it by running make modules_prepare in the kernel source directory (/usr/src/linux). This is required to build out of kernel tree modules. The problem occurs after once it is compiled, when loading the module

Hello,

Did you find a solution to this problem?

I’m trying to work with a gigEVision camera for what I need to compile and load a ebUniversalProEthernet kernel to speed up communications with the camera. I’m working with the TX2, kernel version 4.4.38.

I managed to compile the kernel in the same way m.radigue did, with the modules_prepare. But when I try to load the kernel I get the same error he gets:

insmod: ERROR: could not insert module ./<kernel_name>.ko: Invalid module format

Then I looked into the dmesg and had the following: unsupported RELA relocation:275

Could anybody help me out with this issue?

Thanks,

Hi phorstrand,

Please file your topic into TX2 forum: https://devtalk.nvidia.com/default/board/188/jetson-tx2/

Thanks