Вопрос или проблема
Я пытаюсь запустить файл NVIDIA-Linux-x86_64-470.256.02.run под Ubuntu 24.10 в терминале tty (с закрытыми всеми графическими терминалами), чтобы установить лучший драйвер для NVIDIA QUADRO K600 (где в настоящее время DVI работает отлично на карте, но DP Display Port вообще не работает). Странно, но нет используемого драйвера ядра:
stephen@stephen-All-Series:~$ lspci
01:00.0 VGA совместимый контроллер: NVIDIA Corporation GK107GL [Quadro K600] (rev a1)
stephen@stephen-All-Series:~$ lspci -v -s 01:00.0
01:00.0 VGA совместимый контроллер: NVIDIA Corporation GK107GL [Quadro K600] (rev a1) (prog-if 00 [VGA контроллер])
Подсистема: NVIDIA Corporation Устройство 094b
Флаги: мастер шины, быстрый devsel, задержка 0, IRQ 11
Память по адресу f6000000 (32-бит, не предвыборка) [размер=16M]
Память по адресу e0000000 (64-бит, предвыборка) [размер=256M]
Память по адресу f0000000 (64-бит, предвыборка) [размер=32M]
Порты I/O по адресу e000 [размер=128]
Расширенная ROM по адресу 000c0000 [отключена] [размер=128K]
Возможности: <доступ запрещен>
Ядерные модули: nvidiafb, nouveau
Есть статья Как выбрать ядро для использования с GPU, которая предполагает, что ядро может быть выбрано. Однако в этой статье Как отвязать GPU /sys/bus/pci есть проблема с тем, что папка “/sys/bus/pci/driver/nvidia/” не найдена, и действительно только каталог “/sys/bus/pci/drivers” существует.
Конфигурация моего компьютера:
# Отчет о деталях системы
---
## Данные отчета
- **Дата генерации:** 2024-12-26 12:20:38
## Информация о железе:
- **Модель оборудования:** ASUS All Series
- **Память:** 4.0 GiB
- **Процессор:** Intel® Core™ i3-4170 × 4
- **Графика:** Intel® HD Graphics 4400 (HSW GT2)
- **Ёмкость диска:** 1.0 TB
## Информация о программном обеспечении:
- **Версия прошивки:** 1103
- **Название ОС:** Ubuntu 24.10
- **Сборка ОС:** (null)
- **Тип ОС:** 64-бит
- **Версия GNOME:** 47
- **Система окон:** Wayland
- **Версия ядра:** Linux 6.11.0-13-generic
Я вышел из всех графических дисплеев Knome, чтобы попасть в окна входа или терминалы, которые можно было использовать с Ctrl-Alt-F1, Ctrl-Alt-F2, установил gcc и make, а затем смог добраться до стадии запуска файла “NVIDIA-Linux-x86_64-470.256.02.run” из терминала как root. Результирующий файл журнала очень длинный, поэтому я показываю только первые и последние записи. Сам файл имеет размер 1.56 MB, так что вот только начало и конец:
nvidia-installer log file '/var/log/nvidia-installer.log'
время создания: Чт Дек 26 12:13:00 2024
версия установщика: 470.256.02
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
команда установщика nvidia-installer:
./nvidia-installer
Используется: интерфейс пользователя nvidia-installer ncurses v6
-> Обнаружено 4 активных ЦП; установка уровня параллелизма на 4.
-> Установка драйвера NVIDIA версии 470.256.02.
-> Обнаружен альтернативный метод установки драйвера NVIDIA. (Это обычно пакет, предоставляемый вашим дистрибьютором.) Драйвер, установленные этим методом, могут лучше интегрироваться с вашей системой, чем драйвер, установленный nvidia-installer.
Пожалуйста, ознакомьтесь с сообщением, предоставленным поддержкой этого альтернативного метода установки и решите, как действовать:
Драйвер NVIDIA, предоставленный Ubuntu, может быть установлен, запустив приложение "Программное обеспечение и обновления" и выбрав драйвер NVIDIA во вкладке "Дополнительные драйверы".
(Ответ: Продолжить установку)
-> Выполнение проверки CC на корректность с CC="/usr/bin/cc".
-> Проверка CC.
-> Путь исходит из ядра: '/lib/modules/6.11.0-13-generic/build'
-> Путь вывода ядра: '/lib/modules/6.11.0-13-generic/build'
-> Выполнение проверки компилятора.
-> Выполнение проверки Dom0.
-> Выполнение проверки Xen.
-> Выполнение проверки PREEMPT_RT.
-> Выполнение проверки vgpu_kvm.
-> Очистка каталога сборки модуля ядра.
выполнение: 'cd ./kernel; /usr/bin/make -k -j4 clean NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.11.0-13-generic/build" SYSOUT="/lib/modules/6.11.0-13-generic/build"'...
rm -f -r conftest
make[1]: Вход в каталог '/usr/src/linux-headers-6.11.0-13-generic'
make[1]: Выход из каталога '/usr/src/linux-headers-6.11.0-13-generic'
-> Сборка модулей ядра
выполнение: 'cd ./kernel; /usr/bin/make -k -j4 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.11.0-13-generic/build" SYSOUT="/lib/modules/6.11.0-13-generic/build"'...
make[1]: Вход в каталог '/usr/src/linux-headers-6.11.0-13-generic'
предупреждение: компилятор отличается от использованного для сборки ядра
Ядро было собрано: x86_64-linux-gnu-gcc-14 (Ubuntu 14.2.0-4ubuntu2) 14.2.0
Вы используете: cc (Ubuntu 14.2.0-4ubuntu2) 14.2.0
SYMLINK /tmp/selfgz6178/NVIDIA-Linux-x86_64-470.256.02/kernel/nvidia/nv-kernel.o
CONFTEST: hash__remap_4k_pfn
...
…
| ^
/tmp/selfgz6178/NVIDIA-Linux-x86_64-470.256.02/kernel/common/inc/nv-linux.h: В функции 'nv_phys_to_dma':
/tmp/selfgz6178/NVIDIA-Linux-x86_64-470.256.02/kernel/common/inc/nv-linux.h:703:12: ошибка: неявное объявление функции 'phys_to_dma'; вы имели в виду 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
703 | return phys_to_dma(dev, pa);
| ^~~~~~~~~~~
| nv_phys_to_dma
...
Что известно о ресурсах разработчиков NVIDIA, чтобы помочь это исправить? Или есть драйвер novidea?
Ответ или решение
Проблемы с компиляцией NVIDIA-Linux-x86_64-470.256.02.run под Ubuntu 24.10
Введение
При установке драйвера NVIDIA версии 470.256.02 на систему Ubuntu 24.10 могут возникнуть сложности. В данном руководстве мы проанализируем ситуацию, касающуюся драйвера для видеокарты NVIDIA QUADRO K600, и обеспечим решение проблем, возникающих в процессе установки.
Описание проблемы
Вы пытаетесь установить драйвер, чтобы улучшить поддержку вывода через DisplayPort (DP), в то время как HDMI работает без сбоев. Согласно выводам команд lspci
, в системе не загружены никакие драйверы, кроме nvidiafb
и nouveau
. Лог установки показывает, что компиляция модуля ядра не удалась с ошибками в коде. Одна из критических ошибок связана с несуществующими функциями, что может указывать на несоответствие между версией драйвера и используемым ядром.
Анализ логов установки
Из приведенного вами лога видно, что присутствует ошибка компиляции:
#error wait_on_bit_lock() conftest failed!
Это указывает на то, что тесты конфигурации завершились неудачно. Также наблюдается много ошибок, связанных с неявной декларацией функций, таких как phys_to_dma
и dma_is_direct
, что может означать, что драйвер не совместим с установленной версией вашего ядра.
Шаги по устранению проблемы
-
Проверка совместимости версий
- Убедитесь, что используемая версия драйвера NVIDIA совместима с текущей версией ядра. Вы можете обратиться к официальному сайту NVIDIA для проверки совместимости версий драйвера и ядра.
-
Удаление предыдущих драйверов
- Полностью удалите все предыдущие версии драйверов NVIDIA и Nouveau. Это можно сделать с помощью следующих команд:
sudo apt-get purge nvidia* sudo apt-get purge xserver-xorg-video-nouveau
- Полностью удалите все предыдущие версии драйверов NVIDIA и Nouveau. Это можно сделать с помощью следующих команд:
-
Установка необходимых библиотек и заголовков
- Убедитесь, что в системе установлены необходимые библиотеки и заголовки для сборки модуля. Установите их с помощью команды:
sudo apt-get install build-essential linux-headers-$(uname -r)
- Убедитесь, что в системе установлены необходимые библиотеки и заголовки для сборки модуля. Установите их с помощью команды:
-
Переход на Nouveau
- Чтобы быть уверенным, что Nouveau не мешает, временно переключитесь на него:
sudo modprobe nouveau
- Чтобы быть уверенным, что Nouveau не мешает, временно переключитесь на него:
-
Запуск драйвера NVIDIA
- Попробуйте снова запустить установку драйвера. Желательно использовать пакетный менеджер Ubuntu:
sudo ubuntu-drivers autoinstall
- Это установит драйвер, который лучше всего подходит для вашей системы.
- Попробуйте снова запустить установку драйвера. Желательно использовать пакетный менеджер Ubuntu:
-
Настройка конфигурации Xorg
- Возможно, вам потребуется вручную настроить файл конфигурации
/etc/X11/xorg.conf
для использования драйвера NVIDIA. Создайте соответствующий файл конфигурации, если он отсутствует, и добавьте необходимые строки, чтобы указать, что используется драйвер NVIDIA.
- Возможно, вам потребуется вручную настроить файл конфигурации
-
Перезагрузка системы
- После выполнения всех вышеперечисленных действий перезагрузите систему и проверьте работоспособность видеокарты:
nvidia-smi
- После выполнения всех вышеперечисленных действий перезагрузите систему и проверьте работоспособность видеокарты:
-
Решение проблем с DisplayPort
- Если проблема с DisplayPort по-прежнему присутствует, попробуйте использовать другие подходы, такие как подключение через разные порты и проверка работы с другими устройствами.
Альтернативные варианты
Если все вышеперечисленные шаги не помогли, вы можете рассмотреть возможность использования драйвера Nouveau в качестве временной меры. Ознакомьтесь с документацией и возможностями этого драйвера.
Заключение
Проблемы с установкой драйвера NVIDIA под Ubuntu могут быть вызваны несовместимостью версий. Следуя шагам, описанным в данном руководстве, вы сможете устранить возникшие ошибки и успешно установить драйвер NVIDIA для вашей видеокарты QUADRO K600. 如果您对 NVIDIA 驱动程序的兼容性仍有疑问,请访问 NVIDIA 官方网站或获取社区支持。