Если система не отображает разрешение экрана выше стандартного 1024x768 или игры выдают ошибку "GLX not found", значит драйвер видеокарты в Ubuntu не загружен или работает в базовом режиме. Для адаптеров NVIDIA это часто означает использование открытого драйвера nouveau вместо проприетарного, что критично влияет на производительность в 3D-приложениях. Чтобы понять, какой именно модуль ядра активен, необходимо сразу обратиться к системным утилитам, так как визуальное отсутствие настроек не всегда указывает на отсутствие самого ПО.
В операционной системе Linux архитектура работы графических подсистем отличается от привычных Windows, где установка драйвера часто заменяет все предыдущие версии. Здесь могут сосуществовать несколько модулей, но активным является только один, выбранный загрузчиком. Понимание того, как система определяет устройство и какой стек драйверов сейчас обслуживает видеочип, позволяет избежать конфликтов при обновлении ядра или попытке установки новых библиотек.
Использование утилиты lspci для первичной диагностики
Самый быстрый способ узнать, видит ли система ваше графическое оборудование, — это команда lspci. Она выводит список всех подключенных к шине PCI устройств, включая видеоадаптеры, сетевые карты и контроллеры. Вывод этой команды покажет модель устройства, но не всегда сразу скажет, какой именно драйвер используется для его работы, если не использовать специальные флаги.
Для получения детальной информации о привязанном драйвере необходимо добавить ключ -k. Это покажет не только устройство, но и строку "Kernel driver in use", которая прямо указывает на активный модуль. Если вместо названия драйвера вы видите пустоту или строку "Kernel modules: nouveau", это сигнал о том, что NVIDIA карта работает в режиме совместимости.
Вот пример команды для вывода только информации о видеокарте:
lspci -k | grep -A 2 -i "VGA"
В выводе вы должны увидеть строку Kernel driver in use: nvidia для закрытых драйверов или nouveau для открытых. Если строка отсутствует, драйвер не загружен. Это критически важно знать перед попыткой установки проприетарного ПО от производителя, так как конфликт версий может привести к "черному экрану" при загрузке.
⚠️ Внимание: Не путайте строку "Kernel modules" (доступные модули) с "Kernel driver in use" (активный модуль). Система может иметь установленные драйверы, но не загружать их из-за конфликта с другими компонентами.
Иногда вывод команды может быть загроможден информацией о мультимедийных контроллерах. Используйте фильтр, чтобы сузить поиск именно до графических адаптеров. Это поможет вам быстрее сориентироваться в списке, особенно если у вас установлена система с гибридной графикой, где есть как встроенное, так и дискретное решение.
Анализ конфигурации через lshw и lsmod
Утилита lshw (List Hardware) предоставляет еще более подробную информацию о конфигурации оборудования, включая версии драйверов и конфигурационные ресурсы. Для получения данных о видеокарте требуется запустить команду с правами суперпользователя, используя sudo. Этот инструмент отображает не только имя модуля, но и его класс, а также статус работы.
sudo lshw -class display
В результате вы увидите блок, описывающий видеоконтроллер. Обратите внимание на поле "configuration", где указан параметр driver=.... Это самое точное подтверждение того, какой именно программный модуль обслуживает устройство в данный момент. Если драйвер не определен, вы увидите сообщение о том, что драйвер отсутствует.
Для проверки загрузки модулей ядра можно воспользоваться командой lsmod. Она выводит список всех загруженных модулей. Поиск по имени драйвера (например, nvidia, nouveau или i915 для Intel) покажет, активен ли он в памяти. Если модуль есть в списке, значит, он успешно загружен и работает.
Комбинация этих двух утилит позволяет провести полную диагностику: lspci показывает, что устройство есть физически, lshw говорит, какой драйвер назначен, а lsmod подтверждает, что он активен в памяти. Отсутствие любого из этих звеньев указывает на проблему в цепочке загрузки графической подсистемы.
Детали работы с модулями ядра
Модули ядра Linux могут иметь зависимости. Например, модуль nvidia может требовать наличия модулей nvidia_uvm или nvidia_modeset. Если один из них не загружен, основной драйвер может не работать корректно, даже если он указан в lshw.
Проверка графического интерфейса в Настройках системы
Для пользователей, не желающих работать с терминалом, в Ubuntu существует встроенный графический инструмент "Дополнительные драйверы" (Additional Drivers). Этот утилита автоматически сканирует систему на наличие оборудования, требующего проприетарных драйверов, и показывает их статус. Открыть её можно через меню поиска, введя "Additional Drivers" или "Драйверы".
В открывшемся окне вы увидите список доступных устройств. Если драйвер установлен, рядом с устройством будет написано "в использовании" или "используется". Если выбран вариант "Использовать драйвер из репозитория Ubuntu (рекомендуется)", система использует открытую версию. Если выбран вариант с номером версии от NVIDIA (например, "nvidia-driver-535"), значит, установлен проприетарный драйвер.
Интерфейс также позволяет переключаться между версиями драйверов в реальном времени. Это удобно, если текущий драйвер вызывает нестабильность работы. Однако, перед сменой версии убедитесь, что у вас есть доступ к консоли, так как сбой драйвера может заблокировать графическую сессию.
Инструмент nvidia-smi для владельцев карт NVIDIA
Для владельцев видеокарт NVIDIA существует специализированная утилита nvidia-smi (NVIDIA System Management Interface). Она доступна только при установке проприетарного драйвера. Если вы вводите эту команду и получаете ошибку "command not found", это однозначный признак того, что проприетарный драйвер не установлен, и система работает на открытом nouveau или не имеет драйвера вовсе.
При успешном запуске утилита выводит таблицу с подробной информацией: версия драйвера, версия CUDA, температура GPU, использование памяти и список запущенных процессов. Это самый надежный способ подтвердить работу именно проприетарного драйвера NVIDIA. Открытый драйвер nouveau не поддерживает эту команду и не может отобразить данные о состоянии карты.
nvidia-smi
Обратите внимание на строку "Driver Version" в верхней части вывода таблицы. Это точная версия драйвера, которая сейчас работает в системе. Если вы планируете обновлять или откатывать драйвер, сверяйте эту версию с той, которую предлагает установщик. Несоответствие может привести к конфликтам при обновлении ядра.
☑️ Чек-лист проверки NVIDIA драйвера
Сравнение открытых и проприетарных драйверов
В среде Ubuntu выбор между открытыми (nouveau) и проприетарными (nvidia) драйверами часто определяет стабильность работы системы. Открытые драйверы разрабатываются сообществом и встроены в ядро, что обеспечивает лучшую совместимость при обновлении системы без ручной настройки. Однако они часто не поддерживают современные функции ускорения графики и аппаратное кодирование видео.
Проприетарные драйверы от производителя обеспечивают максимальную производительность в играх и профессиональных приложениях. Они поддерживают технологии CUDA, Ray Tracing и DLSS, которые недоступны в открытых решениях. Однако установка таких драйверов требует отключения Secure Boot в BIOS и может создавать проблемы при обновлении ядра Linux, если драйвер не пересобран автоматически.
Ниже приведена таблица, сравнивающая ключевые характеристики обоих типов драйверов для наиболее распространенных сценариев использования:
| Характеристика | Открытый драйвер (nouveau) | Проприетарный драйвер (NVIDIA) |
|---|---|---|
| Производительность в играх | Низкая | Высокая |
| Поддержка CUDA | Отсутствует | Полная поддержка |
| Стабильность при обновлении | Высокая | Требует внимания |
| Аппаратное кодирование видео | Ограничено | Полная поддержка |
| Установка | Автоматическая (в ядре) | Ручная или через менеджер |
⚠️ Внимание: Переход с проприетарного драйвера на открытый (или наоборот) требует перезагрузки системы. После смены драйвера графическая сессия может не запуститься, если не настроены соответствующие разрешения.
Выбор типа драйвера должен зависеть от ваших задач. Если вы работаете с графикой, рендерингом или играете, проприетарный вариант неизбежен. Для офисной работы, программирования и веб-серфинга открытого драйвера часто достаточно, и он обеспечивает большую стабильность системы "из коробки".
Решение проблем с загрузкой драйвера
Если система видит видеокарту, но драйвер не загружается, проблема может заключаться в конфликте модулей ядра или блокировке Secure Boot. В этом случае необходимо проверить, не заблокирован ли доступ к модулю ядра системой безопасности. Отключение Secure Boot в BIOS/UEFI часто решает проблему с загрузкой сторонних драйверов, которые не подписаны ключами Canonical.
Иногда помогает принудительная загрузка модуля через конфигурацию GRUB. Для этого нужно отредактировать файл /etc/default/grub и добавить в параметр GRUB_CMDLINE_LINUX_DEFAULT опции, исключающие конфликт с драйвером по умолчанию. После изменения файла обязательно нужно выполнить команду sudo update-grub для применения настроек.
В некоторых случаях требуется полностью удалить старый драйвер перед установкой нового. Используйте команды sudo apt-get purge nvidia* для очистки системы от остатков предыдущих версий. Очистка репозитория и установка драйвера заново часто устраняет ошибки, связанные с поврежденными конфигурационными файлами.
Если после всех манипуляций драйвер все еще не загружается, проверьте логи системы. Файл /var/log/Xorg.0.log содержит подробную информацию о процессе запуска графического сервера и причинах сбоя загрузке модулей. Поиск по строкам "(EE)" (ошибки) поможет найти конкретную причину отказа драйвера.
Настройка GRUB для NVIDIA
Добавьте опцию "nomodeset" в параметры загрузки, чтобы временно отключить режим загрузки ядра, который может конфликтовать с драйвером при старте. Это позволит войти в систему и перенастроить драйвер.
FAQ: Частые вопросы по драйверам в Ubuntu
Как узнать версию установленного драйвера через терминал?
Для драйверов NVIDIA используйте команду nvidia-smi, где в первой строке будет указана версия. Для открытых драйверов или других карт используйте lspci -k | grep -A 2 VGA, где в строке "Kernel driver in use" будет имя модуля, а версию можно узнать через modinfo имя_драйвера.
Почему команда nvidia-smi не работает?
Это означает, что проприетарный драйвер NVIDIA не установлен или не загружен. Система, скорее всего, использует открытый драйвер nouveau или не имеет драйвера вовсе. Проверьте статус в "Дополнительных драйверах" или установите драйвер через терминал.
Можно ли использовать несколько драйверов одновременно?
Технически модули могут быть загружены, но активным для конкретного устройства может быть только один. Для гибридных систем (Optimus) используется система prime-select, которая переключает контекст между встроенным и дискретным адаптером, но физические драйверы работают по очереди.
Как проверить, какой драйвер используется для Intel графики?
Для встроенной графики Intel обычно используется драйвер i915 (для современных карт) или intel (для старых). Проверить это можно командой lspci -k | grep -A 2 VGA. В современных версиях Ubuntu также используется драйвер modeset как часть общей схемы загрузки.
Что делать, если драйвер не загружается после обновления ядра?
Обновите драйвер, чтобы он скомпилировался под новое ядро. Для NVIDIA это часто происходит автоматически при обновлении пакета. Если нет, выполните sudo ubuntu-drivers autoinstall. В крайнем случае, откатитесь на предыдущее ядро через меню загрузчика GRUB.