由于“执行格式错误”/“跳过无效重定位目标”而无法加载新模块/驱动程序

由于“执行格式错误”/“跳过无效重定位目标”而无法加载新模块/驱动程序

我正在尝试更新我们的 Intel C62x 芯片组 QuickAssist 技术附加卡的驱动程序,但在尝试加载模块时出现上述错误。我已经有一段时间没有这样做了,但我认为这个过程非常简单:

  1. 停止 QAT 服务 [确定]
  2. uninstallQAT 驱动程序 [ 确定 ]
  3. modprobe -r任何剩余的 QAT 模块 [ 确定 ]
  4. 下载、提取configuremake新的 QAT 驱动程序 [ 确定 ]
  5. install新驱动程序 [ 失败 ]

例如:

# make -j16 install
[...]
make -C /lib/modules/4.19.0-5-amd64/build M=/usr/local/src/QAT.L.4.20.0-00001/quickassist/qat INSTALL_MOD_DIR=updates modules_install
make[3]: Entering directory '/usr/src/linux-headers-4.19.0-5-amd64'
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_200xx/qat_200xx.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_200xxvf/qat_200xxvf.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c3xxx/qat_c3xxx.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c3xxxvf/qat_c3xxxvf.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c4xxx/qat_c4xxx.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c4xxxvf/qat_c4xxxvf.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c62x/qat_c62x.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_c62xvf/qat_c62xvf.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_common/intel_qat.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_d15xx/qat_d15xx.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_d15xxvf/qat_d15xxvf.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_dh895xcc/qat_dh895xcc.ko
  INSTALL /usr/local/src/QAT.L.4.20.0-00001/quickassist/qat/drivers/crypto/qat/qat_dh895xccvf/qat_dh895xccvf.ko
  DEPMOD  4.19.0-5-amd64
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[3]: Leaving directory '/usr/src/linux-headers-4.19.0-5-amd64'
make[2]: Leaving directory '/usr/local/src/QAT.L.4.20.0-00001/quickassist/qat'
Creating startup and kill scripts
Copying libqat_s.so to /usr/local/lib
Copying libusdm_drv_s.so to /usr/local/lib
Copying usdm module to system drivers
Group qat already exists.
Creating udev rules
Creating module.dep file for QAT released kernel object
This will take a few moments
Created symlink /etc/systemd/system/multi-user.target.wants/qat.service → /lib/systemd/system/qat.service.
Starting QAT service
modprobe: ERROR: could not insert 'qat_c62x': Exec format error
modprobe: ERROR: could not insert 'usdm_drv': Exec format error
modprobe: ERROR: could not insert 'qat_api': Exec format error
Restarting all devices.
Can not open /dev/qat_adf_ctl
Checking status of all devices.
Can not open /dev/qat_adf_ctl
    *** Error:usdm_drv module not installed ***
    *** Error:qat_api module not installed ***
    *** Error:qat_c62x module not installed ***
Can not open /dev/qat_adf_ctl
make[1]: Nothing to be done for 'install-data-am'.
make[1]: Leaving directory '/usr/local/src/QAT.L.4.20.0-00001'

# modprobe -v qat_c62x
insmod /lib/modules/4.19.0-5-amd64/updates/drivers/crypto/qat/qat_common/intel_qat.ko
modprobe: ERROR: could not insert 'qat_c62x': Exec format error

# modprobe -v intel_qat
insmod /lib/modules/4.19.0-5-amd64/updates/drivers/crypto/qat/qat_common/intel_qat.ko
modprobe: ERROR: could not insert 'intel_qat': Exec format error

#

同时系统日志显示:

<date> <host> kernel: [<uptime>] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 000000005c09d38d, val ffffffffc09ba2fe
<date> <host> kernel: [<uptime>] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000000690eef73, val ffffffffc0b572fe
<date> <host> kernel: [<uptime>] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 000000007d30ad16, val ffffffffc0c862fe
<date> <host> kernel: [<uptime>] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000000671d2da7, val ffffffffc0cd82fe
<date> <host> kernel: [<uptime>] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 0000000072877855, val ffffffffc0d2a2fe

这些错误到底是什么,原因是什么,可能的解决方案是什么?

非常感谢!

相关内容