Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Универсальная установка драйверов Intel, AMD, NVIDIA и мультимедиа в Linux

Linux и DevOps

Если после установки Linux мультимедиа не работает на полную мощность, а аппаратное ускорение (VAAPI, Vulkan, OpenGL) отключено, этот скрипт решит проблему. Он сам определяет видеокарту, проверяет версии ядра и Mesa, ставит нужные драйверы и мультимедиа пакеты, а затем показывает итоговую проверку.

Подходит для **Mint, Ubuntu, Debian** и производных. Скрипт безопасен — всегда спрашивает подтверждение перед установкой и учитывает различия в пакетах между версиями дистрибутива.

Быстрый запуск без скачивания

Можно запустить скрипт прямо из интернета одной командой:

curl -sSL https://your-domain.com/universal-drivers.sh | bash

Это удобно на новых системах: не нужно вручную сохранять файл — просто вставляете команду и работаете в интерактивном меню.

Пошаговый алгоритм вручную

1. Определить железо (GPU)

lspci | grep -E "VGA|3D"
  • Intel → Mesa + Intel Media Driver
  • AMD → amdgpu + Mesa
  • NVIDIA → Nouveau или проприетарный драйвер

2. Проверить ядро и Mesa

uname -r
glxinfo | grep "OpenGL version"
  • Новые Intel/AMD требуют ядро **6.5+** и Mesa **23/24+**.
  • Если старые — обновить через PPA (Ubuntu/Mint) или backports (Debian).

3. Проверить мультимедиа (VAAPI/Vulkan)

vainfo | grep "VAEntrypoint"
vulkaninfo | head

4. Установить драйверы по GPU

Intel

sudo apt install mesa-vulkan-drivers mesa-va-drivers intel-media-va-driver-non-free intel-opencl-icd

AMD

sudo apt install mesa-vulkan-drivers mesa-va-drivers mesa-vdpau-drivers

NVIDIA

sudo apt install nvidia-driver nvidia-vaapi-driver

5. Общие пакеты мультимедиа и диагностики

sudo apt install vainfo mesa-utils vulkan-tools clinfo

В Ubuntu 22.04 пакет называется `libva-utils`, а в 24.04 — `vainfo`. Скрипт сам определяет, какой пакет ставить.

6. Звук, питание, сенсоры

sudo apt install pipewire pipewire-audio-client-libraries wireplumber
sudo apt install tlp tlp-rdw thermald
sudo systemctl enable tlp thermald
sudo apt install libinput-tools touchegg iio-sensor-proxy

7. Обновление прошивок

sudo apt install fwupd
sudo fwupdmgr refresh
sudo fwupdmgr update

Готовый интерактивный скрипт

Скрипт автоматизирует процесс: определяет GPU, проверяет версии ядра/Mesa, ставит пакеты и проверяет мультимедиа (VAAPI, Vulkan, OpenGL), а в конце выводит общий статус: всё ок или частично работает.

#!/usr/bin/env bash

#!/usr/bin/env bash

set -e

GREEN="\\e[32m"
YELLOW="\\e[33m"
RED="\\e[31m"
RESET="\\e[0m"

msg() { echo -e "${GREEN}[INFO]${RESET} $1"; }
warn() { echo -e "${YELLOW}[WARN]${RESET} $1"; }
error() { echo -e "${RED}[ERR]${RESET} $1"; }

pause() { read -p "Нажмите Enter для продолжения..."; }

# Определение пакета VAAPI (vainfo или libva-utils)
detect_vaapi_pkg() {
    if apt-cache show libva-utils &>/dev/null; then
        echo "libva-utils"
    else
        echo "vainfo"
    fi
}

# Определение GPU
check_gpu() {
    GPU=$(lspci | grep -E "VGA|3D")
    echo "$GPU"
    if echo "$GPU" | grep -qi "Intel"; then DRIVER="intel"
    elif echo "$GPU" | grep -qi "AMD"; then DRIVER="amd"
    elif echo "$GPU" | grep -qi "NVIDIA"; then DRIVER="nvidia"
    else error "GPU не определен"; exit 1; fi
}

# Проверка версии ядра и Mesa
check_versions() {
    KERNEL_RAW=$(uname -r | cut -d'-' -f1)
    KERNEL=$(echo "$KERNEL_RAW" | awk -F. '{print $1 "." $2}')
    MESA=$(glxinfo 2>/dev/null | grep "OpenGL version" || echo "Mesa not found")

    msg "Версия ядра: $KERNEL_RAW"
    msg "Mesa: $MESA"

    if (( $(echo "$KERNEL < 6.5" | bc -l) )); then
        warn "Ядро ниже 6.5 — может потребоваться обновление."
    fi
}

# Установка общих мультимедиа пакетов
install_common() {
    msg "Установка мультимедиа пакетов..."
    VAAPI_PKG=$(detect_vaapi_pkg)
    sudo apt update
    sudo apt install -y $VAAPI_PKG mesa-utils vulkan-tools clinfo fwupd pipewire pipewire-audio-client-libraries wireplumber tlp tlp-rdw thermald libinput-tools touchegg iio-sensor-proxy
}

# Установка драйверов по типу GPU
install_drivers() {
    case $DRIVER in
        intel) sudo apt install -y mesa-vulkan-drivers mesa-va-drivers intel-media-va-driver-non-free intel-opencl-icd ;;
        amd) sudo apt install -y mesa-vulkan-drivers mesa-va-drivers mesa-vdpau-drivers ;;
        nvidia) sudo apt install -y nvidia-driver nvidia-vaapi-driver ;;
    esac
}

# Обновление прошивок
update_fw() {
    sudo fwupdmgr refresh
    sudo fwupdmgr update
}

# Проверка мультимедиа с итоговым статусом
check_media() {
    for cmd in vainfo vulkaninfo glxinfo; do
        if ! command -v $cmd &>/dev/null; then
            warn "Утилита $cmd не установлена."
            read -p "Установить недостающие пакеты для проверки мультимедиа? (y/N): " INSTALL
            if [[ "$INSTALL" == "y" ]]; then
                VAAPI_PKG=$(detect_vaapi_pkg)
                sudo apt install -y $VAAPI_PKG mesa-utils vulkan-tools
            else
                warn "Проверка мультимедиа пропущена."
                return
            fi
        fi
    done

    VAAPI_OK=false
    VULKAN_OK=false
    OGL_OK=false

    msg "Проверка VAAPI:"
    if vainfo | grep -q "VAEntrypoint"; then
        VAAPI_OK=true
    else
        warn "VAAPI не активен"
    fi

    msg "Проверка Vulkan:"
    if vulkaninfo | grep -q "Vulkan Instance Version"; then
        VULKAN_OK=true
    else
        warn "Vulkan не активен"
    fi

    msg "Проверка OpenGL:"
    if glxinfo | grep -q "OpenGL version"; then
        OGL_OK=true
    else
        warn "OpenGL не активен"
    fi

    if $VAAPI_OK && $VULKAN_OK && $OGL_OK; then
        echo -e "${GREEN}[OK] Аппаратное ускорение работает корректно.${RESET}"
    else
        echo -e "${YELLOW}[WARN] Аппаратное ускорение работает частично или отсутствует.${RESET}"
    fi
}

# Главное меню
menu() {
    clear
    echo -e "${GREEN}=== Универсальная установка драйверов Linux ===${RESET}"
    echo "1) Проверить систему (GPU, ядро, Mesa)"
    echo "2) Установить драйверы и мультимедиа пакеты"
    echo "3) Обновить прошивки"
    echo "4) Проверить мультимедиа (VAAPI/Vulkan/OpenGL)"
    echo "0) Выйти"
    read -p "Выберите действие: " CHOICE
    case $CHOICE in
        1) check_gpu; check_versions; pause ;;
        2) check_gpu; read -p "Установить драйверы для $DRIVER? (y/N): " CONFIRM; [[ "$CONFIRM" == "y" ]] && install_common && install_drivers && sudo systemctl enable tlp thermald; pause ;;
        3) update_fw; pause ;;
        4) check_media; pause ;;
        0) exit 0 ;;
        *) warn "Неверный выбор." ;;
    esac
}

while true; do menu; done

Использование скрипта

  1. Сохраните код в файл universal-drivers.sh или запустите через curl | bash.
  2. Сделайте файл исполняемым (если сохранили):
chmod +x universal-drivers.sh
  1. Запустите:
./universal-drivers.sh

После проверки скрипт выведет итог: зелёный [OK] (всё работает) или жёлтый [WARN] (частично работает).

Оцените статью
ctrllife.ru
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x