適用於 Linux 核心的 NVIDIA 開源視訊驅動程式

NVIDIA 宣布其專有視訊驅動程式集中包含的所有核心模組都是開源的。 該程式碼在 MIT 和 GPLv2 許可證下開放。 在 Linux 核心 86 及更新版本的系統上,為 x64_64 和 aarch3.10 架構提供了建置模組的能力。 用戶空間中使用的韌體和庫(例如 CUDA、OpenGL 和 Vulkan 堆疊)仍然是專有的。

預計該程式碼的發布將顯著提高Linux系統上使用NVIDIA GPU的可用性,加強與作業系統的集成,並簡化驅動程式的交付和問題的調試。 Ubuntu和SUSE的開發者已經宣布形成基於開放模組的軟體包。 開放模組的存在也將簡化 NVIDIA 驅動程式與基於非標準客製化 Linux 核心建構的系統的整合。 對於 NVIDIA 來說,開源將透過與社群更密切的互動以及第三方審查變更和獨立審核的可能性,幫助提高 Linux 驅動程式的品質和安全性。

值得注意的是,所提出的開放程式碼庫同時用於專有驅動程式的形成,特別是在今天發布的測試分支515.43.04中使用。 在這種情況下,主要的一個是封閉的儲存庫,並且在經過一定的處理和清理後,建議的開放程式碼庫將針對專有驅動程式的每個版本以強制轉換的形式進行更新。 不提供單獨變更的歷史記錄,僅提供每個版本驅動程式的一般提交(目前已發布驅動程式 515.43.04 的模組程式碼)。

然而,社區成員有機會提交拉取請求,以將他們的修復和更改推送到模組代碼,但這些更改不會反映為公共存儲庫中的單獨更改,而是首先集成到主私有存儲庫中然後才將其餘更改轉移到開啟。 要參與開發,必須簽署一份關於將所轉讓代碼的產權轉讓給 NVIDIA 的協議(貢獻者許可協議)。

核心模組的程式碼分為兩部分:不依賴作業系統的通用元件和與Linux核心互動的層。 為了減少安裝時間,通用組件仍然以已組裝的二進位檔案的形式在專有的 NVIDIA 驅動程式中提供,並且該層在每個系統上組裝,同時考慮到當前的核心版本和現有設定。 提供以下核心模組:nvidia.ko、nvidia-drm.ko(直接渲染管理器)、nvidia-modeset.ko 和 nvidia-uvm.ko(統一視訊記憶體)。

GeForce 系列和工作站 GPU 支援被列為 alpha 質量,但資料中心運算加速和平行運算 (CUDA) 架構中使用的基於 NVIDIA Turing 和 NVIDIA Ampere 架構的專用 GPU 得到完全支援和全面測試,適合在生產中使用項目(開源已經準備好取代專有驅動程式)。 計劃在未來版本中穩定對工作站的 GeForce 和 GPU 支援。 最終,開源程式碼庫的穩定性等級將達到專有驅動程式的水平。

在目前的形式下,將已發布的模組包含在主核心中是不可能的,因為它們不符合核心的編碼風格要求和架構約定,但 NVIDIA 打算與 Canonical、Red Hat 和 SUSE 合作解決此問題並穩定驅動軟體介面。 此外,已發布的程式碼可用於改進核心中包含的開源Nouveau驅動程序,該驅動程式使用與專有驅動程式相同的GPU韌體。

來源: opennet.ru

添加評論