
Недавно я купил Thinkpad T490 с процессором Intel i7 и видеокартой NVIDIA GeForce MX250 (и интегрированной Intel HD-Graphics 620) и установил Ubuntu 18.04 LTS. После того, как я столкнулся с некоторыми графическими ошибками, я хотел проверить, все ли драйверы обновлены.
Первое, что я заметил, это то, что на вкладке «Дополнительные драйверы» software-properties-gtk
Intel указан как «Intel Corporation: Неизвестно — это устройство не работает», а моя видеокарта Nvidia указана как «NVIDIA Corporation: Неизвестно» (см.изображение).
Далее я попытался открыть «Настройки сервера NVIDIA X», но окно почти пустое (изображение). Когда я открываю его из консоли через nvidia-settings
, я получаю следующий вывод:
# nvidia-settings
ERROR: Error querying enabled displays on GPU 0 (Missing Extension).
ERROR: Error querying connected displays on GPU 0 (Missing Extension).
** Message: 09:38:37.446: PRIME: Requires offloading
** Message: 09:38:37.446: PRIME: is it supported? yes
ERROR: nvidia-settings could not find the registry key file. This
file should have been installed along with this driver at
/usr/share/nvidia/nvidia-application-profiles-key-documentati
on. The application profiles will continue to work, but
values cannot be prepopulated or validated, and will not be
listed in the help text. Please see the README for possible
values and descriptions.
Я пробовал отключить безопасную загрузку, так как это, похоже, исправило похожие проблемы у других людей, но это ничего не изменило. Я также пробовал установить новейшие драйверы NVIDIA, как было указано во многих сообщениях с похожими проблемами, но ничего не изменилось.
Обновлять: Я удалил все драйверы sudo apt purge nvidia*
и переустановил последнюю версию драйвера (440), как указано вэтотthread. Ничего не изменилось, за исключением того, что nvidia-settings
теперь есть только опция "prime-profiles", так что даже меньше, чем раньше (см.изображение).
Некоторые выводы, которые могут быть актуальны:
# lshw -c display
*-display
description: VGA compatible controller
product: UHD Graphics 620 (Whiskey Lake)
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:147 memory:dc000000-dcffffff memory:70000000-7fffffff ioport:3000(size=64) memory:c0000-dffff
*-display
description: 3D controller
product: GP108M [GeForce MX250]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:3c:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=nvidia latency=0
resources: irq:156 memory:db000000-dbffffff memory:80000000-8fffffff memory:90000000-91ffffff ioport:2000(size=128)
# lspci -v
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (Whiskey Lake) (rev 02) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 2278
Flags: bus master, fast devsel, latency 0, IRQ 147
Memory at dc000000 (64-bit, non-prefetchable) [size=16M]
Memory at 70000000 (64-bit, prefetchable) [size=256M]
I/O ports at 3000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Kernel driver in use: i915
Kernel modules: i915
...
3c:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX250] (rev a1)
Subsystem: Lenovo Device 2278
Flags: bus master, fast devsel, latency 0, IRQ 156
Memory at db000000 (32-bit, non-prefetchable) [size=16M]
Memory at 80000000 (64-bit, prefetchable) [size=256M]
Memory at 90000000 (64-bit, prefetchable) [size=32M]
I/O ports at 2000 [size=128]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance Reporting
Capabilities: [258] L1 PM Substates
Capabilities: [128] Power Budgeting <?>
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Capabilities: [900] #19
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
решение1
У меня всегда были проблемы при установке драйверов NVIDIA с ppa:graphics-drivers
, я бы посоветовал загрузить драйверы сСайт NVIDIA.
Установка (некоторые команды требуют «sudo»)
После загрузки нужного драйвера для вашей карты:
- Сделайте файл запуска доступным для выполнения (через меню свойств или через командную строку)
- команда:
chmod u+x <file>
добавить бит выполнения для текущего пользователя в указанный файл
- команда:
ПРИМЕЧАНИЕ: эту часть вам придется выполнить только в CLI (визуализации нет, предлагаю открыть ее на телефоне, чтобы следить за ходом событий; вы можете нажать ctrl
+ alt
+, F1
вам может понадобиться использовать F2, F3, F4 и т. д.)
- Остановите ваш дисплейный менеджер (
gdm
по умолчанию или любой другой, который у вас есть)- команда:
service gdm stop
- команда:
- Измените уровень выполнения (кажется, это больше не требуется, но на всякий случай)
- команда:
init 3
- команда:
- Перейдите в каталог установочного файла NVIDIA.
- команда:
cd ~/Downloads/
- команда:
- Запустить файл run
- команда:
./NVIDIA...
(должно быть возможно автодополнение клавишей Tab, в противном случае используйтеls
для проверки имени) - Если сбой произошел из-за версии gcc, вы можете попытаться игнорировать версию gcc с помощью следующей команды:
./NVIDIA... --no-cc-version-check
- Если это не сработает, либо понизьте версию gcc до требуемой, либо обновите версию ядра (лучше попробуйте понизить версию gcc или временно установить gcc по умолчанию на более старую версию)
- например, если вам нужен gcc 5.x (не забудьте отменить это после этого, первая команда — проверить текущую ссылку на /usr/bin/gcc)
- команда:
ls -l /usr/bin/gcc
unlink /usr/bin/gcc
sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc
- Следуйте инструкциям (у меня dkms сейчас не работает, 32-битные библиотеки — на ваше усмотрение и т. д.) (выбор по умолчанию, если не удалось установить)
- Перезагрузить
- команда:
reboot
- команда:
Проверяем, удалось ли это сделать
Обычно я провожу тестирование, используя любой из следующих методов или все из них:
glxinfo|egrep "OpenGL vendor|OpenGL renderer*"
nvidia-settings
nvidia-smi
Нижний колонтитул
Я вижу, что вы уже достаточно хорошо знакомы с Ubuntu, и вам не нужны некоторые из указанных команд. Я делаю это для тех, кто может наткнуться на это, надеюсь, это поможет и им.
Дополнительно
Полезное дополнение: файл запуска имеет много флагов, чтобы перечислить их, вы можете использовать -A
flag следующим образом:./NVIDIA... -A