Difference between revisions of "Nouveau"
m (Added basic troubleshooting section..) |
m (→Enable MSI (Message Signaled Interrupts)) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
{{Article summary text|This article details the installation of the Nouveau Open Source 3D acceleration graphics driver for NVIDIA cards. The name of the project refers to the fact that "nouveau" means "new" in French.}} | {{Article summary text|This article details the installation of the Nouveau Open Source 3D acceleration graphics driver for NVIDIA cards. The name of the project refers to the fact that "nouveau" means "new" in French.}} | ||
{{Article summary heading|Related}} | {{Article summary heading|Related}} | ||
− | {{Article summary wiki| | + | {{Article summary wiki|NVIDIA}} |
{{Article summary wiki|Xorg}} | {{Article summary wiki|Xorg}} | ||
− | |||
{{Article summary end}} | {{Article summary end}} | ||
This article covers installing and configuring the [http://nouveau.freedesktop.org/ Nouveau] open source driver for NVIDIA graphic cards. For information about the official proprietary driver, see [[NVIDIA]]. | This article covers installing and configuring the [http://nouveau.freedesktop.org/ Nouveau] open source driver for NVIDIA graphic cards. For information about the official proprietary driver, see [[NVIDIA]]. | ||
− | Do not forget to check out the [http://nouveau.freedesktop.org/wiki/FAQ Nouveau | + | Do not forget to check out the [http://nouveau.freedesktop.org/wiki/FAQ Nouveau FAQ] if you have any questions, as there is a lot of valuable information there. |
== Installation == | == Installation == | ||
− | Before proceeding, have a look at the [http://nouveau.freedesktop.org/wiki/FeatureMatrix FeatureMatrix] to see what features are supported for a given architecture, and the list of [http://nouveau.freedesktop.org/wiki/CodeNames codenames] to determine the card's category. You could also consult [[Wikipedia:Comparison of Nvidia Graphics Processing Units| | + | Before proceeding, have a look at the [http://nouveau.freedesktop.org/wiki/FeatureMatrix FeatureMatrix] to see what features are supported for a given architecture, and the list of [http://nouveau.freedesktop.org/wiki/CodeNames codenames] to determine the card's category. You could also consult [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] for an even more detailed list. |
If you already installed the proprietary NVIDIA driver, then remove it first: | If you already installed the proprietary NVIDIA driver, then remove it first: | ||
Line 35: | Line 34: | ||
If you want hardware-accelerated 3D support (to run GNOME Shell or KWin's effects, for instance), install the DRI driver with the {{Pkg|nouveau-dri}} package. For Arch x86_64, install {{Pkg|lib32-nouveau-dri}} from the [[Multilib]] repository, as well. | If you want hardware-accelerated 3D support (to run GNOME Shell or KWin's effects, for instance), install the DRI driver with the {{Pkg|nouveau-dri}} package. For Arch x86_64, install {{Pkg|lib32-nouveau-dri}} from the [[Multilib]] repository, as well. | ||
− | {{Warning|The DRI driver is '''experimental''', and may cause rendering corruptions or random GPU lockups (especially on older cards that use the classic Mesa driver). If you use it, it is recommended to enable the [[Sysctl#Configuration|Magic SysRq key]] to be able to [http://nouveau.freedesktop.org/wiki/LockupRecovery recover from a lockup]. See http://nouveau.freedesktop.org/wiki/MesaDrivers before reporting bugs with the 3D drivers.}} | + | {{Warning|The DRI driver is '''experimental''', and may cause rendering corruptions or random GPU lockups (especially on older cards that use the classic Mesa driver). If you use it, it is recommended to enable the [[Sysctl#Configuration|Magic SysRq key]] to be able to [http://nouveau.freedesktop.org/wiki/LockupRecovery recover from a lockup]. See the [http://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers page] before reporting bugs with the 3D drivers.}} |
== Loading == | == Loading == | ||
Line 43: | Line 42: | ||
If it does not happen, then: | If it does not happen, then: | ||
− | * Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[ | + | * Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[Kernel parameters|kernel parameter]], since Nouveau needs kernel mode-setting in order to run successfully (see below). |
* Also, check that you have not disabled Nouveau by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}}. | * Also, check that you have not disabled Nouveau by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}}. | ||
=== KMS === | === KMS === | ||
− | Kernel Mode | + | [[Kernel Mode Setting]] (KMS) is required by the Nouveau driver. As the system boots, the resolution will likely change when KMS initializes the display driver. Simply installing the Nouveau driver should be enough to get the system to recognize and initialize it in "Late start" mode (see below). See the [http://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting page] for more details. |
{{Note|Users may prefer the early start method as it does not cause the annoying resolution change part way through the boot process.}} | {{Note|Users may prefer the early start method as it does not cause the annoying resolution change part way through the boot process.}} | ||
Line 54: | Line 53: | ||
==== Late start ==== | ==== Late start ==== | ||
− | + | This method will start the KMS after the other kernel modules are loaded. You will see the text "Loading modules" and the size of the text may change, possibly with an undesirable flicker. | |
==== Early start ==== | ==== Early start ==== | ||
− | This method will start KMS as early as possible in the boot process, when the [[initramfs]] is loaded. | + | This method will start the KMS as early as possible in the boot process, when the [[initramfs]] is loaded. |
− | + | To do this, add {{ic|nouveau}} to the {{ic|MODULES}} array in {{ic|/etc/mkinitcpio.conf}}: | |
MODULES="... nouveau ..." | MODULES="... nouveau ..." | ||
Line 68: | Line 67: | ||
# mkinitcpio -p <kernel preset; e.g. ''linux''> | # mkinitcpio -p <kernel preset; e.g. ''linux''> | ||
− | If you're experiencing troubles with Nouveau leading to rebuild nouveau-drm several times for testing purposes, do not add {{ic|nouveau}} to the initramfs. It is too easy to forget to rebuild the initramfs and it will just make any testing harder. Just use | + | If you're experiencing troubles with Nouveau leading to rebuild nouveau-drm several times for testing purposes, do not add {{ic|nouveau}} to the initramfs. It is too easy to forget to rebuild the initramfs and it will just make any testing harder. Just use "Late start" until you are confident the system is stable. There might be additional problems with initramfs if you need a custom firmware (generally not advised). |
== Tips and tricks == | == Tips and tricks == | ||
Line 74: | Line 73: | ||
=== Keep NVIDIA driver installed === | === Keep NVIDIA driver installed === | ||
− | If you want to keep the proprietary NVIDIA driver installed, but want to use the Nouveau driver, comment out nouveau blacklisting in {{ic|etc/modprobe.d/nouveau_blacklist.conf}} modifying it as follows: | + | If you want to keep the proprietary NVIDIA driver installed, but want to use the Nouveau driver, comment out nouveau blacklisting in {{ic|/etc/modprobe.d/nouveau_blacklist.conf}} modifying it as follows: |
#blacklist nouveau | #blacklist nouveau | ||
Line 108: | Line 107: | ||
* To get the latest Nouveau improvements, you should use the {{AUR|linux-git}} package from the AUR, edit the PKGBUILD and use Nouveau's own kernel repository, which is currently located at: git://anongit.freedesktop.org/nouveau/linux-2.6. | * To get the latest Nouveau improvements, you should use the {{AUR|linux-git}} package from the AUR, edit the PKGBUILD and use Nouveau's own kernel repository, which is currently located at: git://anongit.freedesktop.org/nouveau/linux-2.6. | ||
− | Upsteam driver sources can be found | + | Upsteam driver sources can be found at the [http://nouveau.freedesktop.org/wiki/Source Nouveau Source page]. |
=== Tear-free compositing === | === Tear-free compositing === | ||
Line 171: | Line 170: | ||
=== Power Management === | === Power Management === | ||
− | GPU Scaling is in various stages of readiness depending on the GPU. | + | GPU Scaling is in various stages of readiness depending on the GPU. See the [http://nouveau.freedesktop.org/wiki/PowerManagement Nouveau PowerManagement page] for more details. |
− | |||
− | http://nouveau.freedesktop.org/wiki/PowerManagement | ||
=== Enable MSI (Message Signaled Interrupts) === | === Enable MSI (Message Signaled Interrupts) === | ||
Line 190: | Line 187: | ||
Reboot the system for the changes to take effect. | Reboot the system for the changes to take effect. | ||
− | |||
== Troubleshooting == | == Troubleshooting == | ||
− | Add the following to your kernel command line (if using grub hit | + | Add the following to your kernel command line (if using grub hit {{keypress|e}} at the boot menu to edit) to turn on video debugging: |
− | + | drm.debug=14 log_buf_len=16M | |
Create verbose Xorg log: | Create verbose Xorg log: | ||
− | + | startx -- -logverbose 9 -verbose 9 | |
View loaded video module parameters and values: | View loaded video module parameters and values: | ||
− | + | modinfo -p video |
Revision as of 14:44, 10 December 2012
Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end
This article covers installing and configuring the Nouveau open source driver for NVIDIA graphic cards. For information about the official proprietary driver, see NVIDIA.
Do not forget to check out the Nouveau FAQ if you have any questions, as there is a lot of valuable information there.
Installation
Before proceeding, have a look at the FeatureMatrix to see what features are supported for a given architecture, and the list of codenames to determine the card's category. You could also consult Wikipedia for an even more detailed list.
If you already installed the proprietary NVIDIA driver, then remove it first:
# pacman -Rdds nvidia nvidia-utils # pacman -S --asdeps libgl
/etc/X11/xorg.conf
file that the Nvidia driver created (or undo the changes), or else X will fail to properly load the Nouveau driver.Install the DDX driver with the xf86-video-nouveau package.
Also make sure you have Xorg properly installed.
If you want hardware-accelerated 3D support (to run GNOME Shell or KWin's effects, for instance), install the DRI driver with the nouveau-dri package. For Arch x86_64, install lib32-nouveau-dri from the Multilib repository, as well.
Loading
The Nouveau kernel module should load fine automatically on system boot.
If it does not happen, then:
- Make sure you do not have
nomodeset
orvga=
as a kernel parameter, since Nouveau needs kernel mode-setting in order to run successfully (see below). - Also, check that you have not disabled Nouveau by using any modprobe blacklisting within
/etc/modprobe.d/
.
KMS
Kernel Mode Setting (KMS) is required by the Nouveau driver. As the system boots, the resolution will likely change when KMS initializes the display driver. Simply installing the Nouveau driver should be enough to get the system to recognize and initialize it in "Late start" mode (see below). See the Nouveau KernelModeSetting page for more details.
Late start
This method will start the KMS after the other kernel modules are loaded. You will see the text "Loading modules" and the size of the text may change, possibly with an undesirable flicker.
Early start
This method will start the KMS as early as possible in the boot process, when the initramfs is loaded.
To do this, add nouveau
to the MODULES
array in /etc/mkinitcpio.conf
:
MODULES="... nouveau ..."
Re-generate the initial ramdisk image:
# mkinitcpio -p <kernel preset; e.g. linux>
If you're experiencing troubles with Nouveau leading to rebuild nouveau-drm several times for testing purposes, do not add nouveau
to the initramfs. It is too easy to forget to rebuild the initramfs and it will just make any testing harder. Just use "Late start" until you are confident the system is stable. There might be additional problems with initramfs if you need a custom firmware (generally not advised).
Tips and tricks
Keep NVIDIA driver installed
If you want to keep the proprietary NVIDIA driver installed, but want to use the Nouveau driver, comment out nouveau blacklisting in /etc/modprobe.d/nouveau_blacklist.conf
modifying it as follows:
#blacklist nouveau
And tell Xorg to load nouveau instead of nvidia by creating the file /etc/X11/xorg.conf.d/20-nouveau.conf
with the following content:
Section "Device" Identifier "Nvidia card" Driver "nouveau" EndSection
If you already used the NVIDIA driver, and want to test Nouveau without reboot, make sure the 'nvidia' module is no longer loaded:
# rmmod nvidia
Then load the 'nouveau' module:
# modprobe nouveau
And check that it loaded fine by looking at kernel messages:
$ dmesg
Installing the latest development packages
You may install the latest -git packages, through AUR:
- You can use mesa-gitAUR which will allow the installation of the latest Mesa (including the latest DRI driver).
- You can use xf86-video-nouveau-gitAUR which will allow the installation of the latest DDX driver.
- You can also try installing a newer kernel version, through packages like linux-mainlineAUR in which the Nouveau DRM code would allow better performance.
- To get the latest Nouveau improvements, you should use the linux-gitAUR package from the AUR, edit the PKGBUILD and use Nouveau's own kernel repository, which is currently located at: git://anongit.freedesktop.org/nouveau/linux-2.6.
Upsteam driver sources can be found at the Nouveau Source page.
Tear-free compositing
Edit your /etc/X11/xorg.conf.d/20-nouveau.conf
, and add the following to the Device
section:
Section "Device" Identifier "nvidia card" Driver "nouveau" Option "GLXVBlank" "true" EndSection
Dual Head
Nouveau supports the xrandr extension for modesetting and multiple monitors. See the RandR12 page for tutorials.
Here is a full sample /etc/X11/xorg.conf.d/20-nouveau.conf
above for running 2 monitors in dual head mode. You may prefer to use a graphical tool to configure monitors like GNOME Control Center's Display panel (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
Setting console resolution
Use the fbset tool to adjust console resolution.
You can also pass the resolution to nouveau with the video= kernel line option (see KMS).
Power Management
GPU Scaling is in various stages of readiness depending on the GPU. See the Nouveau PowerManagement page for more details.
Enable MSI (Message Signaled Interrupts)
This may provide a slight performance advantage. It is only supported on NV50+ and is disabled by default.
Place the following in /etc/modprobe.d/nouveau.conf
:
options nouveau msi=1
If using early start, add the line FILES="/etc/modprobe.d/nouveau.conf"
to /etc/mkinitcpio.conf
, then re-generate kernel image:
# mkinitcpio -p <kernel preset; e.g. linux>
Reboot the system for the changes to take effect.
Troubleshooting
Add the following to your kernel command line (if using grub hit Template:Keypress at the boot menu to edit) to turn on video debugging:
drm.debug=14 log_buf_len=16M
Create verbose Xorg log:
startx -- -logverbose 9 -verbose 9
View loaded video module parameters and values:
modinfo -p video