Merge pull request #340 from vojtad/feat/driver-version-switch

linux: add -d switch to specify nvidia driver version manually
This commit is contained in:
Snawoot 2020-11-02 10:48:27 +02:00 committed by GitHub
commit 58ec6923f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 29 deletions

View File

@ -128,10 +128,10 @@ git clone https://ipfs.io/ipns/Qmed4r8yrBP162WK1ybd1DJWhLUi4t6mGuBoB9fLtjxR7u nv
# bash ./patch.sh -h
SYNOPSIS
patch.sh [-s] [-r|-h|-c VERSION|-l]
patch-fbc.sh [-s] [-r|-h|-c VERSION|-l]
DESCRIPTION
The patch for Nvidia drivers to remove NVENC session limit
The patch for Nvidia drivers to allow FBC on consumer devices
-s Silent mode (No output)
-r Rollback to original (Restore lib from backup)
@ -139,6 +139,8 @@ DESCRIPTION
-c VERSION Check if version VERSION supported by this patch.
Returns true exit code (0) if version is supported.
-l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it.
```

View File

@ -6,6 +6,7 @@ set -euo pipefail ; # <- this semicolon and comment make options apply
backup_path="/opt/nvidia/libnvidia-fbc-backup"
silent_flag=''
manual_driver_version=''
print_usage() { printf '
SYNOPSIS
@ -20,6 +21,8 @@ DESCRIPTION
-c VERSION Check if version VERSION supported by this patch.
Returns true exit code (0) if version is supported.
-l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it.
'
}
@ -27,13 +30,14 @@ DESCRIPTION
# shellcheck disable=SC2209
opmode="patch"
while getopts 'rshc:l' flag; do
while getopts 'rshc:ld:' flag; do
case "${flag}" in
r) opmode="${opmode}rollback" ;;
s) silent_flag='true' ;;
h) opmode="${opmode}help" ;;
c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;;
l) opmode="${opmode}listversions" ;;
d) manual_driver_version="$OPTARG" ;;
*) echo "Incorrect option specified in command line" ; exit 2 ;;
esac
done
@ -157,6 +161,11 @@ patch_common () {
exit 1
fi
if [[ "$manual_driver_version" ]]; then
driver_version="$manual_driver_version"
echo "Using manually entered nvidia driver version: $driver_version"
else
cmd="$NVIDIA_SMI --query-gpu=driver_version --format=csv,noheader,nounits"
driver_versions_list=$($cmd)
ret_code=$?
@ -170,6 +179,7 @@ patch_common () {
fi
echo "Detected nvidia driver version: $driver_version"
fi
if ! check_version_supported "$driver_version" ; then
echo "Patch for this ($driver_version) nvidia driver not found."

View File

@ -6,6 +6,7 @@ set -euo pipefail ; # <- this semicolon and comment make options apply
backup_path="/opt/nvidia/libnvidia-encode-backup"
silent_flag=''
manual_driver_version=''
print_usage() { printf '
SYNOPSIS
@ -20,20 +21,22 @@ DESCRIPTION
-c VERSION Check if version VERSION supported by this patch.
Returns true exit code (0) if version is supported.
-l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it.
'
}
# shellcheck disable=SC2209
opmode="patch"
while getopts 'rshc:l' flag; do
while getopts 'rshc:ld:' flag; do
case "${flag}" in
r) opmode="${opmode}rollback" ;;
s) silent_flag='true' ;;
h) opmode="${opmode}help" ;;
c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;;
l) opmode="${opmode}listversions" ;;
d) manual_driver_version="$OPTARG" ;;
*) echo "Incorrect option specified in command line" ; exit 2 ;;
esac
done
@ -231,6 +234,11 @@ patch_common () {
exit 1
fi
if [[ "$manual_driver_version" ]]; then
driver_version="$manual_driver_version"
echo "Using manually entered nvidia driver version: $driver_version"
else
cmd="$NVIDIA_SMI --query-gpu=driver_version --format=csv,noheader,nounits"
driver_versions_list=$($cmd)
ret_code=$?
@ -244,6 +252,7 @@ patch_common () {
fi
echo "Detected nvidia driver version: $driver_version"
fi
if ! check_version_supported "$driver_version" ; then
echo "Patch for this ($driver_version) nvidia driver not found."