change-amd-driver added
This commit is contained in:
55
scripts/ubuntu/change-amd-driver/change.sh
Executable file
55
scripts/ubuntu/change-amd-driver/change.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
################################################################################
|
||||
# НАЗНАЧЕНИЕ: Переключение драйвера для видеокарт AMD GCN 1.0 (Pitcairn/SI).
|
||||
#
|
||||
# ЧТО ИСПРАВЛЯЕТ:
|
||||
# Артефакты, мерцание, черные окна и "шахматную сетку" в Electron-приложениях
|
||||
# (VS Code, Discord, Obsidian, Skype) и браузере Chrome/Chromium в среде KDE.
|
||||
#
|
||||
# ПОЧЕМУ ЭТО НУЖНО:
|
||||
# По умолчанию для старых карт (R7 370 / R9 270X) Ubuntu использует драйвер 'radeon'.
|
||||
# Он стабилен, но плохо поддерживает современное аппаратное ускорение и Vulkan.
|
||||
# Переключение на драйвер 'amdgpu' дает:
|
||||
# 1. Полную поддержку Vulkan API.
|
||||
# 2. Совместимость с современным аппаратным ускорением Chromium.
|
||||
# 3. Повышенную производительность в KDE Plasma (движок KWin).
|
||||
#
|
||||
# ПРИНЦИП РАБОТЫ:
|
||||
# Скрипт передает ядру параметры 'radeon.si_support=0' (отключить старый драйвер
|
||||
# для архитектуры Southern Islands) и 'amdgpu.si_support=1' (включить новый).
|
||||
################################################################################
|
||||
|
||||
# Проверка на права суперпользователя
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Пожалуйста, запустите скрипт через sudo"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "--- Настройка AMDGPU для GCN 1.0 (Pitcairn) ---"
|
||||
|
||||
# 1. Резервное копирование конфига Grub
|
||||
cp /etc/default/grub /etc/default/grub.bak
|
||||
echo "[1/4] Бэкап Grub создан: /etc/default/grub.bak"
|
||||
|
||||
# 2. Добавление параметров поддержки amdgpu и отключение старого radeon
|
||||
# Используем sed для вставки параметров в строку GRUB_CMDLINE_LINUX_DEFAULT
|
||||
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 amdgpu.si_support=1 /' /etc/default/grub
|
||||
echo "[2/4] Параметры ядра добавлены в /etc/default/grub"
|
||||
|
||||
# 3. Обновление конфигурации Grub
|
||||
echo "[3/4] Обновление загрузчика..."
|
||||
update-grub
|
||||
|
||||
# 4. Проверка необходимости внесения в blacklist (опционально, но надежно)
|
||||
if [ ! -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||
echo "options amdgpu si_support=1" > /etc/modprobe.d/amdgpu.conf
|
||||
echo "options radeon si_support=0" >> /etc/modprobe.d/amdgpu.conf
|
||||
echo "[4/4] Конфиг modprobe создан"
|
||||
else
|
||||
echo "[4/4] Конфиг modprobe уже существует"
|
||||
fi
|
||||
|
||||
echo "-------------------------------------------------------"
|
||||
echo "Готово! Перезагрузите компьютер, чтобы изменения вступили в силу."
|
||||
echo "После перезагрузки выполните: lspci -k | grep -EA3 'VGA|3D'"
|
||||
54
scripts/ubuntu/change-amd-driver/rollback.sh
Executable file
54
scripts/ubuntu/change-amd-driver/rollback.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
################################################################################
|
||||
# НАЗНАЧЕНИЕ: Откат изменений и возврат к стандартному драйверу 'radeon'.
|
||||
#
|
||||
# ЗАЧЕМ ЭТО НУЖНО:
|
||||
# Этот скрипт используется, если после перехода на 'amdgpu' возникли проблемы:
|
||||
# 1. Система загружается в черный экран или зависает.
|
||||
# 2. Появились проблемы с выводом звука через HDMI (иногда бывает на GCN 1.0).
|
||||
# 3. Наблюдаются специфические графические баги, которых не было ранее.
|
||||
#
|
||||
# ЧТО ИСПРАВЛЯЕТ:
|
||||
# Возвращает конфигурацию системы к стандартному состоянию Ubuntu. Драйвер
|
||||
# 'radeon' является базовым и максимально стабильным для старых карт AMD,
|
||||
# хотя и не поддерживает современные функции (Vulkan, новый стек Electron).
|
||||
#
|
||||
# ПРИНЦИП РАБОТЫ:
|
||||
# 1. Восстанавливает исходный файл /etc/default/grub из резервной копии.
|
||||
# 2. Удаляет специфические инструкции из /etc/modprobe.d/, которые заставляли
|
||||
# ядро игнорировать карту для драйвера radeon.
|
||||
# 3. Обновляет конфигурацию загрузчика для применения изменений.
|
||||
################################################################################
|
||||
|
||||
# Проверка на права суперпользователя
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Пожалуйста, запустите скрипт через sudo"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "--- Откат изменений и возврат к драйверу Radeon ---"
|
||||
|
||||
# 1. Восстановление Grub из бэкапа или очистка вручную
|
||||
if [ -f /etc/default/grub.bak ]; then
|
||||
mv /etc/default/grub.bak /etc/default/grub
|
||||
echo "[1/3] Конфигурация Grub восстановлена из бэкапа."
|
||||
else
|
||||
# Если бэкапа нет, удаляем параметры через sed
|
||||
sed -i 's/radeon.si_support=0 //g' /etc/default/grub
|
||||
sed -i 's/amdgpu.si_support=1 //g' /etc/default/grub
|
||||
echo "[1/3] Параметры удалены из /etc/default/grub вручную."
|
||||
fi
|
||||
|
||||
# 2. Удаление файлов из modprobe.d
|
||||
if [ -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||
rm /etc/modprobe.d/amdgpu.conf
|
||||
echo "[2/3] Файл /etc/modprobe.d/amdgpu.conf удален."
|
||||
fi
|
||||
|
||||
# 3. Обновление конфигурации Grub
|
||||
echo "[3/3] Обновление загрузчика..."
|
||||
update-grub
|
||||
|
||||
echo "-------------------------------------------------------"
|
||||
echo "Откат завершен. После перезагрузки система вернется на драйвер 'radeon'."
|
||||
Reference in New Issue
Block a user