Tools for people envious of nvidia's blob driver.
Switch branches/tags
Nothing to show
Clone or download
Echelon9 Merge pull request #169 from Echelon9/demmt/nvrm_mthd_device_get_num_…
…gpus

demmt: Support NVRM_MTHD_DEVICE_GET_NUM_SLI_GPUS (0x00800280)
Latest commit 6bcb59e Sep 15, 2018
Permalink
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 demmt: Support NVRM_MTHD_DEVICE_GET_NUM_SUBDEVICES (0x00800280) Sep 15, 2018
docs demmt: Support VOLTA_CHANNEL_GPFIFO_A Sep 2, 2018
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: accept disp ver 0x22, seen in GP108 bioses Sep 3, 2018
nvhw hwtest: Some NV25 fixes. Jun 9, 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 HDMI decoding for gf119/gk104, add an extra CTRL reg Sep 2, 2018
ssot nvbios/info: Add GV100, first member from Volta family Mar 31, 2018
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 cython3 and remove cmake (we use the shipped on) Apr 15, 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 nva/nvapy: Clarify that the dependency is cython3 Apr 15, 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 (nouveau)
  • 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