笔记80:在 Ubuntu 中安装显卡驱动

一、关于显卡的两个基本概念 -- 显卡驱动 / 显卡BIOS

(1)什么是BIOS

  • BIOS的作用:BIOS是电脑上电开机时加载进内存的第一个程序,CPU会执行他进行系统自检,然后通过其中的指令加载操作系统;例如主板BIOS,会先对各种电脑硬件进行自检,然后加载Windows操作系统;
  • 需要注意的是:你能够在主板BIOS中看到CPU信息、内存信息、南北桥信息、硬盘(SATA)信息、光驱(IDE)信息、集成显卡等几乎所有硬件信息,却看不到独立显卡的信息;这是因为独显并不受主板BIOS控制,显卡内部有自己的BIOS;显卡BIOS的作用和主板BIOS是一样的,只不过显卡BIOS只控制显卡,主板BIOS则负责控制其他硬件;

主板BIOS的作用:

(1)除了独立显卡外的各种硬件的自检;

(2)启动操作系统;

(3)使用操作系统作为平台(链接软件和硬件的平台)加载各个硬件的驱动;

(4)进而使电脑可通过操作系统上的驱动程序,来指挥各个硬件的工作;
显卡BIOS的作用:

(1)对独立显卡进行自检;

(2)启动仅针对于这个独立显卡的 "操作系统";

(3)使用该 "操作系统" 作为平台加载显卡驱动;

(4)进而使电脑可通过 "操作系统" 上的显卡驱动,来指挥独立显卡的工作;

(2)什么是显卡BIOS

  • 显卡BIOS是存储在显卡电路板上某个芯片里的程序,这个程序只提供了最基础的输入输出功能,他不依赖任何的操作系统,这个BIOS会在电脑刚上电,操作系统还没有启动的时候就被载入电脑内存,我们在进入操作系统之前就出现的桌面就是显卡BIOS在启动的时候提供的;
  • 既然有了BIOS可以提供显示功能,那为什么还要搞个驱动程序出来?因为这个BIOS只提供了最基础的显示功能,甚至不支持高分辨率,只能提供最基础的VGA标准(640*480)/SVGA标准(800*600);而且不连接显卡驱动,就无法使用很多针对独显开发的一系列强大的功能;

(3)那 nouveau 是啥?

  • nvidia 不仅给 windows 操作系统提供了独显驱动,也给 Linux 提供了独显驱动,但这个驱动都是闭源的;
  • 本来在开机的时候是使用显卡BIOS进行图形输出(这个时候操作系统都还没有启动,显卡驱动更没有启动了);
  • 但是一些 Linux 大佬觉得使用显卡BIOS(内核显示驱动)进行最开始的图形显示太垃圾了,所以想提前加载显卡驱动,即电脑上电之后不执行独显内部提供的显卡BIOS,而是直接使用第三方开发的BIOS直接启动显卡驱动,进行开机动画显示;但是 nvidia 拒绝了,所以大佬们对显卡驱动进行了逆向,做成了一个第三方驱动,命名为 nouveau;
  • nouveau 的作用为:开机阶段使用 nouveau 作为显卡驱动,开机后使用 nvidia 官方提供的驱动作为显卡驱动;
  • 但是毕竟是第三方开发的,和新版显卡的兼容性不是那么好,所以可能出现进入 Ubuntu 时黑屏,因此最保险的方法还是使用显卡BIOS作为开机时进行图形输出的工具最保险,毕竟显卡BIOS可是 nvidia 官方自己开发的;(禁用 nouveau)

参考视频:1_NVIDIA显卡黑屏的原因和解决思路_哔哩哔哩_bilibili


二、安装 Ubuntu 时出现黑屏

参考视频:3_UEFI引导的黑屏解决办法_哔哩哔哩_bilibili


三、安装完成后进入 Ubuntu 时出现黑屏

参考视频:4_系统安装后的黑屏解决办法_哔哩哔哩_bilibili


四、如何给 Ubuntu 安装显卡驱动

准备工作1:禁用 nouveau

  • 打开系统的黑名单列表文件
bash 复制代码
sudo gedit /etc/modprobe.d/blacklist.conf
  • 在文件末尾将 nouveau 添加进去,保存关闭
bash 复制代码
blacklist nouveau
  • 令黑名单生效
bash 复制代码
sudo update-initramfs-u

准备工作2:进入 BIOS ,关闭 Secure Boot

  • 防止在后面安装驱动的过程中会要求对驱动程序进行签名

方法1:官方途径安装驱动

  • 官网下载对应型号的显卡驱动
  • 注意:如果是从 Windows 或其他系统中拷贝来的驱动文件,需要执行下面这个指令确保用户获得这个文件的执行权限
bash 复制代码
chmod +x NVIDIA-Linux-x86_64-(版本号).run    //NVIDIA-Linux-x86_64-(版本号).run 就是下载的驱动文件的文件名
  • 运行驱动安装程序
bash 复制代码
sudo bash NVIDIA-Linux-x86_64-(版本号).run

参考内容:

方法2:将所有的驱动都更新,包括显卡驱动

  • 注意:这个方法吃网卡驱动,只是记录一下这个方法,没有试过也不推荐
  • 查看推荐驱动
bash 复制代码
ubuntu-drivers devices
  • 自动更新所有的驱动
bash 复制代码
sudo ubuntu-drivers autoinstall

参考文章:Ubuntu 18.04 安装 NVIDIA 显卡驱动 - 知乎

方法3:使用settings里推荐的显卡驱动

相关推荐
冷眼看人间恩怨5 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
Hejjon11 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室13 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.13 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑14 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing16 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉16 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu8317 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
初学者7.18 小时前
Webpack学习笔记(3)
笔记·学习·webpack
bohu8319 小时前
sentinel学习笔记5-资源指标数据统计
笔记·sentinel·statisticslot