0


win10+ubuntu24.04,在ubuntu24.04中安装Nvidia驱动程序

一、前言

刚重安装了Ubuntu系统,安装一下Nvidia驱动程序
参考链接如下:
link1
link2
link3
link4
我主要参考link3中使用官方的NVIDIA驱动进行手动安装的方法。

二、安装

1. 查看当前电脑的显卡型号

lshw -numeric -C display

执行完毕之后我出现了一个警告,但是我没有管它:

/桌面$ lshw -numeric -C display
WARNING: you should run this program as super-user.
  *-display                 
       description: VGA compatible controller
       product: AD102 [GeForce RTX 4090][10DE:2684]
       vendor: NVIDIA Corporation [10DE]
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: /dev/fb0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: vga_controller bus_master cap_list rom fb
       configuration: depth=32driver=nouveau latency=0resolution=2560,1440
       resources: irq:155 memory:a1000000-a1ffffff memory:b0000000-bfffffff memory:c0000000-c1ffffff ioport:4000(size=128) memory:c0000-dffff
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.

2. 查看本机支持的nvidia驱动版本

ubuntu-drivers devices
~/桌面$ ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002684sv00001458sd000040E4bc03sc00i00
vendor   : NVIDIA Corporation
model    : AD102 [GeForce RTX 4090]
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended
driver   : nvidia-driver-535-open - distro non-free
driver   : xserver-xorg-video-nouveau - distro freebuiltin

可以看到推荐的版本是535版本。
注意:这里可以按照需求选择更新apt或者不更新,因为更新以后显卡推荐的驱动版本可能会变,这样之前的版本就不能用了。详细请直接跳到第4步查看。

3. 到官网下载驱动文件

官网地址:https://www.nvidia.cn/drivers/lookup/
在这里插入图片描述
注意显卡型号和操作系统。
这里查找结果默认是一个,应该是显卡对应的最新的驱动程序版本,我这里显示的是550版本:
在这里插入图片描述当然展开查看更多版本时是含有535版本的。这里我犯了难,因为看到有博主说如果显卡较新的话安装推荐版本可能不是最新版本,即使安装成功也不意味着真正安装成功,会导致无法进入系统。也有博主说由于没有安装推荐版本导致电脑不支持下载的新版本,驱动卸载不干净最后也重装了系统。
纠结了以下之后我选择安装推荐版本,先安装一下试试。找到对应版本下载,下载后的文件格式为 run。
ps:我在执行了第四步以后推荐版本变成最新版本了。
下载以后放在用户目录下:

/home/用户名/

在这里插入一下ubuntu系统目录的结构。

4. 安装其它包(重点!!!!!!!!!)

看到博主说他是刚装了系统就安装的驱动,所以没有gcc,make,g++三个包,所以他在这里先安装了。我先看看自己有没有这几个包:

gcc --version

没有。好的。安。

sudoapt update
sudoaptinstall gcc make g++

安好了。然后,我突然灵光一现,想到之前系统崩溃的起因好像就是我更新了个什么包。会不会更新apt以后显卡对应的驱动版本就变了呢?重新看一下推荐的驱动版本:

~/桌面$ ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002684sv00001458sd000040E4bc03sc00i00
vendor   : NVIDIA Corporation
model    : AD102 [GeForce RTX 4090]
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : nvidia-driver-550-open - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro freebuiltin

果然变了!!推荐版本变成550了。幸好没有直接安装535版本。重新下载一下550版本的驱动文件,放在相同的位置。550驱动文件也有很多个版本,我没有选择最新的,而是选择了大概1个多月前出的版本。

5. bios禁用secure boot,也就是设置为disable

如果没有禁用secure boot,会导致NVIDIA驱动安装失败,或者不正常。
重启进入BIOS界面:
在这里插入图片描述
在这里插入图片描述
搜索secure boot:
在这里插入图片描述
改为disable:
在这里插入图片描述
按 F10 保存并重启。

6.禁用nouveau

打开配置文件:

sudo gedit /etc/modprobe.d/blacklist.conf
sudo: gedit:找不到命令
sudoapt-get update
sudoaptinstall gedit 

然后我又看了一眼推荐驱动版本有没有变:

~/桌面$ ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002684sv00001458sd000040E4bc03sc00i00
vendor   : NVIDIA Corporation
model    : AD102 [GeForce RTX 4090]
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-550-open - distro non-free
driver   : xserver-xorg-video-nouveau - distro freebuiltin

顺序好像跟之前的不一样了,但推荐版本还是550.
继续执行:

sudo gedit /etc/modprobe.d/blacklist.conf

在最后一行加上:

blacklist nouveau

这一条的含义是禁用nouveau第三方驱动,之后也不需要改回来。
在这里插入图片描述
由于nouveau是构建在内核中的,所以保存退出后,打开命令端输入

sudo update-initramfs -u

7. 重启

reboot

重启之后,查看nouveau有没有运行:

lsmod |grep nouveau  # 没输出代表禁用生效

8. 停止可视化桌面

为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。最简单的方法是使用telinit命令更改为运行级别3。执行以下linux命令后,显示服务器将停止,因此请确保在继续之前保存所有当前工作(如果有):

sudo telinit 3# ubuntusudoservice lightdm stop

之后会进入一个新的命令行会话,使用当前的用户名密码登录。

这里可能会有人出现左上角有光标,不能输入命令的现象,这是正常的。可以通过快捷键 CTRL+ALT+F1-F5 随便选一个TTY,切换过去之后使用用户名和密码登录即可。
在这里插入图片描述

sudo apt install lightdm

在这里插入图片描述
选择lightdm。继续执行:

sudo service lightdm stop

9. 安装驱动

给驱动文件增加可执行权限:

sudo chmod a+x NVIDIA-Linux-x86_64-550.107.02.run

然后执行安装:

sudo sh ./NVIDIA-Linux-x86_64-550.107.02.run --no-opengl-files

贴一下大佬的介绍:
安装过程中遇到的选择如下: 可能顺序不一样

  • 大概是说“预检查”啥的不通过,我都是直接continue,目前没遇到过什么问题

在这里插入图片描述

  • 有时候会问你要不要安装32位的库,我一般都选择安装(为啥不装嘞,除非空间不够吧)。下图是运气不好,装不上32位的库在这里插入图片描述
  • 选择是否要使用nvidia的x config文件替换原来的。我都是把linux中的x理解成是图形界面。看个人喜好要不要替换吧,我一般都选No在这里插入图片描述 我就只碰到了这几个选项,其他的没有碰到。甚至连安装完成的OK选项都没有。期间都是选的默认选项。然后就直接黑屏,左下角出现了类似命令行的东西,可以输入指令,我输入了reboot 然后重启失败。黑屏了,一直没反应,我也不知道怎么回事。 果然安装驱动没有那么简单吗? 断电重启。这次在grub界面,按’‘‘e’’’ 进入编辑开机指令的模式, 在’‘‘quite splash’’’ 并在后面加上“nomodeset”,按’‘F10’'启动系统,出现了如下提示:在这里插入图片描述 啊,什么东西。是不是果然要按照大佬介绍的改一下分辨率?但是现在只能点击关闭,我点了以后就登录进来了。 然后我打开命令行,输入
nvidia-smi

在这里插入图片描述
这个是安装成功了吧。继续重启,还是黑屏。
再次断电重启,进入recovery mode模式,进入root,执行:

sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"#修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

按“esc”,输入“ :wq! ” (有冒号) 保存退出,更新grub

sudo update-grub

重启,还是不行。桌面卡住了,除了鼠标什么也没有,命令行也进不去。
断电重启。

  1. 按Ctrl+Alt+F1可以进入tty终端
  2. 输入账号和密码进行登录,注意,这一步不要使用小键盘
  3. 执行命令注销桌面重新登录

命令为:

sudo pkill Xorg  或者  sudo restart lightdm

后面的那个命令我执行失败了。前面的可以执行,但是还是显示显示器无法配置。进入界面后倒是可以正常运行。然后我执行:

sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf

将文件修改为:

Section "OutputClass"
   Identifier "AMDgpu"
   MatchDriver "amdgpu"
   Driver "amdgpu"
   Option "PrimaryGPU""no"
EndSection

修改nvidia配置:

sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf

这个文件我没有,输入之后是一个新建的文件。然后我输入:

Section "OutputClass"
   Identifier "nvidia"
   MatchDriver "nvidia-drm"
   Driver "nvidia"
   Option "AllowEmptyInitialConfiguration"
   Option "PrimaryGPU""yes"
   ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection

重启。失败。

10. 更改分辨率

打开终端输入命令xrandr,获取当前显示系统有效输出的设备名称和所有有效分辨率,如下:

/桌面$ xrandr
Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+  74.99  
   3840x2160     59.9450.00  
   1920x1080     60.0059.9450.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1440     59.91  
   1280x1024     75.0260.02  
   1280x960      60.00  
   1280x720      60.0059.9450.00  
   1024x768      75.0370.0760.00  
   800x600       75.0072.1960.3256.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.0072.8159.9459.93

这里第一列为分辨率,第二列为刷新率?带*的为现在正在使用的分辨率?第一行current后面是我真正的分辨率?第二行connected前面的是我的显示器名称?
这里我没有新建分辨率

5120x1440

,我想先看看是不是分辨率的原因,所以直接将分辨率改为了

2560x1440

xrandr -s 2560x1440_59.95

在查看当前分辨率:

xrandr
Screen 0: minimum 8 x 8, current 2560 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+  74.99  
   3840x2160     59.9450.00  
   1920x1080     60.0059.9450.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1440     59.91  
   1280x1024     75.0260.02  
   1280x960      60.00  
   1280x720      60.0059.9450.00  
   1024x768      75.0370.0760.00  
   800x600       75.0072.1960.3256.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.0072.8159.9459.93

第一行current后面的分辨率变了。重启一下试试。
这次能正常进入系统了。但是还是有那个无法改变显示器配置的提示。进入桌面以后显示也是正常的。
用命令行查看:

~/桌面$ xrandr
Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+  74.99  
   3840x2160     59.9450.00  
   1920x1080     60.0059.9450.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1440     59.91  
   1280x1024     75.0260.02  
   1280x960      60.00  
   1280x720      60.0059.9450.00  
   1024x768      75.0370.0760.00  
   800x600       75.0072.1960.3256.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.0072.8159.9459.93

current后面又变成了

5120x1440

。为什么呢?直接新建一个分辨率试试。

cvt 51201440
# 5120x1440 59.96 Hz (CVT) hsync: 89.52 kHz; pclk: 624.50 MHz
Modeline "5120x1440_60.00"624.5051205496604869761440144314531493 -hsync +vsync
sudo xrandr --newmode "5120x1440_60.00"624.5051205496604869761440144314531493 -hsync +vsync
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140(RANDR)
  Minor opcode of failed request:  16(RRCreateMode)
  Serial number of failed request:  46
  Current serial number in output stream:  46

好累。看到有人说换一根4k的HDMI线就都好了 。又要花钱?
我之前用那个命令更改分辨率难道只是暂时的吗?

sudovim /etc/profile
sudo: vim:找不到命令
sudoaptinstallvim

打开文件,在最下面添加两行:

xrandr --addmode HDMI-0 "2560x1440_59.95"
xrandr --output HDMI-0 --mode "2560x1440_59.95"

在这里插入图片描述
保存,重启。
在这里插入图片描述
什么?为什么会没有这个模式呢?刚刚看到下面有列出来我才没有新建模式而是直接使用的。
完蛋,又进不去了。桌面没有任何反应,

sudo pkill Xorg

也失效了。
断电重启,重新进入ubuntu系统,还是出现了这两个警告,但是桌面竟然神奇的好了。命令行也能正常使用了。
看到有博主说在附加驱动里改成专有驱动可能有用。于是:
在这里插入图片描述
救命,我的全是灰色的,根本改不了。

11. 卸载重装

没办法了。卸了重装一下试试吧。这次我直接选择了最新的550版本进行安装。

sudoapt-get remove --purge nvidia*

执行完毕之后,查看有没有卸载干净:

~/桌面$ nvidia-smi
Sun Sep 2916:24:41 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.107.02             Driver Version: 550.107.02     CUDA Version: 12.4||-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC || Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. ||||               MIG M. ||=========================================+========================+======================||0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0  On |                  Off ||0%   40C    P8             19W /  450W |     156MiB /  24564MiB |50%      Default ||||                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              ||  GPU   GI   CI        PID   Type   Process name                              GPU Memory ||        ID   ID                                                               Usage      ||=========================================================================================||0   N/A  N/A      1230      G   /usr/lib/xorg/Xorg                            148MiB |
+-----------------------------------------------------------------------------------------+

很好,根本没卸载。
使用

chmod

命令安装的好像也需要一个单独的指令来卸载,忘记记录现在也想不起来了。我是按照下面的方式卸载的:

cd /usr/bin
ls nvidia-*
sudo nvidia-uninstall

在这里插入图片描述选No
在这里插入图片描述选OK。

卸载驱动后重启出现了新的问题:
在这里插入图片描述检测不到 HDMI 线呢。
重新安装驱动后还是一样会出现两个警告,使用

xrandr

命令查看也是一样的问题:

~/桌面$ xrandr
Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+  74.99  
   3840x2160     59.9450.00  
   1920x1080     60.0059.9450.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1440     59.91  
   1280x1024     75.0260.02  
   1280x960      60.00  
   1280x720      60.0059.9450.00  
   1024x768      75.0370.0760.00  
   800x600       75.0072.1960.3256.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.0072.8159.9459.93  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
None-1-1 connected (normal left inverted right x axis y axis)
   2560x1440     60.00 +
~/桌面$ nvidia-settings

(nvidia-settings:5056): GLib-GObject-CRITICAL **: 20:15:38.502: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

驱动也一样什么都点不了呢:
在这里插入图片描述
到底是为什么呀。浏览了一些杂七杂八的帖子,突然看到有博主说要将

lightdm

换回

gdm3

。我也试试行不行:

sudo dpkg-reconfigure gdm3

在这里插入图片描述

重启之后第一个警告没有了。只有开机出现的这个警告了:
在这里插入图片描述
仔细想一下,之所以会出现这个警告,不是因为我之前修改了那个 .profile 文件造成的吗?那就再把之前添加的那两行代码删掉。重启,没有警告。一切正常。输入

xrandr

命令查看:

~/桌面$ xrandr
Screen 0: minimum 8 x 8, current 2560 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+  74.99  
   3840x2160     59.9450.00  
   1920x1080     60.0059.9450.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1440     59.91  
   1280x1024     75.0260.02  
   1280x960      60.00  
   1280x720      60.0059.9450.00  
   1024x768      75.0370.0760.00  
   800x600       75.0072.1960.3256.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.0072.8159.9459.93

分辨率正常了。
但是我的附加驱动那里还是不能修改。我暂时先不管了。后面安装 anaconda 和 cuda 的时候看看有没有问题再说吧。

12. bios打开secure boot

将bios设置为之前的格式。

标签: ubuntu 人工智能

本文转载自: https://blog.csdn.net/SharbbyBai/article/details/142621606
版权归原作者 一个没有本领的人 所有, 如有侵权,请联系我们删除。

“win10+ubuntu24.04,在ubuntu24.04中安装Nvidia驱动程序”的评论:

还没有评论