From d13a8a44d1e35495b4d9f15f748a7c994d05a27b Mon Sep 17 00:00:00 2001 From: Anthony Axenov Date: Mon, 16 Feb 2026 17:26:38 +0800 Subject: [PATCH] change-amd-driver added --- scripts/ubuntu/change-amd-driver/change.sh | 55 ++++++++++++++++++++ scripts/ubuntu/change-amd-driver/rollback.sh | 54 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100755 scripts/ubuntu/change-amd-driver/change.sh create mode 100755 scripts/ubuntu/change-amd-driver/rollback.sh diff --git a/scripts/ubuntu/change-amd-driver/change.sh b/scripts/ubuntu/change-amd-driver/change.sh new file mode 100755 index 0000000..7f3ba80 --- /dev/null +++ b/scripts/ubuntu/change-amd-driver/change.sh @@ -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'" diff --git a/scripts/ubuntu/change-amd-driver/rollback.sh b/scripts/ubuntu/change-amd-driver/rollback.sh new file mode 100755 index 0000000..5da532d --- /dev/null +++ b/scripts/ubuntu/change-amd-driver/rollback.sh @@ -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'."