Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
nvidia-patch
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
nvidia-patch
Commits
10b1e446
Commit
10b1e446
authored
Oct 18, 2018
by
Ilya Evseev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adopt for 410.48 and CentOS.
parent
8ff36f97
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
5 deletions
+10
-5
patch.sh
patch.sh
+10
-5
No files found.
patch.sh
View file @
10b1e446
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
backup_path
=
"/opt/nvidia/libnvidia-encode-backup"
backup_path
=
"/opt/nvidia/libnvidia-encode-backup"
silent_flag
=
''
silent_flag
=
''
rollback_flag
=
''
rollback_flag
=
''
driver_dir
=
'/usr/lib/x86_64-linux-gnu'
print_usage
()
{
printf
'
print_usage
()
{
printf
'
SYNOPSIS
SYNOPSIS
...
@@ -30,6 +31,9 @@ if [[ $silent_flag ]]; then
...
@@ -30,6 +31,9 @@ if [[ $silent_flag ]]; then
exec
1> /dev/null
exec
1> /dev/null
fi
fi
test
-d
"
$driver_dir
"
||
driver_dir
=
"/usr/lib64"
# ..centos
test
-d
"
$driver_dir
"
||
{
echo
"ERROR: cannot detect driver directory"
;
exit
1
;
}
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'
[
"396.24"
]=
's/\x85\xC0\x89\xC5\x0F\x85\x96\x00\x00\x00/\x29\xC0\x89\xC5\x90\x90\x90\x90\x90\x90/g'
[
"396.24"
]=
's/\x85\xC0\x89\xC5\x0F\x85\x96\x00\x00\x00/\x29\xC0\x89\xC5\x90\x90\x90\x90\x90\x90/g'
...
@@ -38,6 +42,7 @@ declare -A patch_list=(
...
@@ -38,6 +42,7 @@ declare -A patch_list=(
# break nvenc.c:236,layout asm,step-mode,step,break *0x00007fff89f9ba45
# break nvenc.c:236,layout asm,step-mode,step,break *0x00007fff89f9ba45
# libnvidia-encode.so @ 0x15a45; test->sub, jne->nop-nop-nop-nop-nop-nop
# libnvidia-encode.so @ 0x15a45; test->sub, jne->nop-nop-nop-nop-nop-nop
[
"396.54"
]=
's/\x85\xC0\x89\xC5\x0F\x85\x96\x00\x00\x00/\x29\xC0\x89\xC5\x90\x90\x90\x90\x90\x90/g'
[
"396.54"
]=
's/\x85\xC0\x89\xC5\x0F\x85\x96\x00\x00\x00/\x29\xC0\x89\xC5\x90\x90\x90\x90\x90\x90/g'
[
"410.48"
]=
's/\x85\xC0\x89\xC5\x0F\x85\x96\x00\x00\x00/\x29\xC0\x89\xC5\x90\x90\x90\x90\x90\x90/g'
)
)
driver_version
=
$(
/usr/bin/nvidia-smi
--query-gpu
=
driver_version
--format
=
csv,noheader,nounits |
head
-n
1
)
driver_version
=
$(
/usr/bin/nvidia-smi
--query-gpu
=
driver_version
--format
=
csv,noheader,nounits |
head
-n
1
)
...
@@ -61,8 +66,8 @@ fi
...
@@ -61,8 +66,8 @@ fi
if
[[
$rollback_flag
]]
;
then
if
[[
$rollback_flag
]]
;
then
if
[[
-f
$backup_path
/libnvidia-encode.so.
$driver_version
]]
;
then
if
[[
-f
$backup_path
/libnvidia-encode.so.
$driver_version
]]
;
then
cp
$backup_path
/libnvidia-encode.so.
$driver_version
\
cp
-p
$backup_path
/libnvidia-encode.so.
$driver_version
\
/usr/lib/x86_64-linux-gnu
/libnvidia-encode.so.
$driver_version
$driver_dir
/libnvidia-encode.so.
$driver_version
echo
"Restore from backup libnvidia-encode.so.
$driver_version
"
echo
"Restore from backup libnvidia-encode.so.
$driver_version
"
else
else
echo
"Backup not found. Try to patch first."
echo
"Backup not found. Try to patch first."
...
@@ -72,13 +77,13 @@ else
...
@@ -72,13 +77,13 @@ else
if
[[
!
-f
$backup_path
/libnvidia-encode.so.
$driver_version
]]
;
then
if
[[
!
-f
$backup_path
/libnvidia-encode.so.
$driver_version
]]
;
then
echo
"Attention! Backup not found. Copy current libnvidia-encode to backup."
echo
"Attention! Backup not found. Copy current libnvidia-encode to backup."
mkdir
-p
$backup_path
mkdir
-p
$backup_path
cp
/usr/lib/x86_64-linux-gnu
/libnvidia-encode.so.
$driver_version
\
cp
-p
$driver_dir
/libnvidia-encode.so.
$driver_version
\
$backup_path
/libnvidia-encode.so.
$driver_version
$backup_path
/libnvidia-encode.so.
$driver_version
fi
fi
sha1sum
$backup_path
/libnvidia-encode.so.
$driver_version
sha1sum
$backup_path
/libnvidia-encode.so.
$driver_version
sed
"
$patch
"
$backup_path
/libnvidia-encode.so.
$driver_version
>
\
sed
"
$patch
"
$backup_path
/libnvidia-encode.so.
$driver_version
>
\
/usr/lib/x86_64-linux-gnu
/libnvidia-encode.so.
$driver_version
$driver_dir
/libnvidia-encode.so.
$driver_version
sha1sum
/usr/lib/x86_64-linux-gnu
/libnvidia-encode.so.
$driver_version
sha1sum
$driver_dir
/libnvidia-encode.so.
$driver_version
ldconfig
ldconfig
echo
"Patched!"
echo
"Patched!"
fi
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment