For faster navigation, this Iframe is preloading the Wikiwand page for nouveau.

nouveau

nouveau
首次发布1.0 / 2012年6月18日,​12年前​(2012-06-18[1]
当前版本
  • 1.0.15 (2017年4月21日)[2]
编辑维基数据链接
原始码库 编辑维基数据链接
操作系统LinuxBSD
平台x86x86-64ARM
类型驱动程式固件
许可协议MIT许可证
网站nouveau.freedesktop.org
中间:自由与开放原始码堆栈。右方:专有驱动程式。

nouveau (/nˈv/) 是一个自由及开放原始码显卡驱动程式英语Free and open-source graphics device driver,是为Nvidia显卡所编写,也可用于属于系统晶片NVIDIA Tegra系列,此驱动程式是由一群独立的软件工程师所编写,Nvidia的员工也提供了少许帮助。

该项目的目标为利用逆向工程Nvidia的专有Linux驱动程式来创造一个开放原始码的驱动程式。由让freedesktop.org托管的X.Org基金会所管理,并以Mesa 3D的一部分进行散布,该项目最初是基于只有2D绘图能力的“nv”自由与开放原始码驱动程式所开发的,但红帽公司的开发者Matthew Garrett及其他人表示原先的代码被混淆处理过了[4]。nouveau以MIT许可证许可。

项目的名称是从法文的“nouveau”而来,意思是“新的”[5]。这个名字是由原作者的的IRC客户端的自动取代功能所建议的,当他键入“nv”时就被建议改为“nouveau”[6]

软件架构

Nouveau已经以Gallium3D风格显卡驱动程式的方式重写了。

Nouveau是一个Gallium3D风格的驱动程式,并以DRI的方式运作。它结合了两个内核组件:直接呈现管理员及KMS驱动程式,以及用户空间组件的libDRM及Mesa 3D

Nouveau项目支持所有的Nvidia微架构: Tesla、Fermi、Kepler、Maxwell、Pascal和Volta。

调整频率

由于技术原因,Nvidia的显卡都会以一个较低的频率(称为“时脉”)启动,在启动后,驱动程式就会设置一个较高的频率。因为缺乏显卡的相关文件,nouveau最初并不具备这个功能,这导致了性能的显著损失[7]。在2014年6月终于找到解决的方法,调整频率功能的支持终于被加入到nouveau中[8][9][10]

工具

动作中的REnouveau的截图(REnouveau是左上角的蓝色视窗)

AMD形成强烈的对比,Nvidia并没有提供任何关于显卡的文件。 nouveau的开发者被迫使用净室逆向工程以获得让他们可以编写nouveau的资料。该项目使用多种自定义的程序以协助其逆向工程,像是MmioTrace(存储器映射I/O追踪)[11],REnouveau及Valgrind MMT[12]。参见Valgrind

REnouveau

REnouveau (nouveau逆向工程)[13]是一个以GNU通用公共许可证许可(使用SDL)的收集大多数nouveau逆向工程资料的程序。NVIDIA专有驱动程式的用户可以透过REnouveau提供他们的NVIDIA显卡的硬件资讯的方式来协助nouveau的开发。REnouveau以复制目前显卡MMIO标示空间的方式运作,然后绘制一些图形并获取另一份MMIO的复制品,并输出差异部分到一个文字档中。它执行了大约六不同的测试,并压缩成tar.bz2压缩档,然后以电邮寄送,并自动转送到项目的FTP伺服器供开发者进行分析。

已支持的接口

只有内核可以直接存取硬件,包括显卡。最终用户软件透过多种为特定功能所编写的应用程序接口存取。Nouveau被以Gallium3D风格驱动程式的方式编写,这就意味着它与其他Gallium3D驱动程式共享大多数的代码。多数此种共享代码都在Mesa 3D中可看到,并由各Linux发行版进行散布。

渲染API

Mesa 3D及驱动程式都包含了多渲染界面的支持,设计则交由用户空间的程序,像是电子游戏电脑辅助设计软件等,存取对应的SIP块。

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来说消耗更多的电量。

Nouveau支持PureVideo技术,并提供VDPAU及XvMC的方式来存取它[14]

计算用API

OpenCL

OpenCL

CUDA

Nouveau不支持CUDA技术。

历史

左方:传统方式的显卡驱动程式;右方:Gallium3D风格的显卡驱动程式。两种类型都共享了许多自由及开放原始码的代码。

Nouveau原先是使用Mesa 3D的DRI来呈现三维计算机图形,从而允许使用图形处理器直接加速3D应用程式的图形绘制;但在2008年2月对DRI的支持停止,并转移到新的Gallium3D[15][16]

在2013年9月23日[17],Nvidia公开宣布他们将会发布一些关于他们的图形处理器的文件,来解决NVIDIA的图形处理器在Nouveau上的可用性。

截至2014年1月31日,Nvidia的Alexandre Courbot致力于在一个广泛的补丁集中加入nouveau对GK20A(Tegra K1)的初步支持[18]

采用

Linux图形堆栈的说明:直接呈现管理员、KMS驱动程式、libDRM、Mesa 3D、显示伺服器皆为视窗型系统的组件,但玩游戏时并不直接需要这些组件。

nouveau驱动程式已被以下Linux发行版作为Nvidia显卡的默认开放原始码驱动程式: Fedora 11[19]openSUSE 11.3[20]。它也被包含在Ubuntu 9.04的包库中[21],并在Ubuntu 10.04中作为默认的驱动程式[22] 它也包括在Debian的包库中[23]。这个驱动程式包含在这些操作系统中,但是并不允许3D硬件加速。

2009年12月10日被Linux内核2.6.33版接受成为暂时驱动程式[24]

Fedora 13(2010年5月)允许安装mesa-dri-drivers-experimental软件包,可以此激活实验性的3D图形硬件加速,若没有安装这个软件包就无法激活。

3D加速被Ubuntu 10.10包含在“libgl1-mesa-dri-experimental”软件包中。

Compiz建议使用nouveau而非Nvidia专有驱动程式[25]

2012年3月26日,nouveau驱动程式被标示为稳定,并从Linux核心的暂时驱动程式提升为核心驱动程式[26]

2014年6月,Codethink回报可以在Linux内核 3.15上与Wayland一同执行,是使用EGL且是Tegra K1上的“100%开放原始码的显卡驱动程式堆栈”[27]

参见

参考资料

  1. ^ von Eitzen, Chris. Free NVIDIA graphics driver reaches version 1.0. The H - Open. Heinz Heise. 18 June 2012 [2014-07-25]. (原始内容存档于2014-07-28). 
  2. ^ nouveau/xf86-video-nouveau - Nouveau Xorg driver for NVIDIA chips. [2018年8月12日] (英语). 
  3. ^ Mirkin, Ilia. [Nouveau] [ANNOUNCE] xf86-video-nouveau 1.0.17. nouveau (邮件列表). 2021-01-23 [2021-01-23]. (原始内容存档于2021-01-30). 
  4. ^ Debian bug tracker. 17 August 2006 [7 April 2013]. (原始内容存档于2019-02-17). 
  5. ^ nouveau Wiki. 7 July 2009 [23 September 2009]. (原始内容存档于2014-07-23). 
  6. ^ The state of Nouveau, part I. LWN.net. 15 February 2008 [24 November 2009]. (原始内容存档于2012-03-01). 
  7. ^ Nouveau vs. NVIDIA proprietary Linux vs. NVIDIA Windows 8.1. Phoronix. 2013-10-31 [2014-07-25]. (原始内容存档于2014-07-31). 
  8. ^ Nouveau Re-Clocking Details Discussed Further. Phoronix. 2014-05-17 [2014-07-25]. (原始内容存档于2014-07-03). 
  9. ^ Nouveau Re-Clocking Is Way Faster. Phoronix. 2014-06-20 [2014-07-25]. (原始内容存档于2014-07-23). 
  10. ^ Nouveau PowerManagement documentation. freedesktop.org. [2014-07-25]. (原始内容存档于2014-08-09). 
  11. ^ MmioTrace (Memory Mapped I/O Trace). nouveau Wiki. [2014-07-25]. (原始内容存档于2012-03-01). 
  12. ^ Valgrind-mmt. nouveau Wiki. [2014-07-25]. (原始内容存档于2015-01-01). 
  13. ^ REnouveau (Reverse Engineering for nouveau). nouveau Wiki. [2014-07-25]. (原始内容存档于2012-03-01). 
  14. ^ Nouveau Video Acceleration. freedesktop.org. [2014-07-25]. (原始内容存档于2014-07-29). 
  15. ^ The state of Nouveau, part 2. LWN.net. 26 February 2008 [7 March 2008]. (原始内容存档于2012-03-01). 
  16. ^ Nouveau Companion 36 - The irregular Nouveau-Development companion. 7 March 2008 [7 March 2008]. (原始内容存档于2008年5月11日). 
  17. ^ Nvidia offers to release public documentation on certain aspects of their GPUs. 2013-09-23 [2013-09-24]. (原始内容存档于2013-09-25). 
  18. ^ drm/nouveau: initial support for GK20A (Tegra K1). 2014-01-31 [2014-07-25]. (原始内容存档于2014-09-06). 
  19. ^ Michael Larabel. Testing Out The Nouveau Driver On Fedora 11. Phoronix. 2009-03-29 [2014-07-25]. (原始内容存档于2014-08-13). 
  20. ^ Product highlights for openSUSE 11.3 version. openSUSE. [2010-12-29]. (原始内容存档于2011-03-04). 
  21. ^ Michael Larabel. Ubuntu 9.04 To Get Nouveau Driver. Phoronix. 2010-12-09 [2014-07-25]. (原始内容存档于2014-07-28). 
  22. ^ Bug #454821: Bugs: "xserver-xorg-video-nv" package: Ubuntu. [2010-02-24]. (原始内容存档于2019-10-18). 
  23. ^ Debian. Nouveau nVidia drivers now available in Debian experimental. 2011-02-11 [2014-07-25]. (原始内容存档于2013-07-21). 
  24. ^ Nouveau To Go Into Linux 2.6.33 Kernel!. Phoronix. 2009-12-11 [2014-07-25]. (原始内容存档于2014-08-08). 
  25. ^ Sam Spilsbury, head maintainer of Compiz. Beware the benchmarks.. 2010-05-21 [2014-07-25]. (原始内容存档于2014-08-12). Our recommendation: Use nouveau. 
  26. ^ Jonathan Corbet. The Nouveau driver graduates from staging. LWN.net. 2012-03-23 [2014-07-25]. (原始内容存档于2014-07-22). 
  27. ^ Codethink Gets The NVIDIA Jetson TK1 Running With Linux 3.15, Wayland. Phoronix. 2014-06-12 [2014-07-25]. (原始内容存档于2014-07-14). 
{{bottomLinkPreText}} {{bottomLinkText}}
nouveau
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?