显卡驱动是Linux使用时候的一个重要组件,尤其是在使用Linux桌面版的时候。当然这不仅仅是对于Linux,Windows一样如此。一个没有显卡驱动的电脑,在Windows上也许是显示分辨率不好。但是到了运行着Linux系统的电脑上,可能就是直接黑屏不显示,或者桌面卡住不能做任何的操作。尤其是独立显卡的驱动,比如nvidia显卡,这种显卡一方面用于显示,另一方面还可被用在大数据运算和人工智能内模型的生成和校验工作。这就意味着不管是Linux桌面版还是Linux服务器版,都需要注意驱动的问题。直接将系统更新了,或者显卡驱动更新了,导致桌面操作出现问题,普通用户特别是新手,面对黑乎乎的显示器,不知道怎么办,如果电脑上有重要资料或者关键的程序在运行,就更加焦急。这里在Ubuntu Linux的官方源中有DKMS(Dynamic Kernel Module Support)版本的驱动,这个软件包的驱动和Linux内核形成了依赖设置。在安装升级内核或者驱动时,会自动下载对应版本的内核或驱动,从而避免出现驱动和内核不一致,导致的黑屏和驱动错误的情况了。在Ubuntu、Debian、Linux Mint这些发行版,安装nvidia的dkms驱动:sudo apt install nvidia-dkms-550
其实在Arch Linux 也有这样的驱动软件包:sudo pacman -S nvidia-dkms
假如源中的dkms版本驱动,无法满足现实中的使用需求。你可能仍然需要安装下载.run的独立驱动包。这对于特殊的显卡型号,或者机器学习库,是比较常见的。这时候,既然显卡驱动的版本确定了,就要注意内核版本的匹配,手动安装指定版本的内核以及对应的header文件,这些Linux内核在Ubuntu Linux的官方网站上,可以轻松找到。手动安装这些Linux内核之前可以尝试安装,如果不能直接安装再手动安装:sudo apt install linux-headers-版本号
完成了显卡驱动的安装之后,正常使用是没有问题的,会出现问题的情况往往就是dkms的驱动被更新改动的情况。尤其是非显示场景下的使用。在Linux桌面的使用时,显卡驱动出现问题很容易发现。但是在数据运算场景下的显卡驱动变更的影响不能被直接发现,也许是运行的某个运算从几个小时变成了十几个小时,也许是运算的结果出现了较大误差。这些都是不能被实验或工作所接受的,那么在Ubuntu Linux上将在用的软件包保持住就好了。sudo apt-mark hold nivdia-driver-550
sudo apt-mark unhold nivdia-driver-550
以上主要说的是nivdia的独立显卡驱动。至于amd和intel的显卡驱动,则不必大费周章,因为这些去掉往往是开源的,被默认集成到了Linux系统内核中。每次升级系统内核,驱动就随之自动更新升级了。总的来说,Ubuntu Linux上有在用的独立显卡驱动,执行更新等操作的时候,不想太费事就采取一些办法,避免一次更新反而影响了正常使用。