Commit 3d921f37 authored by Vladislav's avatar Vladislav

Вернул отдельные пакеты для Cuda в switch-to-nvidia.sh

Добавил скрипты выбора для установки пакетов Добавил скрипт выбора для фикса неизвестного монитора.
parent 1fa53200
......@@ -67,17 +67,72 @@ if [ -e "/etc/X11/xorg.conf" ] && [ "$(grep -E 'nouveau|fbdev|vesa' "/etc/X11/xo
fi
epm install --skip-installed nvidia-settings nvidia-vaapi-driver vulkan-tools libvulkan1 nvidia-modprobe \
nvidia-xconfig nvidia-cuda-toolkit
# Создаем список дополнительных пакетов и их описания. Все новые пакеты добавлять в этот список.
declare -A packages
# Добавлять или удалять пакеты необходимо тут
packages=(
["nvidia-settings"]=" nvidia-settings — это инструмент для настройки видеокарт NVIDIA."
["nvidia-vaapi-driver"]="nvidia-vaapi-driver — это драйвер для аппаратного декодирования видео на видеокартах NVIDIA."
["vulkan-tools"]="vulkan-tools — это набор инструментов для работы с Vulkan API."
["nvidia-modprobe"]="nvidia-modprobe — это утилита для загрузки модулей ядра NVIDIA."
["nvidia-xconfig"]="nvidia-xconfig — это инструмент для управления конфигурацией X server для видеокарт NVIDIA."
["libvulkan1"]="libvulkan1 — это библиотека, которая предоставляет API Vulkan 1.x."
)
install_list=()
# Для каждого пакета спрашиваем пользователя, хочет ли он его установить
for package in "${!packages[@]}"; do
echo "${packages[$package]}"
read -p "Установить $package? [Y/n] " answer
answer=${answer,,} # Преобразуем ответ в нижний регистр
# Если ответ 'y' или пустой (вариант по умолчанию), то добавляем пакет в список для установки
if [[ $answer == 'y' || $answer == '' ]]; then
install_list+=($package)
else
continue
fi
done
# Отдельно спрашиваем про пакеты для поддержки Cuda. Аналогично установке пакетов nvidia_glx_libs_XXX.XX.
read -p "Вы хотите установить дополнительные пакеты для поддержки Cuda? [Y/n] " answer
answer=${answer,,}
if [[ $answer == 'y' || $answer == '' ]]; then
cuda_list=("ocl-nvidia" "libcuda" "libnvidia-encode" "libnvidia-ngx" "libnvidia-opencl" "libcudadebugger" "libnvcuvid" "libnvidia-api" "libnvidia-fbc" "libnvidia-ml" "libnvidia-nvvm" "libnvidia-ptxjitcompiler" "libnvoptix" "nvidia-smi")
install_list+=($cuda_list)
else
continue
fi
# Если список для установки не пуст, то устанавливаем пакеты
if [ ${#install_list[@]} -ne 0 ]; then
echo "Устанавливаем пакеты: ${install_list[@]}"
epm install --skip-installed ${install_list[@]}
else
echo "Вы не выбрали ни одного дополнительного пакета для установки."
fi
epm play i586-fix
# Убирает «Неизвестный монитор» в настройках дисплеев в сессии Wayland
# Данное решение приводит к невозможности входа в tty, к отсутствию вывода логов во время загрузки (Если не включён Plymouth)
if ! grep "initcall_blacklist=simpledrm_platform_driver_init" /etc/sysconfig/grub2 &>/dev/null ; then
# Делаем копию
# У этого фикса есть плюсы и минусы. Лучше предложить его применение на этапе установки.
echo "FIX: убираем «Неизвестный монитор» в настройках дисплеев в сессии Wayland"
echo "Внимание! Данное решение приводит к невозможности входа в tty, к отсутствию вывода логов во время загрузки (Если не включён Plymouth)."
read -p "Вы хотите применить FIX? [Y/n] " answer
answer=${answer,,}
if [[ $answer == 'y' || $answer == '' ]]; then
if ! grep "initcall_blacklist=simpledrm_platform_driver_init" /etc/sysconfig/grub2 &>/dev/null ; then
echo "Создание копии /etc/sysconfig/grub2..."
cp /etc/sysconfig/grub2 /etc/sysconfig/grub2.epmbak
echo "Добавление initcall_blacklist=simpledrm_platform_driver_init в параметры ядра..."
sed -i "s|^\(GRUB_CMDLINE_LINUX_DEFAULT='.*\)'\$|\1 initcall_blacklist=simpledrm_platform_driver_init'|" /etc/sysconfig/grub2
fi
else
continue
fi
# Активируем службы управления питания NVIDIA, без этих служб будет некоректно работать уход в сон
......
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