Commit 0bd54f63 authored by JustCryen's avatar JustCryen

Revert "Support for 470.62.05"

This reverts commit ce652cc7.
parent ce652cc7
NVENC and NvFBC patches for Nvidia drivers NVENC and NvFBC patches for Nvidia drivers
========================================== ==========================================
![GitHub last commit](https://img.shields.io/github/last-commit/keylase/nvidia-patch.svg) ![Latest version](https://img.shields.io/badge/latest%20linux%20driver%20version-470.74-brightgreen.svg) ![GitHub last commit](https://img.shields.io/github/last-commit/keylase/nvidia-patch.svg) ![Latest version](https://img.shields.io/badge/latest%20linux%20driver%20version-470.63.01-brightgreen.svg)
[NVENC patch](patch.sh) removes restriction on maximum number of simultaneous NVENC video encoding sessions imposed by Nvidia to consumer-grade GPUs. [NVENC patch](patch.sh) removes restriction on maximum number of simultaneous NVENC video encoding sessions imposed by Nvidia to consumer-grade GPUs.
...@@ -148,9 +148,7 @@ git clone https://ipfs.io/ipns/Qmed4r8yrBP162WK1ybd1DJWhLUi4t6mGuBoB9fLtjxR7u nv ...@@ -148,9 +148,7 @@ git clone https://ipfs.io/ipns/Qmed4r8yrBP162WK1ybd1DJWhLUi4t6mGuBoB9fLtjxR7u nv
| 470.42.01 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.42.01/NVIDIA-Linux-x86_64-470.42.01.run) | | 470.42.01 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.42.01/NVIDIA-Linux-x86_64-470.42.01.run) |
| 470.57.02 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.57.02/NVIDIA-Linux-x86_64-470.57.02.run) | | 470.57.02 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.57.02/NVIDIA-Linux-x86_64-470.57.02.run) |
| 470.62.02 | YES | YES | | | 470.62.02 | YES | YES | |
| 470.62.05 | YES | YES | |
| 470.63.01 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.63.01/NVIDIA-Linux-x86_64-470.63.01.run) | | 470.63.01 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.63.01/NVIDIA-Linux-x86_64-470.63.01.run) |
| 470.74 | YES | YES | [Driver link](https://international.download.nvidia.com/XFree86/Linux-x86_64/470.74/NVIDIA-Linux-x86_64-470.74.run) |
## Synopsis ## Synopsis
...@@ -158,7 +156,7 @@ git clone https://ipfs.io/ipns/Qmed4r8yrBP162WK1ybd1DJWhLUi4t6mGuBoB9fLtjxR7u nv ...@@ -158,7 +156,7 @@ git clone https://ipfs.io/ipns/Qmed4r8yrBP162WK1ybd1DJWhLUi4t6mGuBoB9fLtjxR7u nv
# bash ./patch.sh -h # bash ./patch.sh -h
SYNOPSIS SYNOPSIS
patch.sh [-s] [-r|-h|-c VERSION|-l|-f] patch.sh [-s] [-r|-h|-c VERSION|-l]
DESCRIPTION DESCRIPTION
The patch for Nvidia drivers to remove NVENC session limit The patch for Nvidia drivers to remove NVENC session limit
...@@ -171,7 +169,6 @@ DESCRIPTION ...@@ -171,7 +169,6 @@ DESCRIPTION
-l List supported driver versions -l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries -d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it. instead of using nvidia-smi to detect it.
-f Enable support for Flatpak NVIDIA drivers.
``` ```
...@@ -179,7 +176,7 @@ DESCRIPTION ...@@ -179,7 +176,7 @@ DESCRIPTION
# bash ./patch-fbc.sh -h # bash ./patch-fbc.sh -h
SYNOPSIS SYNOPSIS
patch-fbc.sh [-s] [-r|-h|-c VERSION|-l|-f] patch-fbc.sh [-s] [-r|-h|-c VERSION|-l]
DESCRIPTION DESCRIPTION
The patch for Nvidia drivers to allow FBC on consumer devices The patch for Nvidia drivers to allow FBC on consumer devices
...@@ -192,7 +189,7 @@ DESCRIPTION ...@@ -192,7 +189,7 @@ DESCRIPTION
-l List supported driver versions -l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries -d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it. instead of using nvidia-smi to detect it.
-f Enable support for Flatpak NVIDIA drivers.
``` ```
...@@ -250,22 +247,6 @@ Essentially all you need to do during build is: ...@@ -250,22 +247,6 @@ Essentially all you need to do during build is:
`docker-entrypoint.sh` script does on-the-fly patching by means of manipulating dynamic linker to workaround read-only mount of Nvidia runtime. Finally it passes original docker command to shell, like if entrypoint was not restricted by `ENTRYPOINT` directive. So `docker run --runtime=nvidia -it mycontainer echo 123` will print `123`. Also it can be just invoked from your entrypoint script, if you have any. `docker-entrypoint.sh` script does on-the-fly patching by means of manipulating dynamic linker to workaround read-only mount of Nvidia runtime. Finally it passes original docker command to shell, like if entrypoint was not restricted by `ENTRYPOINT` directive. So `docker run --runtime=nvidia -it mycontainer echo 123` will print `123`. Also it can be just invoked from your entrypoint script, if you have any.
## Flatpak support
If you use a Flatpak app that uses NVENC/NvFBC (e.g. OBS Studio, Kdenlive), it's recommended that you patch the NVIDIA drivers for Flatpak as well. To do so, just pass the `-f` parameter to either `patch.sh` or `patch-fbc.sh`, like so:
```bash
bash ./patch.sh -f
bash ./patch-fbc.sh -f
```
In case something goes wrong, you can restore the original Flatpak drivers by adding the `-r` paramater:
```
bash ./patch.sh -f -r
bash ./patch-fbc.sh -f -r
```
## Benchmarks ## Benchmarks
* [Plex Media Server: nVidia Hardware Transcoding Calculator for Plex Estimates](https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding) - useful benchmark of achieved simultaneous transcodes with various stream quality and hardware with patched drivers. * [Plex Media Server: nVidia Hardware Transcoding Calculator for Plex Estimates](https://www.elpamsoft.com/?p=Plex-Hardware-Transcoding) - useful benchmark of achieved simultaneous transcodes with various stream quality and hardware with patched drivers.
......
...@@ -7,12 +7,10 @@ set -euo pipefail ; # <- this semicolon and comment make options apply ...@@ -7,12 +7,10 @@ set -euo pipefail ; # <- this semicolon and comment make options apply
backup_path="/opt/nvidia/libnvidia-fbc-backup" backup_path="/opt/nvidia/libnvidia-fbc-backup"
silent_flag='' silent_flag=''
manual_driver_version='' manual_driver_version=''
flatpak_flag=''
backup_suffix=''
print_usage() { printf ' print_usage() { printf '
SYNOPSIS SYNOPSIS
patch-fbc.sh [-s] [-r|-h|-c VERSION|-l|-f] patch-fbc.sh [-s] [-r|-h|-c VERSION|-l]
DESCRIPTION DESCRIPTION
The patch for Nvidia drivers to allow FBC on consumer devices The patch for Nvidia drivers to allow FBC on consumer devices
...@@ -25,14 +23,14 @@ DESCRIPTION ...@@ -25,14 +23,14 @@ DESCRIPTION
-l List supported driver versions -l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries -d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it. instead of using nvidia-smi to detect it.
-f Enable support for Flatpak NVIDIA drivers.
' '
} }
# shellcheck disable=SC2209 # shellcheck disable=SC2209
opmode="patch" opmode="patch"
while getopts 'rshc:ld:f' flag; do while getopts 'rshc:ld:' flag; do
case "${flag}" in case "${flag}" in
r) opmode="${opmode}rollback" ;; r) opmode="${opmode}rollback" ;;
s) silent_flag='true' ;; s) silent_flag='true' ;;
...@@ -40,7 +38,6 @@ while getopts 'rshc:ld:f' flag; do ...@@ -40,7 +38,6 @@ while getopts 'rshc:ld:f' flag; do
c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;; c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;;
l) opmode="${opmode}listversions" ;; l) opmode="${opmode}listversions" ;;
d) manual_driver_version="$OPTARG" ;; d) manual_driver_version="$OPTARG" ;;
f) flatpak_flag='true' ;;
*) echo "Incorrect option specified in command line" ; exit 2 ;; *) echo "Incorrect option specified in command line" ; exit 2 ;;
esac esac
done done
...@@ -49,11 +46,6 @@ if [[ $silent_flag ]]; then ...@@ -49,11 +46,6 @@ if [[ $silent_flag ]]; then
exec 1> /dev/null exec 1> /dev/null
fi fi
if [[ $flatpak_flag ]]; then
backup_suffix='.flatpak'
echo "WARNING: Flatpak flag enabled (-f), modifying ONLY the Flatpak driver."
fi
declare -A patch_list=( declare -A patch_list=(
["435.27.08"]='s/\x85\xc0\x89\xc3\x0f\x85\x68\xfa\xff\xff/\x31\xc0\x89\xc3\x0f\x85\x68\xfa\xff\xff/' ["435.27.08"]='s/\x85\xc0\x89\xc3\x0f\x85\x68\xfa\xff\xff/\x31\xc0\x89\xc3\x0f\x85\x68\xfa\xff\xff/'
["440.26"]='s/\x85\xc0\x89\xc3\x0f\x85\xa9\xfa\xff\xff/\x31\xc0\x89\xc3\x0f\x85\xa9\xfa\xff\xff/' ["440.26"]='s/\x85\xc0\x89\xc3\x0f\x85\xa9\xfa\xff\xff/\x31\xc0\x89\xc3\x0f\x85\xa9\xfa\xff\xff/'
...@@ -126,9 +118,7 @@ declare -A patch_list=( ...@@ -126,9 +118,7 @@ declare -A patch_list=(
["470.42.01"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/' ["470.42.01"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
["470.57.02"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/' ["470.57.02"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
["470.62.02"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/' ["470.62.02"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
["470.62.05"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
["470.63.01"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/' ["470.63.01"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
["470.74"]='s/\x83\xfe\x01\x73\x08\x48/\x83\xfe\x00\x72\x08\x48/'
) )
declare -A object_list=( declare -A object_list=(
...@@ -203,9 +193,7 @@ declare -A object_list=( ...@@ -203,9 +193,7 @@ declare -A object_list=(
["470.42.01"]='libnvidia-fbc.so' ["470.42.01"]='libnvidia-fbc.so'
["470.57.02"]='libnvidia-fbc.so' ["470.57.02"]='libnvidia-fbc.so'
["470.62.02"]='libnvidia-fbc.so' ["470.62.02"]='libnvidia-fbc.so'
["470.62.05"]='libnvidia-fbc.so'
["470.63.01"]='libnvidia-fbc.so' ["470.63.01"]='libnvidia-fbc.so'
["470.74"]='libnvidia-fbc.so'
) )
check_version_supported () { check_version_supported () {
...@@ -213,14 +201,6 @@ check_version_supported () { ...@@ -213,14 +201,6 @@ check_version_supported () {
[[ "${patch_list[$ver]+isset}" && "${object_list[$ver]+isset}" ]] [[ "${patch_list[$ver]+isset}" && "${object_list[$ver]+isset}" ]]
} }
get_flatpak_driver_path () {
# Flatpak's package versioning replaces '.' by '-'
version="$(echo "$1" | tr '.' '-')"
if path=$(flatpak info --show-location "org.freedesktop.Platform.GL.nvidia-${version}" 2>/dev/null); then
echo "$path/files/lib"
fi
}
get_supported_versions () { get_supported_versions () {
for drv in "${!patch_list[@]}"; do for drv in "${!patch_list[@]}"; do
[[ "${object_list[$drv]+isset}" ]] && echo "$drv" [[ "${object_list[$drv]+isset}" ]] && echo "$drv"
...@@ -264,17 +244,6 @@ patch_common () { ...@@ -264,17 +244,6 @@ patch_common () {
patch="${patch_list[$driver_version]}" patch="${patch_list[$driver_version]}"
object="${object_list[$driver_version]}" object="${object_list[$driver_version]}"
if [[ $flatpak_flag ]]; then
driver_dir=$(get_flatpak_driver_path "$driver_version")
if [ -z "$driver_dir" ]; then
echo "ERROR: Flatpak package for driver $driver_version does not appear to be installed."
echo "Try rebooting your computer and/or running 'flatpak update'."
exit 1
fi
# return early because the code below is out of scope for the Flatpak driver
return 0
fi
declare -a driver_locations=( declare -a driver_locations=(
'/usr/lib/x86_64-linux-gnu' '/usr/lib/x86_64-linux-gnu'
'/usr/lib/x86_64-linux-gnu/nvidia/current/' '/usr/lib/x86_64-linux-gnu/nvidia/current/'
...@@ -296,10 +265,10 @@ patch_common () { ...@@ -296,10 +265,10 @@ patch_common () {
rollback () { rollback () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version" ]]; then
cp -p "$backup_path/$object.$driver_version$backup_suffix" \ cp -p "$backup_path/$object.$driver_version" \
"$driver_dir/$object.$driver_version" "$driver_dir/$object.$driver_version"
echo "Restore from backup $object.$driver_version$backup_suffix" echo "Restore from backup $object.$driver_version"
else else
echo "Backup not found. Try to patch first." echo "Backup not found. Try to patch first."
exit 1 exit 1
...@@ -308,8 +277,8 @@ rollback () { ...@@ -308,8 +277,8 @@ rollback () {
patch () { patch () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version" ]]; then
bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )" bkp_hash="$(sha1sum "$backup_path/$object.$driver_version" | cut -f1 -d\ )"
drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )" drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )"
if [[ "$bkp_hash" != "$drv_hash" ]] ; then if [[ "$bkp_hash" != "$drv_hash" ]] ; then
echo "Backup exists and driver file differ from backup. Skipping patch." echo "Backup exists and driver file differ from backup. Skipping patch."
...@@ -319,10 +288,10 @@ patch () { ...@@ -319,10 +288,10 @@ patch () {
echo "Attention! Backup not found. Copying current $object to backup." echo "Attention! Backup not found. Copying current $object to backup."
mkdir -p "$backup_path" mkdir -p "$backup_path"
cp -p "$driver_dir/$object.$driver_version" \ cp -p "$driver_dir/$object.$driver_version" \
"$backup_path/$object.$driver_version$backup_suffix" "$backup_path/$object.$driver_version"
fi fi
sha1sum "$backup_path/$object.$driver_version$backup_suffix" sha1sum "$backup_path/$object.$driver_version"
sed "$patch" "$backup_path/$object.$driver_version$backup_suffix" > \ sed "$patch" "$backup_path/$object.$driver_version" > \
"${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version" "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version"
sha1sum "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version" sha1sum "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version"
ldconfig ldconfig
......
...@@ -7,12 +7,10 @@ set -euo pipefail ; # <- this semicolon and comment make options apply ...@@ -7,12 +7,10 @@ set -euo pipefail ; # <- this semicolon and comment make options apply
backup_path="/opt/nvidia/libnvidia-encode-backup" backup_path="/opt/nvidia/libnvidia-encode-backup"
silent_flag='' silent_flag=''
manual_driver_version='' manual_driver_version=''
flatpak_flag=''
backup_suffix=''
print_usage() { printf ' print_usage() { printf '
SYNOPSIS SYNOPSIS
patch.sh [-s] [-r|-h|-c VERSION|-l|-f] patch.sh [-s] [-r|-h|-c VERSION|-l]
DESCRIPTION DESCRIPTION
The patch for Nvidia drivers to remove NVENC session limit The patch for Nvidia drivers to remove NVENC session limit
...@@ -25,14 +23,13 @@ DESCRIPTION ...@@ -25,14 +23,13 @@ DESCRIPTION
-l List supported driver versions -l List supported driver versions
-d VERSION Use VERSION driver version when looking for libraries -d VERSION Use VERSION driver version when looking for libraries
instead of using nvidia-smi to detect it. instead of using nvidia-smi to detect it.
-f Enable support for Flatpak NVIDIA drivers.
' '
} }
# shellcheck disable=SC2209 # shellcheck disable=SC2209
opmode="patch" opmode="patch"
while getopts 'rshc:ld:f' flag; do while getopts 'rshc:ld:' flag; do
case "${flag}" in case "${flag}" in
r) opmode="${opmode}rollback" ;; r) opmode="${opmode}rollback" ;;
s) silent_flag='true' ;; s) silent_flag='true' ;;
...@@ -40,7 +37,6 @@ while getopts 'rshc:ld:f' flag; do ...@@ -40,7 +37,6 @@ while getopts 'rshc:ld:f' flag; do
c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;; c) opmode="${opmode}checkversion" ; checked_version="$OPTARG" ;;
l) opmode="${opmode}listversions" ;; l) opmode="${opmode}listversions" ;;
d) manual_driver_version="$OPTARG" ;; d) manual_driver_version="$OPTARG" ;;
f) flatpak_flag='true' ;;
*) echo "Incorrect option specified in command line" ; exit 2 ;; *) echo "Incorrect option specified in command line" ; exit 2 ;;
esac esac
done done
...@@ -49,11 +45,6 @@ if [[ $silent_flag ]]; then ...@@ -49,11 +45,6 @@ if [[ $silent_flag ]]; then
exec 1> /dev/null exec 1> /dev/null
fi fi
if [[ $flatpak_flag ]]; then
backup_suffix='.flatpak'
echo "WARNING: Flatpak flag enabled (-f), modifying ONLY the Flatpak driver."
fi
declare -A patch_list=( declare -A patch_list=(
["375.39"]='s/\x85\xC0\x89\xC5\x75\x18/\x29\xC0\x89\xC5\x90\x90/g' ["375.39"]='s/\x85\xC0\x89\xC5\x75\x18/\x29\xC0\x89\xC5\x90\x90/g'
["390.77"]='s/\x85\xC0\x89\xC5\x75\x18/\x29\xC0\x89\xC5\x90\x90/g' ["390.77"]='s/\x85\xC0\x89\xC5\x75\x18/\x29\xC0\x89\xC5\x90\x90/g'
...@@ -164,9 +155,7 @@ declare -A patch_list=( ...@@ -164,9 +155,7 @@ declare -A patch_list=(
["470.42.01"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g' ["470.42.01"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
["470.57.02"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g' ["470.57.02"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
["470.62.02"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g' ["470.62.02"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
["470.62.05"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
["470.63.01"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g' ["470.63.01"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
["470.74"]='s/\xe8\x25\x1C\xff\xff\x85\xc0\x41\x89\xc4/\xe8\x25\x1C\xff\xff\x29\xc0\x41\x89\xc4/g'
) )
declare -A object_list=( declare -A object_list=(
...@@ -277,9 +266,7 @@ declare -A object_list=( ...@@ -277,9 +266,7 @@ declare -A object_list=(
["470.42.01"]='libnvidia-encode.so' ["470.42.01"]='libnvidia-encode.so'
["470.57.02"]='libnvidia-encode.so' ["470.57.02"]='libnvidia-encode.so'
["470.62.02"]='libnvidia-encode.so' ["470.62.02"]='libnvidia-encode.so'
["470.62.05"]='libnvidia-encode.so'
["470.63.01"]='libnvidia-encode.so' ["470.63.01"]='libnvidia-encode.so'
["470.74"]='libnvidia-encode.so'
) )
check_version_supported () { check_version_supported () {
...@@ -287,14 +274,6 @@ check_version_supported () { ...@@ -287,14 +274,6 @@ check_version_supported () {
[[ "${patch_list[$ver]+isset}" && "${object_list[$ver]+isset}" ]] [[ "${patch_list[$ver]+isset}" && "${object_list[$ver]+isset}" ]]
} }
get_flatpak_driver_path () {
# Flatpak's package versioning replaces '.' by '-'
version="$(echo "$1" | tr '.' '-')"
if path=$(flatpak info --show-location "org.freedesktop.Platform.GL.nvidia-${version}" 2>/dev/null); then
echo "$path/files/lib"
fi
}
get_supported_versions () { get_supported_versions () {
for drv in "${!patch_list[@]}"; do for drv in "${!patch_list[@]}"; do
[[ "${object_list[$drv]+isset}" ]] && echo "$drv" [[ "${object_list[$drv]+isset}" ]] && echo "$drv"
...@@ -338,17 +317,6 @@ patch_common () { ...@@ -338,17 +317,6 @@ patch_common () {
patch="${patch_list[$driver_version]}" patch="${patch_list[$driver_version]}"
object="${object_list[$driver_version]}" object="${object_list[$driver_version]}"
if [[ $flatpak_flag ]]; then
driver_dir=$(get_flatpak_driver_path "$driver_version")
if [ -z "$driver_dir" ]; then
echo "ERROR: Flatpak package for driver $driver_version does not appear to be installed."
echo "Try rebooting your computer and/or running 'flatpak update'."
exit 1
fi
# return early because the code below is out of scope for the Flatpak driver
return 0
fi
declare -a driver_locations=( declare -a driver_locations=(
'/usr/lib/x86_64-linux-gnu' '/usr/lib/x86_64-linux-gnu'
'/usr/lib/x86_64-linux-gnu/nvidia/current/' '/usr/lib/x86_64-linux-gnu/nvidia/current/'
...@@ -370,10 +338,10 @@ patch_common () { ...@@ -370,10 +338,10 @@ patch_common () {
rollback () { rollback () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version" ]]; then
cp -p "$backup_path/$object.$driver_version$backup_suffix" \ cp -p "$backup_path/$object.$driver_version" \
"$driver_dir/$object.$driver_version" "$driver_dir/$object.$driver_version"
echo "Restore from backup $object.$driver_version$backup_suffix" echo "Restore from backup $object.$driver_version"
else else
echo "Backup not found. Try to patch first." echo "Backup not found. Try to patch first."
exit 1 exit 1
...@@ -382,8 +350,8 @@ rollback () { ...@@ -382,8 +350,8 @@ rollback () {
patch () { patch () {
patch_common patch_common
if [[ -f "$backup_path/$object.$driver_version$backup_suffix" ]]; then if [[ -f "$backup_path/$object.$driver_version" ]]; then
bkp_hash="$(sha1sum "$backup_path/$object.$driver_version$backup_suffix" | cut -f1 -d\ )" bkp_hash="$(sha1sum "$backup_path/$object.$driver_version" | cut -f1 -d\ )"
drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )" drv_hash="$(sha1sum "$driver_dir/$object.$driver_version" | cut -f1 -d\ )"
if [[ "$bkp_hash" != "$drv_hash" ]] ; then if [[ "$bkp_hash" != "$drv_hash" ]] ; then
echo "Backup exists and driver file differ from backup. Skipping patch." echo "Backup exists and driver file differ from backup. Skipping patch."
...@@ -393,10 +361,10 @@ patch () { ...@@ -393,10 +361,10 @@ patch () {
echo "Attention! Backup not found. Copying current $object to backup." echo "Attention! Backup not found. Copying current $object to backup."
mkdir -p "$backup_path" mkdir -p "$backup_path"
cp -p "$driver_dir/$object.$driver_version" \ cp -p "$driver_dir/$object.$driver_version" \
"$backup_path/$object.$driver_version$backup_suffix" "$backup_path/$object.$driver_version"
fi fi
sha1sum "$backup_path/$object.$driver_version$backup_suffix" sha1sum "$backup_path/$object.$driver_version"
sed "$patch" "$backup_path/$object.$driver_version$backup_suffix" > \ sed "$patch" "$backup_path/$object.$driver_version" > \
"${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version" "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version"
sha1sum "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version" sha1sum "${PATCH_OUTPUT_DIR-$driver_dir}/$object.$driver_version"
ldconfig ldconfig
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment