Nouveau

From ParabolaWiki
Jump to: navigation, search
Summary
This article details the installation of the Nouveau Free Software 3D acceleration graphics driver for NVIDIA cards. The name of the project refers to the fact that "nouveau" means "new" in French.
Related
KMS
Xorg

Nouveau is a free software graphic driver for NVIDIA cards.

Do not forget to check out the FAQ if you have any questions, as there is a lot of valuable information there.

1 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.

Install the DDX driver with the following package:
# pacman -S xf86-video-nouveau

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.

Warning: The DRI driver is experimental, and may cause rendering corruptions or random GPU lockups (especially on older cards that uses the classic Mesa driver). If you use it, it is recommended to enable the Magic SysRq key to be able to recover from a lockup. See http://nouveau.freedesktop.org/wiki/MesaDrivers before reporting bugs with the 3D drivers.

2 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 or vga= in GRUB's menu.lst/menu.cfg kernel line, 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/.

2.1 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). Additional reading: KernelModeSetting.

Note: Users may prefer the early start method as it does not cause the annoying resolution change part way through the boot process.

2.1.1 Late start

With this choice KMS will be enabled when 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.

2.1.2 Early start

This method will start KMS as early as possible in the boot process, when the initramfs is loaded. Here is how to do this with the official packages:

Add "nouveau" to the MODULES array in /etc/mkinitcpio.conf:

MODULES="... nouveau ..."

Re-generate kernel image:

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

If 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).

3 Tips and tricks

3.1 Tearing free compositing

Edit your /etc/X11/xorg.conf.d/20-nouveau.conf, in the Device section add:

Section "Device"
    Identifier "nvidia card"
    Driver "nouveau"
    Option "GLXVBlank" "true"
EndSection

3.2 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"
    DefaultDepth 24
      SubSection "Display"
       Depth      24
       Virtual 2560 2048
      EndSubSection
    Device "nvidia card"
EndSection

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

3.3 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).

3.4 Power Management

GPU Scaling is in various stages of readiness depending on the GPU. See the following link for additional info:

http://nouveau.freedesktop.org/wiki/PowerManagement

3.5 Enable MSI (Message Signaled Interrupts)

This may provide a slight performance advantage. It is only supported on NV50+ and is disabled by default.

Warning: This may cause instability with some motherboard / GPU combinations.

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-libre>

Reboot system to affect changes

4 Acknowledgement

This wiki article is based on ArchWiki. We may have removed non-FSDG bits from it.