mirror of
https://github.com/keylase/nvidia-patch.git
synced 2024-11-09 11:38:21 +00:00
linux: add -d switch to specify nvidia driver version manually
manully specified version is used instead of using nvidia-smi to detect it automatically
This commit is contained in:
parent
e56416e42a
commit
95dd542a80
@ -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.
|
||||
|
||||
```
|
||||
|
||||
|
36
patch-fbc.sh
36
patch-fbc.sh
@ -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,19 +161,25 @@ patch_common () {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cmd="$NVIDIA_SMI --query-gpu=driver_version --format=csv,noheader,nounits"
|
||||
driver_versions_list=$($cmd)
|
||||
ret_code=$?
|
||||
driver_version=$(echo "$driver_versions_list" | head -n 1)
|
||||
if [[ $ret_code -ne 0 ]] ; then
|
||||
echo "Can not detect nvidia driver version."
|
||||
echo "CMD: \"$cmd\""
|
||||
echo "Result: \"$driver_versions_list\""
|
||||
echo "nvidia-smi retcode: $ret_code"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$manual_driver_version" ]]; then
|
||||
driver_version="$manual_driver_version"
|
||||
|
||||
echo "Detected nvidia driver version: $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=$?
|
||||
driver_version=$(echo "$driver_versions_list" | head -n 1)
|
||||
if [[ $ret_code -ne 0 ]] ; then
|
||||
echo "Can not detect nvidia driver version."
|
||||
echo "CMD: \"$cmd\""
|
||||
echo "Result: \"$driver_versions_list\""
|
||||
echo "nvidia-smi retcode: $ret_code"
|
||||
exit 1
|
||||
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."
|
||||
|
37
patch.sh
37
patch.sh
@ -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,19 +234,25 @@ patch_common () {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cmd="$NVIDIA_SMI --query-gpu=driver_version --format=csv,noheader,nounits"
|
||||
driver_versions_list=$($cmd)
|
||||
ret_code=$?
|
||||
driver_version=$(echo "$driver_versions_list" | head -n 1)
|
||||
if [[ $ret_code -ne 0 ]] ; then
|
||||
echo "Can not detect nvidia driver version."
|
||||
echo "CMD: \"$cmd\""
|
||||
echo "Result: \"$driver_versions_list\""
|
||||
echo "nvidia-smi retcode: $ret_code"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$manual_driver_version" ]]; then
|
||||
driver_version="$manual_driver_version"
|
||||
|
||||
echo "Detected nvidia driver version: $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=$?
|
||||
driver_version=$(echo "$driver_versions_list" | head -n 1)
|
||||
if [[ $ret_code -ne 0 ]] ; then
|
||||
echo "Can not detect nvidia driver version."
|
||||
echo "CMD: \"$cmd\""
|
||||
echo "Result: \"$driver_versions_list\""
|
||||
echo "nvidia-smi retcode: $ret_code"
|
||||
exit 1
|
||||
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."
|
||||
|
Loading…
Reference in New Issue
Block a user