为什么我必须在内核更新时重新安装视频驱动程序?

为什么我必须在内核更新时重新安装视频驱动程序?

我知道驱动程序被编译到内核中,但是为什么 API 与内核如此紧密地耦合?

我是否可以以某种方式安装驱动程序,以便每次更新时不必重新安装驱动程序?

我可以再次使用该驱动程序并对其进行编译,这意味着该驱动程序是有效的。那么我为什么需要手动执行此操作?

关联我使用的驱动程序

其 AMD Catalyst™ 13.1 专有 Linux x86 显示驱动程序

AMD Radeon HD 7700 系列

目前正在运行

Linux 3.5.0-25-generic #39-Ubuntu SMP  x86_64 x86_64 x86_64 GNU/Linux

答案1

任何不属于主内核树的驱动程序(当然包括专有驱动程序)都必须为新内核版本重建,因为内部内核接口可能已更改。驱动程序与内核紧密耦合,因为它们在内核空间中运行并使用内部内核接口。应用程序则不同,它们使用系统调用接口,即用户空间到内核的接口,该接口非常稳定。

Greg Kroah-Hartman 发表了一篇关于这个主题的很棒的文章这里

答案2

根据个人经验,新内核会放入一个全新的驱动程序/模块目录,并且不会尝试找出哪些驱动程序/模块可以从旧目录复制到新目录中。

您可以将旧的驱动程序/模块复制到新目录中,但(据我所知)没有一种好的方法可以自动确定驱动程序内核版本之间的兼容性。

我认为它可能可以创建一个包含脚本的包,这些脚本会在内核更改时自动运行以重建驱动程序,这样您就不必这样做了,但听起来这对于您正在使用的特定驱动程序来说并没有发生。

这并不罕见,因为为每个操作系统/视频驱动程序组合编写安装/升级脚本并进行测试很麻烦。

相关内容