彻底解决安装了显卡驱动后,Ubuntu开机无法进入图形化界面、黑屏、左上角光标闪烁问题

众所周知,Linux 系统的的 GUI 和 NVIDIA 显卡相处得并不是很愉快,驱动安装起来会出各种问题,非常折腾。很多同学在配备 NVIDIA 显卡的 Ubuntu 物理机上安装完显卡驱动后,重启电脑发现进不去图形化界面了。具体表现为系统黑屏,屏幕左上角一直有光标在不断闪烁,出现这种情况的原因很多,本质基本上都是无法载入图形化界面的问题。

由于大多数电脑的 CPU 都配备了核显,笔者介绍一种对于配备 NVIDIA 独显和 intel 核显电脑的解决方法,用 intel 核显来做图形化界面的显示设备,NVIDIA 独显仅仅当作计算(CUDA)设备,这样就绕过了 NVIDIA 显卡驱动带来的一系列和 GNOME、LightDM 等桌面环境不适配、不兼容的问题。毕竟我们只要能用 CUDA 就行,又不会用显卡来打游戏。

第一步 强制关机重启电脑后进入恢复模式或者按住 Ctrl + Alt + F2 进入控制台(tty)

第二步 查看电脑所有的显卡,检查一下是否带有 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,需要记住,后面会用到。

再次检查一下 NVIDIA 显卡驱动是否安装成功,本篇教程只针对 NVIDIA 驱动安装成功但无法用于图形化界面显示的情况

nvidia-smi

检查一下 CUDA 是否可用

nvcc -V
>>> import torch
>>> torch.cuda.is_available()
True

第三步 修改桌面系统 Xserver 的配置文件 /etc/X11xorg.conf

sudo vim /etc/X11xorg.conf

在文本末尾添加 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 命令获取。

接着在屏幕配置段中修改图形设备为 intel 核显,将其中的 Device 属性的值设置为 intel 核显的设备的标识符。

Section "Screen"
    Identifier     "Screen0"
    Device         "Device1"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

第四步 保存并退出,重启电脑

sudo reboot

第五步 成功进入桌面,正常情况下没什么问题。如果出现画面撕裂,则需要再次修改桌面系统 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"
EndSection

TripleBufferTearFree 用于开启三倍缓冲和启用 TearFree 功能,用于减少画面撕裂现象,DRI 选项用于关闭基层直接渲染功能,以解决某些与 DRI 相关的兼容性问题。

配置完成后重启 LightDM 服务即可

sudo service lightdm restart

猜你喜欢

转载自blog.csdn.net/iBenzene/article/details/130818216