安装完显卡驱动重启电脑会卡在下图位置,进入不了图形界面
众所周知,Linux 系统的的 GUI 和 NVIDIA 显卡相处得并不是很愉快,驱动安装起来会出各种问题,非常折腾。很多同学在配备 NVIDIA 显卡的 Ubuntu 物理机上安装完显卡驱动后,重启电脑发现进不去图形化界面了。具体表现为系统黑屏,屏幕左上角一直有光标在不断闪烁,出现这种情况的原因很多,本质基本上都是无法载入图形化界面的问题。
由于大多数电脑的 CPU 都配备了核显,笔者介绍一种对于配备 NVIDIA 独显和 intel 核显电脑的解决方法,用 intel 核显来做图形化界面的显示设备,NVIDIA 独显仅仅当作计算(CUDA)设备,这样就绕过了 NVIDIA 显卡驱动带来的一系列和 GNOME、LightDM 等桌面环境不适配、不兼容的问题。毕竟我们只要能用 CUDA 就行,又不会用显卡来打游戏。
解决步骤:
1. 按住 Ctrl
+ Alt
+ F2
进入控制台(tty)
2. 查看电脑所有的显卡,检查一下是否带有 intel 核显
lspci | grep VGA
#根据输出信息可以看到电脑中确实配备了 intel 的集成显卡
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
#其中每行输出内容的开始是一串编号,这是这个设备的 BusID,需要记住,后面会用到。
3. 再次检查一下 NVIDIA 显卡驱动是否安装成功,本篇教程只针对 NVIDIA 驱动安装成功但无法用于图形化界面显示的情况
nvidia-smi
4. 检查一下 CUDA 是否可用
nvcc -V
5. 打开桌面系统的配置文件 /etc/X11/xorg.conf
sudo vim /etc/X11xorg.conf
# 没有xorg.conf文件,使用 sudo nvidia-xconfig 去生成即可
6. 在文本末尾添加 intel 核显驱动的配置信息
Section "Device"
Identifier "Device1"
Driver "intel"
VendorName "Intel Corporation"
BusID "PCI:0:2:0"
EndSection其中,Section 用于指定一个设备配置段的开始,字段名为 Device 代表一个图形设备。
Identifier 为设备的标识符,可以任意取,别和已有的重名就行。
Driver 用于告诉 Xserver 从哪里加载设备的驱动程序,VendorName 指示设备的制造厂商。
BusID 指示设备的BusID,由前文所述的 lspci 命令获取。
7. 接着在屏幕配置段中修改图形设备为 intel 核显,将其中的 Device 属性的值设置为 intel 核显的设备的标识符。
Section "Screen"
Identifier "Screen0"
Device "Device1"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
8. 保存并退出,重启电脑
sudo reboot
9. 成功进入桌面,正常情况下没什么问题。如果出现画面撕裂,则需要再次修改桌面系统 Xserver 的配置文件的 intel 核显的配置段,添加三个选项
Section "Device"
Identifier "Device1"
Driver "intel"
VendorName "Intel Corporation"
Option "TripleBuffer" "true"
Option "TearFree" "true"
Option "DRI" "false"
BusID "PCI:0:2:0"
EndSectionTripleBuffer 和 TearFree 用于开启三倍缓冲和启用 TearFree 功能,用于减少画面撕裂现象,DRI 选项用于关闭基层直接渲染功能,以解决某些与 DRI 相关的兼容性问题。
配置完成后重启 LightDM 服务即可:sudo service lightdm restart