I put a custom XMC FPGA card on PCIe/XMC carrier card and plugged in TX1 PCIe slot, the FPGA card was detected by “lspci”.
I tried to build driver on TX1 from driver source by “.configure” and “make” but got errors, I figured out it’s because the kernel is 64 bits but rootfs and compiler are 32 bits.
I installed 64 bit compiler using dusty_nv’s sript but still got errors, e.g.,
scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
Failed to natively build driver, I tried to cross compile the driver from an x64 ubuntu PC by
“./configure -sysroot [path to l4t r23.1 root] -kernel [path to r23.1 kernel]”
and was able to build the driver without errors
I copied driver package to TX1 and ran “make install” without error, after that, I have
“vendor.so” in “/lib/modules/3.10.67-gcdddc52/kernel/drivers/addon/vendor”,
udev rule files in “/etc/udev/rules.d”
api lib modules in “usr/lib” with symbolic links,
all seem OK from driver installation instructions.
But when I tried “sudo modprobe vendor”, I got
modprobe: ERROR: could not insert 'vendor': Exec format error
“uname -r” showed “3.10.67-gcdddc52”
“modinfo vendor” showed
filename: /lib/modules/3.10.67-gcdddc52/kernel/drivers/addon/vendor/vendor.ko license: GPL depends: vermagic: 3.10.67-gcdddc52-dirty SMP preempt mod_unload aarch64 pa
The same FPGA card and driver package were used for different x64 PCs without issue.
Could this issue be caused by TX1’s 64/32 bit kernel/rootfs or something else?
Thanks for any input.