1.在使用insmod安装驱动的时候遇见,一个insmod:error inserting Invalid module format报错信息,通过多方考察,出现这个报错的原因是,编译驱动的系统内核版本与你目前需要安装这版驱动的系统内核是不一样导致的。
2.首先可以使用uname -a 或者uname -r命令来确认自己所用系统的内核版本
root@debian:~# uname -r
5.4.210.bsk.business.3-amd64
root@debian:~# uname -a
Linux debian 5.4.210.bsk.business.3-amd64 #5.4.210.bsk.business.3 SMP Debian 5.4.210.bsk.3 Thu Jan 5 06:59 x86_64 GNU/Linux
3.驱动可以通过modinfo ****.ko命令来查看驱动的编译时的系统内核版本,vermagic是编辑驱动时所用的内核环境。只有vermagic与你所用的系统内核版本一样才可以使用insmod命令加载内核
root@debian:~/ltloop/cscripts/ssa/hwapidriver/Debian10# modinfo HWAPIMod.ko
filename: /root/ltloop/cscripts/ssa/hwapidriver/Debian10/HWAPIMod.ko
license: GPL
version: 4.6
author: Naveena Nataraj
depends:
retpoline: Y
name: HWAPIMod
vermagic: 4.19.0-11-amd64 SMP mod_unload modversions
parm: phys_start:
Start Address for HWAPI Pool Memory Block 0 (charp)
parm: phys_end:
End Address for HWAPI Pool Memory Block 0 (charp)
parm: phys_start_1:
Start Address for HWAPI Pool Memory Block 1 (charp)
parm: phys_end_1:
End Address for HWAPI Pool Memory Block 1 (charp)
parm: phys_start_2:
Start Address for HWAPI Pool Memory Block 2 (charp)
parm: phys_end_2:
End Address for HWAPI Pool Memory Block 2 (charp)
parm: phys_start_3:
Start Address for HWAPI Pool Memory Block 3 (charp)
parm: phys_end_3:
End Address for HWAPI Pool Memory Block 3 (charp)
parm: debug:
Debug control: set to 1 to enable debug logging to dmesg log file (int)
4.目前通过查阅资料,只知道想要解决这个问题,第一种方法你重新在此内核版本版本下重新编译的驱动,第二种方法则是修改你内核的源码的一些东西,然后重新编译内核。如果有其他解决方法希望各位大佬多多指教。
5.借鉴:
1.ko与内核版本不一致,出现"invalid module format"的问题 - 秋水寒林 - 博客园 (cnblogs.com)
2.linux 内核模块 编译绕过insmod版本检查_insmod license检查-CSDN博客
标签:inserting,format,parm,module,HWAPI,内核,Memory,Block,Pool From: https://blog.csdn.net/yabgguangchao/article/details/143051827