如何使用命令行更改专有视频驱动程序?

我的笔记本电脑配备了一张Nvidia显卡,并且运行着Ubuntu 12.04 LTS 64位操作系统。在昨天的升级过程中,似乎安装了一个新的Nvidia驱动版本304(如果我没记错的话)。升级完成并重新启动后,我打开了附加驱动工具,发现Nvidia驱动版本304正在使用中。到目前为止一切都还好。
然而,附加驱动工具也报告说存在一个推荐的Nvidia驱动版本319。于是我选择切换到这个推荐的驱动,驱动被下载并安装,我重新启动系统后却只看到了一个黑屏和一个命令行界面。
请问如何使用命令行更改专有的Nvidia显卡驱动,并恢复到之前在我的系统上正常工作的版本?
(另外一个问题:为什么会推荐一个明显不起作用的显卡驱动?)

你对于同时更改版本还是只是查看它们感兴趣吗? - Charlie Parker
6个回答

根据这个Ubuntu社区帮助维基页面,Ubuntu 14.04+有所不同:
Ubuntu 14.04及以上版本
随着Ubuntu 14.04的发布,jockey-text命令已被移除。现在您可以使用ubuntu-drivers命令获取每个驱动程序的软件包列表,然后使用apt-get安装这些软件包。例如:
sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==

vendor   : NVIDIA Corporation
modalias : pci:v000010DEd00000DDAsv000017AAsd000021D1bc03sc00i00
model    : GF106GLM [Quadro 2000M]
driver   : xserver-xorg-video-nouveau - distro free builtin
driver   : nvidia-304-updates - distro non-free
driver   : nvidia-304 - distro non-free
driver   : nvidia-331 - distro non-free recommended
driver   : nvidia-331-updates - distro non-free

sudo apt-get install nvidia-331

Ubuntu 12.04(与mikewhatever的回答相同)

如果您需要在没有使用X GUI的情况下更改驱动程序,可能是因为这些驱动程序未安装,您可以使用jockey-text命令。例如:

jockey-text --help
jockey-text -l
jockey-text -e xorg:nvidia_current

如果我在14.04上尝试运行sudo ubuntu-drivers devices,会出现ubuntu-drivers: command not found的错误提示。 - pir
2首先运行apt install ubuntu-drivers-common来安装ubuntu-drivers - Hank
2他并没有问如何安装新的驱动程序。他问的是如何激活已经安装好的驱动程序:“回到之前在我的系统上运行正常的版本”。 - James Bowery
2面对同样的挑战。我已经登录到tty2,并想要切换我的驱动程序。通过sudo ubuntu-drivers命令,我可以看到4个选项。我想要将驱动程序从nouveau切换到nvidia-driver-440(我想要切换,而不是安装,因为这4个已经安装好了)。你能帮我切换命令吗? - Mubasher
现在我们有了这个版本,换个驱动程序怎么样? - Charlie Parker
1从查看该主题上的所有教程来看,sudo apt install nvidia-driver-123 方法实际上也是选择驱动程序的方法。在此之后,您需要重新启动系统以进行验证。然后,运行 nvidia-smi 命令来查看正在使用的 NVIDIA 驱动程序版本。如果由于某种原因无法正常工作,还可以使用命令 ubuntu-drivers install nvidia-driver-123。有关更多信息,请参阅 ubuntu-drivers -h - King Holly

更新:对于18.04及更高版本,您需要使用ubuntu-drivers。 请参阅ubuntu-drivers -h以获取语法。
Ubuntu 12.04(对于较新版本,请参见其他答案)
您可以使用jockey-text在Ubuntu中禁用和启用Nvidia驱动程序。
例如:
- 运行jockey-text --list以获取可用选项列表。 - 运行sudo jockey-text -d xorg:nvidia_304以删除304驱动程序。 - 运行sudo jockey-text -e xorg:nvidia_304以启用相同的驱动程序。 - 运行jockey-text --help以查看帮助手册。

213.10的情况如何?我没有一个叫做jockey的工具。 - northben
1jockey-text是由jockey-common提供的:sudo apt-get install jockey-common - bacon
1114.04(也许13.10也是)用ubuntu-drivers-common替换了jockey-common,它具有不同的工作方式,其中包含ubuntu-drivers可执行文件。 - Nick T
现在我们有了这个版本,换个驱动程序怎么样? - Charlie Parker

我在使用存储库中的304/319驱动程序时遇到了同样的问题,Nvidia在他们的网站上有专有驱动程序,从那里安装实际上效果很好,我使用这个手册删除了剩余的驱动程序,并直接从Nvidia安装了正确的驱动程序。

http://www.beginninglinux.com/home/graphics-drivers/install-nvidia-custom-driver-on-ubuntu-12-04

确保你注意到每一个细节,特别是要确保在/etc/default/grub文件中的GRUB_CMDLINE_LINUX_DEFAULT行包含nomodeset,否则Nvidia驱动将无法工作。
此外,如果专有驱动无法正常工作,你可以随时卸载Nvidia驱动并安装默认的nouveau驱动。
sudo apt-get autoremove --purge nvidia-*
sudo service lightdm stop
sudo apt-get install xserver-xorg-video-nouveau

sudo: 停止: 找不到命令 - Krease
现在我们有了这个版本,换个驱动程序怎么样? - Charlie Parker

现在(2023年),您可以使用ubuntu-drivers来查看可用的驱动程序版本并安装它们。 例如,您可以
获取可用驱动程序列表: ``` ubuntu-drivers list ```
安装推荐的驱动程序: ``` sudo ubuntu-drivers install ```
从列表中安装特定版本: ``` sudo ubuntu-drivers install nvidia:535 ```
你可以在官方的NVIDIA驱动安装指南中阅读更多内容。

这是本页面上最新的答案。 - undefined

除此之外(我知道这并不真正回答问题),如果你没有菜单或者使用的窗口管理器无法集成Ubuntu菜单,在Ubuntu 18.04(以及可能大多数其他版本)中,可以通过图形界面前端启动专有驱动选择工具,方法是使用software-properties-gtk命令。当然,你需要一个正常工作的X服务器来启动和使用该工具。

你还可以从NVIDIA下载.sh文件,然后按照以下步骤操作:
1. 首先按下Ctrl+Alt+F1 - 退出GUI模式 - 在Ubuntu上执行sudo service gdm stop命令 - 进入你下载NVIDIA驱动程序的文件夹 - 执行./nvidia.drivers.sh命令 - 安装完成后执行sudo reboot命令重新启动计算机