热门问题
时间线
聊天
视角
nouveau
来自维基百科,自由的百科全书
Remove ads
nouveau (/nuːˈvoʊ/) 是一个自由及开放源代码显卡驱动程序,是为Nvidia的显卡所编写,也可用于属于系统芯片的NVIDIA Tegra系列,此驱动程序是由一群独立的软件工程师所编写,Nvidia的员工也提供了少许帮助。

该项目的目标为利用逆向工程Nvidia的专有Linux驱动程序来创造一个开放源代码的驱动程序。由让freedesktop.org托管的X.Org基金会所管理,并以Mesa 3D的一部分进行散布,该项目最初是基于只有2D绘图能力的“nv”自由与开放源代码驱动程序所开发的,但红帽公司的开发者Matthew Garrett及其他人表示原先的代码被混淆处理过了[3]。nouveau以MIT许可证许可。
项目的名称是从法文的“nouveau”而来,意思是“新的”[4]。这个名字是由原作者的IRC客户端的自动取代功能所建议的,当他键入“nv”时就被建议改为“nouveau”[5]。
Remove ads
软件架构

Nouveau是一个Gallium3D风格的驱动程序,并以DRI的方式运作。它结合了两个内核组件:直接呈现管理员及KMS驱动程序,以及用户空间组件的libDRM及Mesa 3D。
Nouveau项目支持所有的Nvidia微架构: Tesla、Fermi、Kepler、Maxwell、Pascal和Volta。
由于技术原因,Nvidia的显卡都会以一个较低的频率(称为“主频”)启动,在启动后,驱动程序就会设置一个较高的频率。因为缺乏显卡的相关文件,nouveau最初并不具备这个功能,这导致了性能的显著损失[6]。在2014年6月终于找到解决的方法,调整频率功能的支持终于被加入到nouveau中[7][8][9]。

与AMD形成强烈的对比,Nvidia并没有提供任何关于显卡的文件。 nouveau的开发者被迫使用净室逆向工程以获得让他们可以编写nouveau的资料。该项目使用多种自定义的程序以协助其逆向工程,像是MmioTrace(存储器映射I/O追踪)[10],REnouveau及Valgrind MMT[11]。参见Valgrind。
REnouveau (nouveau逆向工程)[12]是一个以GNU通用公共许可证许可(使用SDL)的收集大多数nouveau逆向工程资料的程序。NVIDIA专有驱动程序的用户可以透过REnouveau提供他们的NVIDIA显卡的硬件信息的方式来协助nouveau的开发。REnouveau以复制目前显卡MMIO标示空间的方式运作,然后绘制一些图形并获取另一份MMIO的复制品,并输出差异部分到一个文字档中。它执行了大约六打不同的测试,并压缩成tar.bz2压缩包,然后以电子邮件寄送,并自动转送到项目的FTP服务器供开发者进行分析。
已支持的接口
只有内核可以直接访问硬件,包括显卡。最终用户软件透过多种为特定功能所编写的应用程序接口访问。Nouveau被以Gallium3D风格驱动程序的方式编写,这就意味着它与其他Gallium3D驱动程序共享大多数的代码。多数此种共享代码都在Mesa 3D中可看到,并由各Linux发行版进行散布。
Mesa 3D及驱动程序都包含了多渲染界面的支持,设计则交由用户空间的程序,像是电子游戏或计算机辅助设计软件等,访问对应的SIP块。
Direct3D第9版的自由及开放源代码实做在Mesa 3D可看到。它可以被nouveau所使用。但任何使用Direct3D的软件都是为Windows所编写的,所以这个软件只能在Linux上与Wine一起使用。
渲染接口OpenGL是由科纳斯组织开发的。这个API的实做是Nvidia或AMD专有驱动程序的一部分。另一种实做方式是由自由软件爱好者所编写的,像是Brian Paul或是Intel及其合作者在Mesa 3D中所实做。因为是Gallium3D风格的驱动程序,Nouveau只需要一点小修改就可以与这个实做一同运作。
Mesa 3D支持多重呈现界面,所有已设计好的用户空间程序,像是GStreamer等程序都可以访问相对应的SIP块。也可以使用为了这个目的设计的电子电路,虽然这样做会相对于使用PureVideo来说消耗更多的电量。
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显示核心列表
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads