如何编译驱动,可以随着官方kernel升级,而驱动不升级?

官方内核里有的网卡驱动没有加进去,请问如何编译这个网卡驱动,系统还可以随着官方内核升级,而这个驱动不用升级可以继续使用?再一个指定的大版本下,比如6.6.xxx都不用更换驱动。

关于网卡驱动的构建:
一般网卡驱动厂商都会提供驱动源码包,你只需要按照源码包中的readme文档编译就行。然后编译出来的ko文件在系统上使用insmod/modprobe命令进行安装。

关于内核升级驱动不跟着升级这个问题:
1.如果驱动没有任何改变肯定是不行的,首先加载时新内核的签名检测都过不去,导致内核ko模块无法进行加载。
2.如果后续想升级内核有不想管驱动的升级,可以使用DKMS方式,这样的话当内核升级的话,系统会触发驱动的自动构建和安装以适配新的内核。
注意:
如果内核升级 后导致内核 的kAPI受到影响发生变化,这些KAPI又刚好影响到当前驱动的接口,那么DKMS是无法自动 构建和安装相应驱动的。

关于DKMS的概念你可以参考如下链接:
https://wiki.archlinuxcn.org/zh-hans/DKMS

1 个赞

非常感谢,这也算是最终答案了。