Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eepm
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
eepm
Commits
b6a30d56
Commit
b6a30d56
authored
Nov 08, 2024
by
Boris Yumankulov
Committed by
Vitaly Lipatov
Nov 09, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
epm play switch-to-nvidia: migrate to epm update-kernel functions (eterbug #17826)
parent
01f54b63
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
3 additions
and
28 deletions
+3
-28
switch-to-nvidia.sh
prescription.d/switch-to-nvidia.sh
+3
-28
No files found.
prescription.d/switch-to-nvidia.sh
View file @
b6a30d56
...
...
@@ -20,7 +20,6 @@ fi
epm assure lspci pciutils
||
exit
# проверяем работоспособность драйвера на текущий момент
# TODO: добавить аргумент --force для принудительной переустановки
if
[
-z
"
$force
"
]
&&
a
=
lspci
-k
|
grep
-A
2
-i
"VGA"
|
grep
"Kernel driver in use"
|
grep
-q
"nvidia"
;
then
echo
"Nvidia driver is already installed and used."
exit
...
...
@@ -31,17 +30,6 @@ epm update || fatal
# epm upgrade || fatal
epm update-kernel
||
fatal
# проверяем, совпадает ли ядро (пока нет такой проверки в update-kernel)
# TODO: добавить функцию в update-kernel и здесь использовать её
check_run_kernel
()
{
if
uname
-r
|
grep
"-def"
;
then
USED_KFLAVOUR
=
"
$(
uname
-r
|
awk
-F
'-'
'{print $(NF-2)}'
)
-def"
else
USED_KFLAVOUR
=
"
$(
uname
-r
|
awk
-F
'-'
'{print $2}'
)
"
fi
ls
/boot |
grep
"vmlinuz"
|
grep
-vE
'vmlinuz-un-def|vmlinuz-std-def|[0-9].[0-9]+$'
|
grep
"
${
USED_KFLAVOUR
}
"
|
sort
-Vr
|
head
-n1
|
grep
-q
$(
uname
-r
)
}
check_old_nvidia
()
{
local
lspci_output
=
$(
a
=
lspci
-k
2>/dev/null |
grep
-E
'VGA|3D'
|
tr
-d
'\n'
)
# Fermi, Kepler and Tesla
...
...
@@ -49,11 +37,7 @@ check_old_nvidia () {
return
1
}
if
check_run_kernel
;
then
echo
"The most newer installed
${
USED_KFLAVOUR
}
kernel is running."
else
echo
"The system has a newer
${
USED_KFLAVOUR
}
kernel."
echo
"Reboot with a fresh
${
USED_KFLAVOUR
}
kernel and restart: epm prescription switch-to-nvidia"
if
!
epm update-kernel
--check-run-kernel
;
then
fatal
fi
...
...
@@ -76,7 +60,6 @@ if [ -e "/etc/X11/xorg.conf" ] && [ "$(grep -E 'nouveau|fbdev|vesa' "/etc/X11/xo
rm
-v
"/etc/X11/xorg.conf"
fi
epm
install
--skip-installed
nvidia-settings nvidia-vaapi-driver ocl-nvidia libcuda vulkan-tools libnvidia-encode libnvidia-ngx libnvidia-opencl libvulkan1 nvidia-modprobe
\
nvidia-xconfig libvulkan1 libcudadebugger libnvcuvid libnvidia-api
\
libnvidia-fbc libnvidia-ml libnvidia-nvvm libnvidia-ptxjitcompiler libnvoptix nvidia-smi libxnvctrl0
...
...
@@ -86,17 +69,9 @@ epm prescription i586-fix
# Убирает «Неизвестный монитор» в настройках дисплеев
if
check_old_nvidia
;
then
# Данное решение приводит к невозможности входа в tty, к отсутствию вывода логов во время загрузки, а так же к поломке luks
if
!
grep
"initcall_blacklist=simpledrm_platform_driver_init"
/etc/sysconfig/grub2 &>/dev/null
;
then
# Делаем копию
cp
/etc/sysconfig/grub2 /etc/sysconfig/grub2.epmbak
sed
-i
"s|^
\(
GRUB_CMDLINE_LINUX_DEFAULT='.*
\)
'
\$
|
\1
initcall_blacklist=simpledrm_platform_driver_init'|"
/etc/sysconfig/grub2
fi
epm update-kernel
--add-kernel-options
initcall_blacklist
=
simpledrm_platform_driver_init
else
if
!
grep
"nvidia_drm.fbdev=1"
/etc/sysconfig/grub2 &>/dev/null
;
then
# Делаем копию
cp
/etc/sysconfig/grub2 /etc/sysconfig/grub2.epmbak
sed
-i
"s|^
\(
GRUB_CMDLINE_LINUX_DEFAULT='.*
\)
'
\$
|
\1
nvidia_drm.fbdev=1'|"
/etc/sysconfig/grub2
fi
epm update-kernel
--add-kernel-options
nvidia_drm.fbdev
=
1
fi
# Активируем службы управления питания NVIDIA, без этих служб будет некоректно работать уход в сон
...
...
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