Nouveau

From ArchWiki

Jump to: navigation, search

Nouveau is an open source 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.

Contents

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 a even more detailed list.


Install the following packages:

# pacman -S nouveau-drm xf86-video-nouveau

Configuration

You can use the following xorg.conf, which allows you to easily switch back to other drivers:

Section "Device"
       Identifier "nvidia"
       Driver "nouveau"
       #Driver "nv"
       #Driver "nvidia"
EndSection

KMS

Kernel Mode-Setting is a technology that puts the work of setting graphics output modes in kernel space. This allows for a cleaner driver implementation, and means that switching VTs (Ctrl+Alt+F1, etc.) is nearly instant. As well, you will have a full-resolution framebuffer, which is nice for high-res displays in console mode.

Upstream actually recommends testing KMS as it is the future. See the KernelModeSetting page for more information.

Late start

With this choice, KMS will be enabled when the boot process says, "Loading modules." This may cause an undesirable screen flicker as the mode changes.

1) Add the following line to /etc/modprobe.d/modprobe.conf:

options nouveau modeset=1

2) Remove all "vga=" and "video=" options from your kernel commandline in /boot/grub/menu.lst. Using other framebuffer drivers (such as uvesafb) will conflict with KMS.

Early start

Warning: If you have troubles with nouveau, and are led to rebuild nouveau-drm several times for testing purpose, 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.

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:

1) Add the following line to /etc/modprobe.d/modprobe.conf:

options nouveau modeset=1

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

MODULES="nouveau ..."

3) Add "/etc/modprobe.d/modprobe.conf" to the FILES section in /etc/mkinitcpio.conf:

FILES="/etc/modprobe.d/modprobe.conf"

4) Re-generate your initcpio:

# mkinitcpio -p <your kernel preset (kernel26, etc.)>

You can also look at the Intel Graphics instructions for an early start: Intel Graphics:KMS (Kernel Mode Setting)

kernel26-nouveau-git

With kernel26-nouveau-git, all you need to do is add "nouveau" to HOOKS in /etc/mkinitcpio.conf. For example:

HOOKS="base udev nouveau autodetect pata scsi sata lvm2 filesystems"

nouveau must come after udev in order for the firmware to load correctly, as of recent commits. The official packages are not yet affected by this. To re-generate the image, run:

# mkinitcpio -p kernel26-nouveau-git

Alternative installation

If the official Arch Linux packages do not work, you can try a more current video driver from the AUR: xf86-video-nouveau-git. A more up-to-date DRM module can be built by using the nouveau-drm PKGBUILD from ABS. Simply update _snapdate to the current date, and modify the sources array to read:

source=(# ftp://ftp.archlinux.org/other/$pkgname/master-${_snapdate}.tar.gz
        http://people.freedesktop.org/~pq/nouveau-drm/master.tar.gz
        # get the Makefile from http://cgit.freedesktop.org/nouveau/linux-2.6/plain/nouveau/Makefile?h=master-compat
        Makefile)

You can use kernel26-nouveau-git to compile the nouveau project's kernel tree, which already includes the necessary modules. This is the method recommended by upstream.

3D

3D is unsupported.

That means:

  • Do not ask for instructions to try it.
  • What ever you do, do not install the 3D driver system-wide.
  • If you want to try 3D acceleration or you have problems with it, you are on your own, unless you are looking to contribute patches.

References: Nouveau frontpage and Nouveau FAQ

For all the above reasons, make sure that the nouveau-dri package is not installed, which besides is outdated.

DualHead

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 above for running 2 monitors in dual head mode. You may prefer to use a graphical tool to configure monitors like gnome-display-properties (System -> Preferences -> 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-0" "NEC"
    Option  "Monitor-DVI-I-1" "FUS"
    #Option "AccelMethod" "XAA"
EndSection

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

Section "ServerLayout"
    Identifier "layout1"
    Screen "screen1"
    # will be replaced by gallium 3D
    Option "AIGLX" "false"
EndSection

Troubleshooting

Console virtual resolution does not correspond to real one

Use the fbset tool to adjust console resolution.

Personal tools