為什麼我必須在內核更新時重新安裝視訊驅動程式?

為什麼我必須在內核更新時重新安裝視訊驅動程式?

我知道驅動程式被編譯到核心中,但為什麼 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

根據個人經驗,新核心會放入全新的驅動程式/模組目錄中,並且不會嘗試找出哪些驅動程式/模組可以從舊目錄複製到新目錄中。

您可能可以將舊的驅動程式/模組複製到新目錄中,但(據我所知)沒有好方法可以自動確定驅動程式的核心版本之間的兼容性。

我認為它可能可以建立一個包,其中包含在內核更改時自動運行的腳本來重建驅動程序,這樣您就不必這樣做,但聽起來您正在使用的特定驅動程式不會發生這種情況。

這並不罕見,因為為每個作業系統/視訊驅動程式組合編寫安裝/升級腳本並對其進行測試是一件痛苦的事情。

相關內容