### Verify Direct Rendering and NVIDIA Driver Source: https://nouveau.freedesktop.org/REnouveau.html Example output from glxinfo indicating successful direct rendering and NVIDIA driver installation. ```text direct rendering: Yes server glx vendor string: NVIDIA Corporation ... client glx vendor string: NVIDIA Corporation ... OpenGL vendor string: NVIDIA Corporation ``` -------------------------------- ### Install Valgrind-mmt Source: https://nouveau.freedesktop.org/Valgrind-mmt.html Clone the Valgrind repository, configure with the specified prefix, and install. This sets up Valgrind with the mmt tool. ```bash git clone https://github.com/envytools/valgrind.git cd valgrind ./autogen.sh ./configure --prefix=... make make install ``` -------------------------------- ### Install Dependencies on Ubuntu Source: https://nouveau.freedesktop.org/REnouveau.html Command to install necessary development packages for REnouveau on Ubuntu. ```bash sudo apt-get install build-essential cvs mesa-common-dev libsdl1.2-dev libxvmc-dev nvidia-glx-dev dialog libxml2-dev ``` -------------------------------- ### Parse Unknown Command Example Source: https://nouveau.freedesktop.org/REnouveau.html Example of an unknown GPU command identified by REnouveau, showing its size, subchannel, and offset. ```text 00043538 size 1, subchannel 1 (0xbeef5097),offset 0x1538,increment 00000001 NV54TCL[0x1538/4] ``` -------------------------------- ### Start Xorg and Multiple Xterms Source: https://nouveau.freedesktop.org/Valgrind-mmt.html Before tracing with Valgrind, ensure a window manager is not loaded by starting a plain Xorg binary. This command launches multiple xterm instances in a loop. ```bash export DISPLAY=:0; while [ true ]; do xterm; sleep 1; done ``` -------------------------------- ### Install Dependencies on Fedora Source: https://nouveau.freedesktop.org/REnouveau.html Command to install development packages for REnouveau on Fedora. ```bash yum install dialog SDL-devel libXvMC-devel libxml2-devel xorg-x11-drv-nvidia-devel ``` -------------------------------- ### Example Kernel Log Output Source: https://nouveau.freedesktop.org/Bugs.html This is an example of the expected output from a `dmesg` command, showing kernel version and boot information. It helps identify potential issues during boot. ```log [ 0.000000] Linux version 2.6.34-gentoo-r1 (root@localhost) (gcc version 4.3.4 (Gentoo 4.3.4 p1.1, pie-10.1.5) ) #1 PREEMPT Mon Aug 2 16:04:12 EEST 2010 [ 0.000000] Command line: root=/dev/sda5 [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable) [ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) ``` -------------------------------- ### Query Current Randr12 Configuration Source: https://nouveau.freedesktop.org/Randr12.html Use 'xrandr -q' to display the current monitor setup, including connected outputs, their resolutions, and timings. This is useful for understanding the existing configuration before making changes. ```bash xrandr -q ``` -------------------------------- ### Parse Known Command Example Source: https://nouveau.freedesktop.org/REnouveau.html Example of a known GPU command (STENCIL_BACK_MASK) identified by REnouveau, showing its offset and symbolic name. ```text 00043398 size 1, subchannel 1 (0xbeef5097),offset 0x1398,increment 000000ff NV54TCL.STENCIL_BACK_MASK ``` -------------------------------- ### Extract Firmware Files with Perl Source: https://nouveau.freedesktop.org/NVC0_Firmware.html Use this perl script with demmio to extract firmware into separate files based on memory addresses. Ensure demmio is installed and the mmiotrace log is available. ```bash demmio -f mmiotrace.log.xz | perl -e \ 'open($fh409c, ">fuc409c"); open($fh409d, ">fuc409d"); open($fh41ac, ">fuc41ac"); open($fh41ad, ">fuc41ad"); %m = ("0x409184" => $fh409c, "0x4091c4" => $fh409d, "0x41a184" => $fh41ac, "0x41a1c4" => $fh41ad); while (<>) { exit if (/0x409840/); next if (!/W (0x4(?:09|1a)1[c8]4) .* <= (?:.*0x)?(.*)/); print { $m{$1} } pack "I", hex($2);}' ``` -------------------------------- ### Test VP2 Acceleration with MPlayer Source: https://nouveau.freedesktop.org/VP2.html Run MPlayer with the vdpau video output driver to test VP2 acceleration. Ensure you have a compatible kernel and Mesa version, and a libvdpau installed to the new prefix if not overwriting system installs. ```bash mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau, foo.mp4 ``` -------------------------------- ### Xorg Configuration for Multi-Monitor Setup Source: https://nouveau.freedesktop.org/MultiMonitorDesktop.html This configuration enables Xinerama for a unified desktop across multiple screens. Ensure 'Xinerama' is set to 'on' and 'Clone' is set to 'off'. Each monitor requires a dedicated Screen section, and Device sections must specify the correct BusID and ZaphodHeads option for each connector. ```xorg.conf Section "ServerLayout" Identifier "Layout0" Option "Xinerama" "on" Option "Clone" "off" # You would need one screen for each monitor Screen 0 "Screen0" Screen 1 "Screen1" RightOf "Screen0" Screen 2 "Screen2" LeftOf "Screen0" Screen 3 "Screen3" LeftOf "Screen2" EndSection Section "Device" Identifier "Device0" Driver "nouveau" # Actual PCI location of first card/gpu BusID "PCI:9:0:0" # Actual connector - as reported by /sys/class/drm/card0-xx (except HDMI, which is HDMI-x instead of HDMI-A-x) Option "ZaphodHeads" "DVI-I-1" # Screen number for that PCI device, i.e. 0, 1, etc. Screen 0 EndSection Section "Device" Identifier "Device1" Driver "nouveau" # Actual PCI location of first card/gpu BusID "PCI:9:0:0" # Actual connector - as reported by /sys/class/drm/card0-xx (except HDMI, which is HDMI-x instead of HDMI-A-x) Option "ZaphodHeads" "DVI-I-2" # Screen number for that PCI device, i.e. 0, 1, etc. Screen 1 EndSection Section "Device" Identifier "Device2" Driver "nouveau" # Actual PCI location of second card/gpu BusID "PCI:8:0:0" # Actual connector - as reported by /sys/class/drm/card1-xx (except HDMI, which is HDMI-x instead of HDMI-A-x) Option "ZaphodHeads" "DVI-I-3" # Screen number for that PCI device, i.e. 0, 1, etc. Screen 0 EndSection Section "Device" Identifier "Device3" Driver "nouveau" # Actual PCI location of second card/gpu BusID "PCI:8:0:0" # Actual connector - as reported by /sys/class/drm/card1-xx (except HDMI, which is HDMI-x instead of HDMI-A-x) Option "ZaphodHeads" "DVI-I-4" # Screen number for that PCI device, i.e. 0, 1, etc. Screen 1 EndSection Section "Screen" Identifier "Screen0" Device "Device0" EndSection Section "Screen" Identifier "Screen1" Device "Device1" EndSection Section "Screen" Identifier "Screen2" Device "Device2" EndSection Section "Screen" Identifier "Screen3" Device "Device3" EndSection ``` -------------------------------- ### Preconfigure Monitor Layout with LeftOf Option Source: https://nouveau.freedesktop.org/Randr12.html To preconfigure a side-by-side monitor setup, modify the 'Monitor' sections in xorg.conf. Assign the correct identifiers and use the 'Option "LeftOf"' or 'Option "RightOf"' to specify the relationship between monitors. ```xorg.conf Section "Monitor" Identifier "DVI-D-0" ... Section "Monitor" Identifier "VGA-0" ... Option "LeftOf" "DVI-D-0" ``` -------------------------------- ### Install REnouveau on Mandriva Source: https://nouveau.freedesktop.org/REnouveau.html Command to install the REnouveau package on Mandriva Linux using urpmi. ```bash urpmi renouveau ``` -------------------------------- ### List Graphics Providers Source: https://nouveau.freedesktop.org/Optimus.html Use `xrandr --listproviders` to check if your system recognizes both Intel and Nouveau graphics providers. This is a prerequisite for PRIME GPU offloading. ```bash $ xrandr --listproviders Providers: number : 2 Provider 0: id: 0x8a cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel Provider 1: id: 0x66 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 5 associated providers: 1 name:nouveau ``` -------------------------------- ### Example OpenGL Error Message Source: https://nouveau.freedesktop.org/REnouveauDumps.html This is an example of an OpenGL error that may appear during REnouveau testing. It is generally safe to ignore these errors when simply making a dump. ```text "Latest OpenGL Error: 1282" or similar ``` -------------------------------- ### Run Nouveau Demo with Root Privileges Source: https://nouveau.freedesktop.org/NouveauDemo.html The compiled Nouveau demo binary requires access to the DRM module, so it must be run with root privileges. Use 'sudo' to execute the demo. ```bash sudo ./nouveau_demo ``` -------------------------------- ### Automatically Configure a New Monitor Source: https://nouveau.freedesktop.org/Randr12.html Enable a newly connected monitor and automatically set its optimal resolution. Replace with the name of the connected monitor. ```bash xrandr --output --auto ``` -------------------------------- ### Configure Virtual Display in xorg.conf Source: https://nouveau.freedesktop.org/Randr12.html To configure a framebuffer for multiple monitors that start side-by-side after X starts, add a 'Virtual x y' setting to the 'Display' section within the 'Screen' section of your xorg.conf. ```xorg.conf Section "Screen" Identifier "Your Screen identifier here" DefaultDepth 24 SubSection "Display" Depth 24 Virtual 3360 1050 EndSubSection Device "Your Device identifier here" EndSection ``` -------------------------------- ### Checkout nv10_demo using CVS Source: https://nouveau.freedesktop.org/NouveauDemo.html Use this command to anonymously log in to the CVS repository and checkout the nv10_demo project. After checking out, navigate into the directory and run 'make'. ```bash cvs -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau login cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P nv10_demo ``` -------------------------------- ### Configure Specific Engine Source: https://nouveau.freedesktop.org/KernelModuleParameters.html Example of disabling the PDISP engine using the `config` parameter. ```bash PDISP=0 ``` -------------------------------- ### Add Second Screen with Discrete GPU using xrandr Source: https://nouveau.freedesktop.org/Optimus.html After setting up Reverse PRIME, use this command to configure and add a second screen connected to the discrete GPU. ```bash $ xrandr --output HDMI-1 --auto --above LVDS1 ``` -------------------------------- ### Set Framebuffer Console Resolution Source: https://nouveau.freedesktop.org/TroubleShooting.html Use the 'video=' kernel parameter to set a specific resolution for the framebuffer console. For example, to set it to 1280x1024. ```bash video=1280x1024 ``` -------------------------------- ### Configure Reverse PRIME with xrandr Source: https://nouveau.freedesktop.org/Optimus.html Use this command to set the Nouveau driver as the output source for the primary GPU, enabling access to the discrete GPU's outputs. ```bash $ xrandr --setprovideroutputsource nouveau Intel ``` -------------------------------- ### Set Specific Subdevice Debug Level Source: https://nouveau.freedesktop.org/KernelModuleParameters.html Example of setting the debug level for the PTHERM and PTIMER subdevices to 'debug' using the `debug` parameter. ```bash nouveau.debug="PTHERM=debug,PTIMER=debug" ``` -------------------------------- ### Configure Driver Options Source: https://nouveau.freedesktop.org/KernelModuleParameters.html The `config` parameter allows configuring various driver aspects using a comma-separated list of key=value pairs. Values are typically integers (0/1 for booleans), except for `NvBios` which is a string. ```bash config ``` -------------------------------- ### Test VDPAU with MPlayer Source: https://nouveau.freedesktop.org/VideoAcceleration.html Use this command to test VDPAU acceleration with MPlayer for specific video codecs. Ensure your Mesa library is correctly installed. ```bash mplayer -vo vdpau -vc ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau, ``` -------------------------------- ### Run mplayer with VP4 acceleration Source: https://nouveau.freedesktop.org/VP4.html Use this command to play video files with VP4 acceleration via VDPAU. Ensure you have extracted firmware and installed the correct Mesa and kernel versions. ```bash mplayer -vo vdpau -vc ffmpeg12vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau, ``` -------------------------------- ### List display outputs with xrandr Source: https://nouveau.freedesktop.org/Dithering.html Use this command to list all connected display outputs and their properties, including dithering support. This helps identify the correct output to configure. ```bash xrandr --prop ```