我最近买了一台 Thinkpad T490,它配备了 Intel i7 CPU 和 NVIDIA GeForce MX250 显卡(以及集成的 Intel HD-Graphics 620),并安装了 Ubuntu 18.04 LTS。遇到一些图形错误后,我想检查所有驱动程序是否都是最新的。
我注意到的第一件事是,在“附加驱动程序”选项卡中software-properties-gtk
,英特尔被列为“英特尔公司:未知 - 此设备不工作”,而我的 Nvidia 显卡被列为“NVIDIA 公司:未知”(见图像)。
接下来我尝试打开“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)这线程。没有任何变化,只是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/
- 命令:
- 运行运行文件
- 命令:(
./NVIDIA...
应该可以使用制表符完成,否则用来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
像这样使用标志:./NVIDIA... -A