nouveau
nouveau (/nuːˈvoʊ/) 是一個自由及開放原始碼顯示卡驅動程式,是為Nvidia的显示卡所編寫,也可用於屬於系统芯片的NVIDIA Tegra系列,此驅動程式是由一群獨立的軟體工程師所編寫,Nvidia的員工也提供了少许幫助。
首次发布 | 1.0 / 2012年6月18日[1] |
---|---|
当前版本 |
|
源代码库 | |
操作系统 | Linux、BSD |
平台 | x86、x86-64、ARM |
类型 | 驱动程序及韌體 |
许可协议 | MIT許可證 |
网站 | nouveau |
該專案的目標為利用逆向工程Nvidia的專有Linux驅動程式來創造一個開放原始碼的驅動程式。由讓freedesktop.org託管的X.Org基金会所管理,並以Mesa 3D的一部份進行散布,該專案最初是基於只有2D繪圖能力的「nv」自由與開放原始碼驅動程式所開發的,但紅帽公司的開發者Matthew Garrett及其他人表示原先的程式碼被混淆處理過了[3]。nouveau以MIT許可證授權。
專案的名稱是從法文的「nouveau」而來,意思是「新的」[4]。這個名字是由原作者的的IRC客戶端的自動取代功能所建議的,當他鍵入「nv」時就被建議改為「nouveau」[5]。
軟體架構
Nouveau是一個Gallium3D風格的驅動程式,並以DRI的方式運作。它結合了兩個内核元件:直接呈現管理員及KMS驅動程式,以及使用者空間元件的libDRM及Mesa 3D。
Nouveau計畫支援所有的Nvidia微架構: Tesla、Fermi、Kepler、Maxwell及即將釋出的Pascal和Volta。
調整頻率
由於技術原因,Nvidia的顯示卡都會以一個較低的頻率(稱為「時脈」)啟動,在啟動後,驅動程式就會設定一個較高的頻率。因為缺乏顯示卡的相關文件,nouveau最初並不具備這個功能,這導致了效能的顯著損失[6]。在2014年6月終於找到解決的方法,調整頻率功能的支援終於被加入到nouveau中[7][8][9]。
已支援的介面
只有内核可以直接存取硬體,包括顯示卡。終端使用者軟體透過多種為特定功能所編寫的应用程序接口存取。Nouveau被以Gallium3D風格驅動程式的方式編寫,這就意味著它與其他Gallium3D驅動程式共享大多數的程式碼。多數此種共享程式碼都在Mesa 3D中可看到,並由各Linux发行版進行散佈。
Direct3D
Direct3D第9版的自由及開放原始碼實做在Mesa 3D可看到。它可以被nouveau所使用。但任何使用Direct3D的軟體都是為Windows所編寫的,所以這個軟體只能在Linux上與Wine一起使用。
OpenGL
渲染介面OpenGL是由科纳斯组织開發的。這個API的實做是Nvidia或AMD專有驅動程式的一部份。另一種實做方式是由自由軟體愛好者所編寫的,像是Brian Paul或是Intel及其合作者在Mesa 3D中所實做。因為是Gallium3D風格的驅動程式,Nouveau只需要一點小修改就可以與這個實做一同運作。
視訊加速
Mesa 3D支援多重呈現界面,所有已設計好的使用者空間程式,像是GStreamer等程式都可以存取相對應的SIP塊。也可以使用為了這個目的設計的電子電路,雖然這樣做會相對於使用PureVideo來說消耗更多的電量。
OpenCL
CUDA
Nouveau不支援CUDA技術。
歷史
Nouveau原先是使用Mesa 3D的DRI來呈現三维计算机图形,從而允許使用圖形處理器直接加速3D應用程式的圖形繪製;但在2008年2月對DRI的支援停止,並轉移到新的Gallium3D[14][15]。
在2013年9月23日[16],Nvidia公開宣佈他們將會釋出一些關於他們的圖形處理器的文件,來解決NVIDIA的圖形處理器在Nouveau上的可用性。
截至2014年1月31日,Nvidia的Alexandre Courbot致力於在一個廣泛的修補程式集中加入nouveau對GK20A(Tegra K1)的初步支援[17]。
採用
nouveau驅動程式已被以下Linux發行版作為Nvidia顯示卡的預設開放原始碼驅動程式: Fedora 11[18]及openSUSE 11.3[19]。它也被包含在Ubuntu 9.04的套件庫中[20],並在Ubuntu 10.04中作為預設的驅動程式[21] 它也包括在Debian的套件庫中[22]。這個驅動程式包含在這些作業系統中,但是並不允許3D硬體加速。
2009年12月10日被Linux內核2.6.33版接受成為暫時驅動程式[23]。
Fedora 13(2010年5月)允許安裝mesa-dri-drivers-experimental軟體包,可以此啟用實驗性的3D圖形硬體加速,若沒有安裝這個軟體包就無法啟用。
3D加速被Ubuntu 10.10包含在「libgl1-mesa-dri-experimental」軟體包中。
Compiz建議使用nouveau而非Nvidia專有驅動程式[24]。
2012年3月26日,nouveau驅動程式被標示為穩定,並從Linux核心的暫時驅動程式提升為核心驅動程式[25]。
2014年6月,Codethink回報可以在Linux內核 3.15上與Wayland一同執行,是使用EGL且是Tegra K1上的「100%開放原始碼的顯示卡驅動程式堆疊」[26]。
參見
- 自由及開放原始碼顯示卡驅動程式
- NVIDIA顯示核心列表
參考資料
- von Eitzen, Chris. . The H - Open. Heinz Heise. 18 June 2012 [2014-07-25]. (原始内容存档于2014-07-28).
- . [2018年8月12日] (英語).
- . 17 August 2006 [7 April 2013]. (原始内容存档于2019-02-17).
- . 7 July 2009 [23 September 2009]. (原始内容存档于2014-07-23).
- . LWN.net. 15 February 2008 [24 November 2009]. (原始内容存档于2012-03-01).
- . Phoronix. 2013-10-31 [2014-07-25]. (原始内容存档于2014-07-31).
- . Phoronix. 2014-05-17 [2014-07-25]. (原始内容存档于2014-07-03).
- . Phoronix. 2014-06-20 [2014-07-25]. (原始内容存档于2014-07-23).
- . freedesktop.org. [2014-07-25]. (原始内容存档于2014-08-09).
- . nouveau Wiki. [2014-07-25]. (原始内容存档于2012-03-01).
- . nouveau Wiki. [2014-07-25]. (原始内容存档于2015-01-01).
- . nouveau Wiki. [2014-07-25]. (原始内容存档于2012-03-01).
- . freedesktop.org. [2014-07-25]. (原始内容存档于2014-07-29).
- . LWN.net. 26 February 2008 [7 March 2008]. (原始内容存档于2012-03-01).
- . 7 March 2008 [7 March 2008]. (原始内容存档于2008年5月11日).
- . 2013-09-23 [2013-09-24]. (原始内容存档于2013-09-25).
- . 2014-01-31 [2014-07-25]. (原始内容存档于2014-09-06).
- Michael Larabel. . Phoronix. 2009-03-29 [2014-07-25]. (原始内容存档于2014-08-13).
- . openSUSE. [2010-12-29]. (原始内容存档于2011-03-04).
- Michael Larabel. . Phoronix. 2010-12-09 [2014-07-25]. (原始内容存档于2014-07-28).
- . [2010-02-24]. (原始内容存档于2019-10-18).
- Debian. . 2011-02-11 [2014-07-25]. (原始内容存档于2013-07-21).
- . Phoronix. 2009-12-11 [2014-07-25]. (原始内容存档于2014-08-08).
- Sam Spilsbury, head maintainer of Compiz. . 2010-05-21 [2014-07-25]. (原始内容存档于2014-08-12).
Our recommendation: Use nouveau.
- Jonathan Corbet. . LWN.net. 2012-03-23 [2014-07-25]. (原始内容存档于2014-07-22).
- . Phoronix. 2014-06-12 [2014-07-25]. (原始内容存档于2014-07-14).