English/Español/Deutsch/Français
Packages and special Instructions for
Gentoo Ubuntu openSUSE <- these on the left should be uptodate | Fedora Debian sid
Introduction
If you use one of the distributions listed above, check if the packages there are recent and try them. Nouveau packages and the instructions here currently only provide accelerated 2D rendering using EXA for RENDER (Compositing!) and have the option to test Randr12 for dual-head and dynamic monitor configuration as well as accelerated Xvideo.
3D rendering would be software rendering only with these instructions and packages. Pure Hardware 3D has already been demoed on specific cards, but it may crash even X itself with some applications and needs a very specific configration to work, so it does not make much sense to provide instructions for non-developers here.
If you try these packages, feel free to enable
- Option Randr12 "on"
in the Device section of your xorg.conf and tell us any issues on the IRC channel or thru http://bugzilla.freedesktop.org.
Install Nouveau
NOTE: If you ever plan to go back to your previous driver, especially if it is the nvidia proprietary driver (the blob), read the Uninstall chapter before actually doing anything.
Nouveau is the X11 driver which should at a later stage offer 3d acceleration. Currently we are working on 2D acceleration and deobfuscating the source we inherited from the X11 nv driver. Make sure, that CONFIG_DRM ist not set in your kernel configuration (Linux) or else inserting the kernel modules will fail! Try
$ zcat /proc/config.gz | grep "CONFIG_DRM"
or
$ grep "CONFIG_DRM" /boot/config-`uname -r`
Now, if you want to try out nouveau, please follow these steps carefully (Debian users, note these tips):
Install Xorg 7.2 (version 1.3 of xorg-server is also required) - Versions prior to this won't work due to difference in some internal structures. Read the Xorg Modular Developer's Guide for help with building from source.
- Download the drm git tree
Use git clone git://anongit.freedesktop.org/git/mesa/drm/ to obtain the current sources. If you already have downloaded the archive update it via git-fetch ; git-rebase origin. You can use this sequence to update all git repositories.
Now compile it via (Ubuntu users, read this first): ./autogen.sh ; ./configure ; make ; make install and cd linux-core ; make nouveau.o to create the kernel modules Make sure, that your kernel headers can be found (or specify make LINUXDIR=/path/to/kernel-headers) and that the destination directories are correctly setup. For me at least, the make install thought, /usr/local/ would be a good idea, when it in fact was not. In this case, it's better to do ./configure --prefix=/usr/
Make sure, that neither DRM nor nvidia (binary version) kernel drivers are loaded. Use lsmod and rmmod nvidia should you still have it loaded.
- Now insert your drm module, followed by nouveau:
insmod drm.ko and insmod nouveau.ko.
Using insmod drm.ko debug=1 would spam your syslog with some more messages, which could be useful for us.
Note: if you want to use modprobe, make sure that the kernel's DRM module is not compiled (CONFIG_DRM should be off), and that the nouveau.ko and drm.ko modules are installed into the /lib/modules/`uname -r`/extra/drm directory. You can turn off CONFIG_DRM, remove the /lib/modules/`uname -r` directory and run make modules_install again to reset it. - Now edit your /etc/X11/xorg.conf to use the nouveau driver:
Change in Section "Device" the Driver line to Driver "nouveau"
- leave directory drm and pull the Xorg nouveau driver:
git clone git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau/
- Switch into xf86-video-nouveau and compile:
./autogen.sh ; make and copy the nouveau_drv.so to the drivers directory of Xorg: cp src/.libs/nouveau_drv.so /usr/lib/xorg/modules/drivers
- Now start Xorg and run for cover. If you used the the nvidia blob before, the X server may possibly not start because NVIDIA overwrites the libglx.so which the X server provides with it's proprietary libglx.so. If that happens, install the X server package from your distribution again to resetore the original libglx.so and make a backup copy of it in case you install the blob again.
3D: It's working for some developers (with some games) on NV40 (Geforce 6, 7, 6xxx, 7xxx and G7x), the developers are working on getting NV10 and NV30 to work as well. Look for the latest Nouveau Companion on http://phoronix.com or on our IrcChatLogs page for the latest info.
If you are willing to try our Gallium driver, look for the GalliumHowto. Please note: This is unsupported by us, if things break for you: though luck, but don't come crying. Even if some OpenGL games may work for you, they will sooner or later crash due to memory problems, as we are not using TTM yet.
Troubleshooting
If you have problems, please check the Troubleshooting section in our FAQ first. Currently we can help you only with 2D and Randr1.2 problems. If you chose to install the Gallium driver you are on your own!
Uninstall Nouveau / Reinstall previous driver
The nouveau installation process involves updating the drm kernel module, adding a new kernel module (nouveau.ko) and a new X module (nouveau_drv.so).
The drm kernel module is needed to get new features still not merged in upstream kernels and it shouldn't be a problem when using the previous drivers you had installed, as neither nv nor nvidia use it.
The new nouveau.ko and nouveau_drv.so files don't overwrite any previous existing files, so you just need to rmmod the nouveau driver and restore your previous xorg.conf.
If you were previously using the free nv driver
Change your xorg.conf to use 'nv' as driver again and restart X.
If you were previously using the binary driver by nvidia
To get the binary driver back you edit xorg.conf and either copy NVIDIA's proprietary libglx.so back or run the installer again.
HackingNouveau
After trying all that if you want to try and help the development effort further see HackingNouveau

