Difference between revisions of "Nouveau (简体中文)"

From ArchWiki
Jump to: navigation, search
m (Fix category. See Help:Category.)
(update Pkg/AUR templates)
(Tag: wiki-scripts)
 
(25 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
[[Category:Graphics (简体中文)]]
 
[[Category:Graphics (简体中文)]]
[[Category:X Server (简体中文)]]
+
[[Category:X server (简体中文)]]
 
[[en:Nouveau]]
 
[[en:Nouveau]]
 
[[es:Nouveau]]
 
[[es:Nouveau]]
 
[[it:Nouveau]]
 
[[it:Nouveau]]
 +
[[ja:Nouveau]]
 
[[ru:Nouveau]]
 
[[ru:Nouveau]]
{{Article summary start}}
+
{{Related articles start (简体中文)}}
{{Article summary text|本文将介绍NVIDIA显卡开源3D加速Nouveau的安装等内容,此项目命名来源与法语"nouveau"一词,意味着“新的”.}}
+
{{Related|NVIDIA}}
{{Article summary heading|Related}}
+
{{Related|Xorg}}
{{Article summary wiki|NVIDIA}}
+
{{Related|Bumblebee}}
{{Article summary wiki|Xorg}}
+
{{Related articles end}}
{{Article summary end}}
+
{{TranslationStatus (简体中文)|Nouveau|2016-06-29|439290}}
 
+
 
本文包含安装和配置NVIDIA显卡开源驱动 [http://nouveau.freedesktop.org/ Nouveau]  的内容. 有关官方闭源驱动的信息请查看[[NVIDIA]].
 
本文包含安装和配置NVIDIA显卡开源驱动 [http://nouveau.freedesktop.org/ Nouveau]  的内容. 有关官方闭源驱动的信息请查看[[NVIDIA]].
  
== 针对已安装官方专有驱动的 ==
+
查找硬件的 [http://nouveau.freedesktop.org/wiki/CodeNames 代号] ([[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia 包含更详细的列表]]), 然后和 [http://nouveau.freedesktop.org/wiki/FeatureMatrix/ 功能矩阵] 进行比较,缺人支持的功能。
{{Note|此部分内容仅针对已安装[[NVIDIA]]专有驱动的,其他人可略过此部分}}
+
 
+
{{Tip|如果你要继续保留专有驱动, 你需要[[#Keep NVIDIA driver installed|配置一些东西]]来加载Nouvean驱动}}
+
如果你已经安装了专有驱动,请先卸载它们:
+
 
+
# pacman -Rdds nvidia nvidia-utils
+
# pacman -S --asdeps libgl
+
 
+
请确保已经删除Nvidia专有驱动创建的{{ic|/etc/X11/xorg.conf}} 文件 (或者你可以撤销对这个文件的修改), 否则X将无法正确加载nouveau驱动。
+
  
 
== 安装==
 
== 安装==
 +
[[pacman|安装]] {{Pkg|xf86-video-nouveau}} 包, 这个软件包提供了[[Xorg]] DDX 驱动进行 2D加速,它还会引入 {{Pkg|mesa}},为 DRI 驱动提供 3D 加速功能
  
在继续操作之前,请先弄清楚你显卡[http://nouveau.freedesktop.org/wiki/CodeNames 型号] (更详细的列表请看 [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]]) 的 [http://nouveau.freedesktop.org/wiki/FeatureMatrix/ 特性矩阵] ,看看你的显卡支持什么功能,另外,请确保您的[[Xorg]] 已经正确安装。
+
为x86_64提供32-bit支持, 请从[[multilib]]源中安装{{Pkg|lib32-mesa}}。
  
[[pacman|安装]] 位于 [[Official Repositories|官网]]的DDX 驱动通过{{Pkg|xf86-video-nouveau}} , 它是{{Pkg|nouveau-dri}}的依赖,为DRI驱动提供3D加速功能
+
要支持 OpenGL,请安装 {{Pkg|mesa-libgl}}, 使用 [[multilib]] 的话,还需要安装 {{Pkg|lib32-mesa-libgl}}。
 
+
为x86_64提供32-bit支持, 请从[[multilib]]源中安装{{Pkg|lib32-nouveau-dri}}
+
 
+
{{Note|在为3D驱动提交Bug前请先参阅 [http://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers 页]}}
+
  
 
== 加载 ==
 
== 加载 ==
  
Nouveau的内核模块应该在系统启动时就已加载完成。
+
Nouveau的内核模块应该在系统启动时就已自动加载,如果没有的话:
如果没有的话:
+
 
+
*确保你的[[Kernel parameters|内核参数]]中没有{{ic|nomodeset}} 或者 {{ic|1=vga=}}, 因为Nouveau需要内核模式设置才能成功运行(见下文)。
+
*另外,确保你没有在{{ic|/etc/modprobe.d/}}中通过modprobe名单禁用Nouveau。
+
 
+
=== KMS ===
+
 
+
{{Tip|如果你对这个问题的解决有问题的话,请访问[[Kernel_Mode_Setting#Forcing_modes_and_EDID|这个页面]].}}
+
  
Nouveau 驱动依赖[[Kernel Mode Setting]] (KMS)。当系统启动时,由于KMS初始化显示驱动程序可能会使分辨率发生改变。只需要安装Nouveau驱动,足以使系统能够识别并使用"延迟启动"模式初始化它。查看 [http://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting page]{{linkrot|2013|05|20}} 获取更多细节
+
* 确保你的[[Kernel parameters|内核参数]]中没有{{ic|nomodeset}} 或者 {{ic|1=vga=}}, 因为Nouveau需要内核模式设置。
 +
* 另外,确保你没有在 modprobe 配置文件 {{ic|/etc/modprobe.d/}} 或 {{ic|/usr/lib/modprobe.d/}} 中屏蔽 Nouveau。
 +
* 检查 dmesg 中有没有 opcode 错误,如果有的话,将 {{ic|1=nouveau.config=NvBios=PRAMIN}} 加入 [[Kernel parameters|内核参数]]禁止模块卸载[http://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]
  
{{Note|用户可能会更喜欢提前启动的方法,因为它不会在引导过程中产生讨厌的分辨率变化问题}}
+
=== 尽早启动 KMS ===
  
==== 延迟启动 ====
+
{{Tip|如果你对这个问题的解决有问题的话,请访问[[Kernel mode setting#Forcing modes and EDID|这个页面]].}}
  
这种方法会在其他内核模块都加载完成后启动KMS。你可以去看看名为"Loading modules"的那段文本
+
Nouveau 驱动依赖[[Kernel mode setting]] (KMS)。当系统启动时,KMS 模块会在其它模块之后启用,所以显示的分辨率发生改变。查看[http://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting 页面]获取更多细节。
  
==== 提早启动 ====
+
可以设置将 KMS 尽早启动,在 [[initramfs]] 加载时就接管功能。
  
这种方法会在[[initramfs]]加载后尽可能早的启动KMS。
+
将 {{ic|nouveau}} 加入 {{ic|/etc/mkinitcpio.conf}} 的 {{ic|MODULES}} 数组:
为了实现这个,可以在{{ic|/etc/mkinitcpio.conf}}的{{ic|MODULES}} 数组中添加 {{ic|nouveau}}:
+
  
 
  MODULES="... nouveau ..."
 
  MODULES="... nouveau ..."
Line 71: Line 52:
 
  # mkinitcpio -p <kernel preset; e.g. ''linux''>
 
  # mkinitcpio -p <kernel preset; e.g. ''linux''>
  
如果你的Nouneau出问题了,导致你不得不多次重建nouveau-drm去测试,请不要在initramfs中添加{{ic|nouveau}} ,那样太容易因为忘记重建initramfs而使测试更加艰难。仅仅使用“延迟启动”知道你能确保你的系统已经稳定。如果你需要自定义固件,使用initrams可能会有更多问题(一般不建议)
+
如果 Nouneau 出问题了,不得不多次重建 nouveau-drm 进行测试,请不要在 initramfs 中添加{{ic|nouveau}}。因为这样会容易忘记重建 initramfs 而使测试更加困难。先使用“延迟启动”,直到系统已经稳定。如果需要自定义固件,使用 initrams 可能会有更多问题(一般不建议)
 
+
 
+
  
 
==  提示与技巧  ==
 
==  提示与技巧  ==
Line 90: Line 69:
 
  EndSection
 
  EndSection
  
{{Tip|如果你需要经常性在两种驱动间切换,你可以使用 [[NVIDIA#Switching_between_nvidia_and_nouveau_drivers|这些脚本]].}}
+
{{Tip|如果你需要经常性在两种驱动间切换,你可以使用 [[NVIDIA#Switching between NVIDIA and nouveau drivers|这些脚本]].}}
  
 
如果你已经安装了官方驱动,又想在不重启的情况下测试Nouveau驱动,请确保‘nvidia’模块未被加载:
 
如果你已经安装了官方驱动,又想在不重启的情况下测试Nouveau驱动,请确保‘nvidia’模块未被加载:
Line 114: Line 93:
  
 
你可以在 [http://nouveau.freedesktop.org/wiki/Source Nouveau Source page]找到上游驱动源.
 
你可以在 [http://nouveau.freedesktop.org/wiki/Source Nouveau Source page]找到上游驱动源.
 
=== Tear-free compositing ===
 
 
编辑{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}}, 并在{{ic|Device}} 部分添加以下内容:
 
 
Section "Device"
 
    Identifier "nvidia card"
 
    Driver "nouveau"
 
    Option "GLXVBlank" "true"
 
EndSection
 
  
 
=== 双输出 ===
 
=== 双输出 ===
Line 175: Line 144:
 
=== 电源管理 ===
 
=== 电源管理 ===
  
GPU缩放依赖于GPU上的各个阶段的准备。 查看 [http://nouveau.freedesktop.org/wiki/PowerManagement Nouveau PowerManagement page] 以获得更多细节。
+
GPU缩放依赖于GPU上的各个阶段的准备。kernel 3.18 之后内核包含电源管理功能,如果要玩游戏的话,可以将 {{ic|1=nouveau.pstate=1}} 加入模块参数,启用 pstate,这样会获得更高的频率。
  
=== 启用 MSI (Message Signaled Interrupts) ===
+
查看 [http://nouveau.freedesktop.org/wiki/PowerManagement Nouveau PowerManagement page] 以获得更多细节。
  
这可能会有轻微的性能提高,不过只支持NV50以后的显卡,并且默认是禁用的。
+
=== 风扇控制 ===
  
{{Warning|这可能会导致一些主板/GPU的不稳定!}}
+
如果硬件支持,可以通过 {{ic|/sys}} 控制风扇转速。
  
配置文件位于: {{ic|/etc/modprobe.d/nouveau.conf}}:  
+
$ find /sys -name pwm1_enable
 +
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable
 +
$ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver
 +
../../../../bus/pci/drivers/nouveau
  
options nouveau msi=1
+
{{ic|pwm1_enable}} 可以设置为 0, 1 或 2,意思是 NONE, MANUAL 和 AUTO 风扇控制。设置为手动时,可以手动设置 {{ic|pwm1}},例如设置为 40 表示 40% 的转速.
 +
{{警告|风险自担,不要太热烧了显卡!}}
  
如果使用 [[#Early_start|提早启动]], 把 {{ic|1= FILES="/etc/modprobe.d/nouveau.conf"}} 这行加入到 {{ic|/etc/mkinitcpio.conf}}中, 然后重建内核镜像:
+
可以通过 udev 规则设置:
 +
$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules
 +
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"
  
# mkinitcpio -p <kernel preset; e.g. ''linux''>
+
参考:
 +
* http://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html
 +
* https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/
 +
 
 +
=== Optimus ===
 +
 
 +
要在笔记本上使用 [[Optimus]](使用两个 GPUs),请阅读 [[bumblebee]] 和 [[PRIME]]
  
重启系统使更改生效.
 
 
== 故障排除 ==
 
== 故障排除 ==
添加以下内容到内核命令(如果使用grub启动,在启动菜单下按{{keypress|e}})来打开视频调试:
+
添加以下内容到内核命令(如果使用grub启动,在启动菜单下按{{ic|e}})来打开视频调试:
 
  drm.debug=14 log_buf_len=16M
 
  drm.debug=14 log_buf_len=16M
  
Line 201: Line 181:
 
查看加载的视频模块的参数和值:
 
查看加载的视频模块的参数和值:
 
  modinfo -p video
 
  modinfo -p video
 +
 +
===禁用 MSI===
 +
如果出现模块加载错误或 X 服务器无法启用,请尝试将 {{ic|1=nouveau.config=NvMSI=0}} 加入 [[Kernel parameters|内核参数]].
 +
 +
Source: https://bugs.freedesktop.org/show_bug.cgi?id=78441
 +
 +
====Phantom Output Issue====
 +
 +
It is possible for the nouveau driver to detect "phantom" outputs.  For example, both VGA-1 and LVDS-1 are shown as connected but only LVDS-1 is present.
 +
 +
This causes display problems and a corrupted screen.
 +
 +
The problem can be overcome by disabling the phantom output (VGA-1 in the examples given) on the kernel command line of your boot loader. This can be achieved by appending the following:
 +
 +
video=VGA-1:d
 +
 +
Where '''d''' = disable.
 +
 +
The phantom output can also be disabled in X by adding the following to {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}}:
 +
 +
Section "Monitor"
 +
Identifier "VGA-1"
 +
Option "Ignore" "1"
 +
EndSection
 +
 +
Source: http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues
 +
 +
===Random lockups with kernel error messages===
 +
 +
Specific Nvidia chips with Nouveau may give random system lockups and more commonly throw many kernel messages, seen with ''dmesg''.  Try adding the {{ic|1=nouveau.noaccel=1}} [[kernel parameter]]. See [https://fedoraproject.org/wiki/Common_kernel_problems#Systems_with_nVidia_adapters_using_the_nouveau_driver_lock_up_randomly] for more information.

Latest revision as of 21:03, 31 October 2016

相关文章

翻译状态: 本文是英文页面 Nouveau翻译,最后翻译时间:2016-06-29,点击这里可以查看翻译后英文页面的改动。

本文包含安装和配置NVIDIA显卡开源驱动 Nouveau 的内容. 有关官方闭源驱动的信息请查看NVIDIA.

查找硬件的 代号 (Wikipedia 包含更详细的列表), 然后和 功能矩阵 进行比较,缺人支持的功能。

安装

安装 xf86-video-nouveau 包, 这个软件包提供了Xorg DDX 驱动进行 2D加速,它还会引入 mesa,为 DRI 驱动提供 3D 加速功能

为x86_64提供32-bit支持, 请从multilib源中安装lib32-mesa

要支持 OpenGL,请安装 mesa-libgl, 使用 multilib 的话,还需要安装 lib32-mesa-libgl

加载

Nouveau的内核模块应该在系统启动时就已自动加载,如果没有的话:

  • 确保你的内核参数中没有nomodeset 或者 vga=, 因为Nouveau需要内核模式设置。
  • 另外,确保你没有在 modprobe 配置文件 /etc/modprobe.d//usr/lib/modprobe.d/ 中屏蔽 Nouveau。
  • 检查 dmesg 中有没有 opcode 错误,如果有的话,将 nouveau.config=NvBios=PRAMIN 加入 内核参数禁止模块卸载[1]

尽早启动 KMS

Tip: 如果你对这个问题的解决有问题的话,请访问这个页面.

Nouveau 驱动依赖Kernel mode setting (KMS)。当系统启动时,KMS 模块会在其它模块之后启用,所以显示的分辨率发生改变。查看Nouveau KernelModeSetting 页面获取更多细节。

可以设置将 KMS 尽早启动,在 initramfs 加载时就接管功能。

nouveau 加入 /etc/mkinitcpio.confMODULES 数组:

MODULES="... nouveau ..."

如果你使用了一个自定义的EDID文件,你应该像这样把它加入到initramfs 中:

/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"

重新生成初始ramdisk映像:

# mkinitcpio -p <kernel preset; e.g. linux>

如果 Nouneau 出问题了,不得不多次重建 nouveau-drm 进行测试,请不要在 initramfs 中添加nouveau。因为这样会容易忘记重建 initramfs 而使测试更加困难。先使用“延迟启动”,直到系统已经稳定。如果需要自定义固件,使用 initrams 可能会有更多问题(一般不建议)

提示与技巧

保留已安装的Nvidia驱动

如果你想保留已经安装的官方驱动但又想要使用Nouveau驱动,像下面注释掉/etc/modprobe.d/nouveau_blacklist.conf 中的内容

#blacklist nouveau

并通过新建文件/etc/X11/xorg.conf.d/20-nouveau.conf 来告诉Xorg引导Nouveau驱动而不是Nvidia驱动,文件内容如下:

Section "Device"
    Identifier "Nvidia card"
    Driver "nouveau"
EndSection
Tip: 如果你需要经常性在两种驱动间切换,你可以使用 这些脚本.

如果你已经安装了官方驱动,又想在不重启的情况下测试Nouveau驱动,请确保‘nvidia’模块未被加载:

# rmmod nvidia

然后加载'nouveau' 模块:

# modprobe nouveau

并且通过内核信息确保它已被正常加载:

$ dmesg

安装最新的开发包

你可以通过AUR安装最新的git包:

你可以在 Nouveau Source page找到上游驱动源.

双输出

Nouveau 支持xrandr拓展和多显示器,教程详见RandR12

这是一个完整的例子 /etc/X11/xorg.conf.d/20-nouveau.conf 用来演示在双输出模式下运行两个显示器。当然,你可能更喜欢像GNOME显示控制中心 (gnome-control-center display)这样的图形化配置工具.

# the right one
Section "Monitor"
          Identifier   "NEC"
          Option "PreferredMode" "1280x1024_60.00"
EndSection

# the left one
Section "Monitor"
          Identifier   "FUS"
          Option "PreferredMode" "1280x1024_60.00"
          Option "LeftOf" "NEC"
EndSection

Section "Device"
    Identifier "nvidia card"
    Driver "nouveau"
    Option  "Monitor-DVI-I-1" "NEC"
    Option  "Monitor-DVI-I-2" "FUS"
EndSection

Section "Screen"
    Identifier "screen1"
   Monitor "NEC"
    DefaultDepth 24
      SubSection "Display"
       Depth      24
       Virtual 2560 2048
      EndSubSection
    Device "nvidia card"
EndSection

Section "ServerLayout"
    Identifier "layout1"
    Screen "screen1"
EndSection

设置控制台分辨率

使用fbset工具调整控制台分辨率. 你也可以通过 video= kernel 这样的选项来调整控制台分辨率 (详见 KMS).

电源管理

GPU缩放依赖于GPU上的各个阶段的准备。kernel 3.18 之后内核包含电源管理功能,如果要玩游戏的话,可以将 nouveau.pstate=1 加入模块参数,启用 pstate,这样会获得更高的频率。

查看 Nouveau PowerManagement page 以获得更多细节。

风扇控制

如果硬件支持,可以通过 /sys 控制风扇转速。

$ find /sys -name pwm1_enable
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable
$ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver
../../../../bus/pci/drivers/nouveau

pwm1_enable 可以设置为 0, 1 或 2,意思是 NONE, MANUAL 和 AUTO 风扇控制。设置为手动时,可以手动设置 pwm1,例如设置为 40 表示 40% 的转速.

警告: 风险自担,不要太热烧了显卡!

可以通过 udev 规则设置:

$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"

参考:

Optimus

要在笔记本上使用 Optimus(使用两个 GPUs),请阅读 bumblebeePRIME

故障排除

添加以下内容到内核命令(如果使用grub启动,在启动菜单下按e)来打开视频调试:

drm.debug=14 log_buf_len=16M

建立详细的Xorg日志:

startx -- -logverbose 9 -verbose 9

查看加载的视频模块的参数和值:

modinfo -p video

禁用 MSI

如果出现模块加载错误或 X 服务器无法启用,请尝试将 nouveau.config=NvMSI=0 加入 内核参数.

Source: https://bugs.freedesktop.org/show_bug.cgi?id=78441

Phantom Output Issue

It is possible for the nouveau driver to detect "phantom" outputs. For example, both VGA-1 and LVDS-1 are shown as connected but only LVDS-1 is present.

This causes display problems and a corrupted screen.

The problem can be overcome by disabling the phantom output (VGA-1 in the examples given) on the kernel command line of your boot loader. This can be achieved by appending the following:

video=VGA-1:d

Where d = disable.

The phantom output can also be disabled in X by adding the following to /etc/X11/xorg.conf.d/20-nouveau.conf:

Section "Monitor"
Identifier "VGA-1"
Option "Ignore" "1"
EndSection

Source: http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues

Random lockups with kernel error messages

Specific Nvidia chips with Nouveau may give random system lockups and more commonly throw many kernel messages, seen with dmesg. Try adding the nouveau.noaccel=1 kernel parameter. See [2] for more information.