HackingNouveau

HackingNouveau

After following the the instructions and troubleshooting information at InstallNouveau 2D appears to work however glxgears with mesa-git in use crashes X, Bash or wedges (hard locks) your machine. What to do now?

  1. Ask on IRC (#nouveau on freenode) or the mailing list nouveau@freedesktop.org listinfo if your bug is a known problem (currently all cards <NV40 are reportedly not working) and check to see if a bug exists for your problem at bugs.freedesktop.org

  2. If not submit a bug at bugs.freedesktop.org under the product xorg and component Driver/nouveau (you will need to create a login), submitting bugs is good as it helps developers make contact with hardware users and helps other users to know that someone else has already tested the specific hardware.

  3. Create mmio-traces of both the nouveau driver (hooking dri.ko) and the nVidia blob doing the same thing each time (starting a single instance of glxgears from ~/.xinitrc is a good place to start, see mmio-trace.sh for doing this with the blob), and compare the output of parsed mmio traces.

  4. FIXME need some information on explaining the format of parsed mmio traces, may also be useful to document how to insert markers into mmio traces.
  5. When comparing the output remember that sed and diff are your friends, sed for stripping timing information out of parsed mmio traces so diff doesnt look at the wrong information, and diff for comparing the traces;

    • $ cat cpu0-parsed | sed -e "s@^[0-9]\+\.[0-9][0-9][0-9][0-9][0-9][0-9] \+@@" -e "s@^-[0-9]\+\.[0-9][0-9][0-9][0-9][0-9][0-9] \+@@" > cpu0-parsed-timestrip $ diff -urN ./1/cpu0-parsed-timestrip ./2/cpu0-parsed-timestrip > 1-2.diff

  6. Discuss what you find on IRC and in the mailing list.
  7. For further tasks see ToDo