资源算法nvidia-installer

nvidia-installer

2019-12-23 | |  173 |   0 |   0
NVIDIA-INSTALLER SOURCE DOCUMENTATION
__________________________________________________________________________

Information on how to use the nvidia-installer is in:

    Chapter 4. Installing the NVIDIA Driver

of the NVIDIA driver README (available from the NVIDIA Linux driver
download page, and installed in /usr/share/doc/NVIDIA_GLX-1.0/).


There is not currently any formal documentation describing the
implementation of nvidia-installer, but the source code is fairly
well commented.


Build dependencies of nvidia-installer include:

   ncurses pciutils

Please ensure that the appropriate development packages for these
dependencies have been installed before building nvidia-installer.


One interesting thing to note is that user interface shared libraries
are built into nvidia-installer to avoid potential problems with
the installer not being able to find the user interface libraries (or
finding the wrong ones, etc): after the shared lib is built, the utility
`gen-ui-array` is run on it to create a source file storing a byte
array of the data that is the shared library.  When the installer runs,
it writes this byte data to a temporary file and then dlopens() it.

 
This directory also contains source for a simple tool 'mkprecompiled',
which is used for stamping nv-linux.o's (aka the kernel interfaces)
with the necessary information so that the installer can match it to a
running kernel. nvidia-installer can automate the process of building
a precompiled kernel interface package when used with the installer's
"--add-this-kernel" option - mkprecompiled is a standalone utility that
can be used to build a precompiled kernel interface package independently
of nvidia-installer.

To build a precompiled kernel interface package using mkprecompiled, you
might do the following:

    sh NVIDIA-Linux-x86-XXX.YY.run --extract-only
    cd NVIDIA-Linux-x86-XXX.YY/kernel/
    modules=`head -n 4 ../.manifest | tail -n 1`
    interface_files=`for module in $modules; do
        echo $module | grep -v nvidia-uvm |
        sed -e 's/nvidia/nv/' -e 's/$/-linux.o/'
    done`
    make $interface_files
    for interface in $interface_files; do
        nv_stem=`echo $interface | sed 's/-linux.o$//'`
        module_name=`echo $nv_stem | sed 's/nv/nvidia/'`
        ../mkprecompiled --pack precompiled-mykernel 
            --driver-version XXX.YY 
            --proc-version-string "`cat /proc/version`" 
            --description "This is not an interesting description" 
            --kernel-interface $interface 
            --linked-module-name $module_name.ko 
            --core-object-name $module_name/$nv_stem-kernel.o_binary 
            --target-directory .
    done
    if [ -f nvidia-uvm.ko ]; then
        ../mkprecompiled --pack precompiled-mykernel 
            --kernel-module nvidia-uvm.ko 
            --target-directory .
    fi
    mkdir -p precompiled
    mv precompiled-mykernel precompiled

(where "XXX.YY" is replaced with the driver version number).


To build precompiled kernel interfaces for a kernel other than the
currently running one, set SYSSRC=/path/to/kernel-source on the `make`
command line. If your kernel sources use a separate output directory,
additionally set SYSOUT=/path/to/kernel-output. You will also need to
extract the correct proc version string from the kernel image, so that
it can be passed as an argument to mkprecompiled, e.g.:

    /path/to/kernel-source/scripts/extract-vmlinux /boot/vmlinuz |
        strings | grep "^Linux version"


nvidia-installer will scan the contents of the kernel/precompiled/
directory for any precompiled kernel interfaces that match the running
kernel's /proc/version string.

If you would like to provide precompiled kernel interfaces for others
to use, you may build them as above.  To use them, users can do the
following:

    sh NVIDIA-Linux-x86-XXX.YY.run --extract-only
    mkdir -p NVIDIA-Linux-x86-XXX.YY/kernel/precompiled
    cp precompiled-mykernel NVIDIA-Linux-x86-XXX.YY/kernel/precompiled
    ./NVIDIA-Linux-x86-XXX.YY/nvidia-installer


(Updated: 2003-09-23)  The search path for directories containing
precompiled kernel interfaces has been extended; the heuristic
is now:

    - if --precompiled-kernel-interfaces-path was specified, search
      in that directory; if no match found, then

    - search in the directory /lib/modules/precompiled/`uname -r`/nvidia/gfx/,
      if no match found, then

    - search in the usr/src/nv/precompiled directory of the .run file,
      if no match found, then

    - give up and just build the kernel module yourself


TODO:

- Add new user interfaces (gtk+/qt/your toolkit of choice).

- Add additional tests to be run for the '--sanity' option.

- Cleanup memory leaks.

- Improve error messages.

- Internationalization.
Patches are very welcome, and may be submitted to linux-bugs@nvidia.com


上一篇:nvidia-modprobe

下一篇:pyxis

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...