Tools for people envious of nvidia's blob driver.
Branch: master
Clone or download
Echelon9 and imirkin hwdocs: Complete GV11B / T194 documentation
This GPU core is shipped in the device known as Xavier.

There are no currently known PCIe devices shipping with this GPU core.
Latest commit 262e9ef Feb 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cgen Merge pull request #114 from Echelon9/fix/cmake-min-version Nov 25, 2017
cupti_trace cmake: Explicit on minimum version required Nov 25, 2017
demmt travis: Reflect Ubuntu Xenial packaging changes Dec 1, 2018
docs
easm cmake: Explicit on minimum version required Nov 25, 2017
envydis envydis/gm107: Make xmad's immediate 16 bits Aug 15, 2018
hwtest hwtest: Some NV25 fixes. Jun 9, 2018
include hwtest: Some NV25 fixes. Jun 9, 2018
nva nva: Add nvactxinfo to .gitignore Jul 1, 2018
nvbios nvbios: Add 0xac init opcode Dec 10, 2018
nvhw nvhw: Fix enum gpu_index comparison with constant -1 (tautological ou… Oct 24, 2018
ptxgen ptxgen: add simple cubin fuzzer (cuobjfuzz.c); use CUDA 6 by default;… Jun 23, 2014
rnn rnn/demmio: Add -h option Aug 15, 2018
rnndb rnndb: fix SPEEDO fuse offset for GF117 Dec 13, 2018
ssot hwdocs: Complete GV11B / T194 documentation Feb 10, 2019
util cmake: Explicit on minimum version required Nov 25, 2017
vdpow cmake: Explicit on minimum version required Nov 25, 2017
vstream cmake: Explicit on minimum version required Nov 25, 2017
.gitignore Single Source of Truth. Oct 23, 2017
.travis.yml travis: Add libseccomp-dev dependency to increase testing surface of … Dec 1, 2018
CMakeLists.txt cmake: Explicit on minimum version required Nov 25, 2017
COPYING put the repo under the MIT license as it was agreed on Jul 24, 2013
README.rst travis: Reflect Ubuntu Xenial packaging changes Dec 1, 2018
bftool GK110: WIP atom-related decoding bug, bftool: allow mixed 32/64 bit i… Oct 12, 2012

README.rst

envytools

Tools for people envious of nvidia's blob driver.

https://travis-ci.org/envytools/envytools.svg?branch=master https://readthedocs.org/projects/envytools/badge/?version=latest

The canonical repo is at: https://github.com/envytools/envytools/. Pushing anywhere else will result in a de-facto fork!

Contents

Subdirectories:

  • docs: plain-text documentation of the GPUs, nVidia binary driver, and the tools (in-sync HTML version at https://envytools.readthedocs.io)
  • envydis: Disassembler and assembler for various ISAs found on nvidia GPUs
  • rnn: Tools and libraries for the rules-ng-ng XML register database format
  • rnndb: rnn database of nvidia MMIO registers, FIFO methods, and memory structures.
  • nvbios: Tools to decode the card description structures found in nvidia VBIOS
  • nva: Tools to directly access the GPU registers
  • vstream: Tools to decode and encode raw video bitstreams
  • vdpow: A tool aiding in VP3 reverse engineering
  • easm: Utility code dealing with assembly language parsing & printing.
  • util: Misc utility code shared between envytools modules

Building, installing

Dependencies:

  • cmake
  • libxml2
  • flex
  • bison
  • pkg-config

Optional dependencies needed by hwtest:

  • libpciaccess

Optional dependencies needed by demmt:

  • libdrm
  • libseccomp

Optional dependencies needed by nva:

  • libpciaccess
  • libx11
  • libxext
  • python3
  • cython3

Optional dependencies needed by vdpow:

  • libpciaccess
  • libx11
  • vdpau

Optional dependencies needed for ninja build (faster recompile times):

  • ninja

If your distribution has -dev or -devel packages, you'll also need ones corresponding to the dependencies above.

On ubuntu it can be done like this:

apt-get install cmake flex libpciaccess-dev bison libx11-dev libxext-dev libxml2-dev libvdpau-dev python3-dev cython3

To build using ninja (recommended if you work on envytools):

$ cmake . -G Ninja
$ ninja

If you prefer to stay with make, use

$ cmake .
$ make

To install [which is optional], use

$ ninja install

or

$ make install

If you want to install to a non-default directory, you'll also need to pass it as an option to cmake before building, eg.:

$ cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr/local .

Cmake options

If you don't want to compile some parts of envytools, you can pass the following options to cmake:

  • Hwtest: -DDISABLE_HWTEST=ON
  • Nva: -DDISABLE_NVA=ON
  • VDPOW: -DDISABLE_VDPOW=ON