如何手动安装NVIDIA驱动软件
Tofloor
poster avatar
deepinuser17
deepin
2019-11-21 22:04
Author
本帖最后由 deepinuser17 于 2020-4-17 04:29 编辑

如果深度自带的图形驱动管理器(大黄蜂)不能转换到闭源的NVIDIA驱动软件.可以按以下方法自己手动安装.

注: 这个方法已经在深度Deepin 15.11, Deepin 20 Beta, UOS 20上测试成功安装。请先完全阅读所有步骤再开始安装。

注: 这个方法只适用于可以查到N卡的机器.

: 闭源的NVIDIA驱动软件版本有几个系列,440, 390, 340, 304. 根据显卡的型号和发行日期,选择最新的系列版本.如果某系列不支持现有显卡,安装时会有提示.从最新的版本开始试.对于几年前的机器,可以试390, 再老的机器,试340. 下载时,同时下载440, 390, 340系列的版本,这样可以节省时间.

注: 闭源的NVIDIA驱动也会有bug.有时一个版本一切正常,下一个新版本可能会出现黑屏,无法启动X window的问题.遇到这种情况,退回到以前的版本就可以解决问题了.如果有更新的版本,也可以尝试更新的版本.

:有些机器有双显卡,Intel内置显卡和NVIDIA独立显卡。在这种机器上,系统初始设置的显卡是内置Intel显卡。需要手动转换换到NVIDIA独显。具体步骤见链接:
https://bbs.deepin.org/post/178542##=1
https://bbs.deepin.org/post/191810#



快捷方法
1. 查看机器是否有NVIDIA显卡.如果命令的结果里没有NVIDIA字样,那么机器目前没有N卡可使用,无需继续尝试剩余步骤.
  1. lspci | egrep "VGA|3D"
Copy the Code
样本结果:
  1. 01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 750M Edition] (rev a1)
Copy the Code

2. 从www.nvidia.com下载NVIDIA驱动软件包,一般浏览器会存在~/Downloads文件夹里.然后把NVIDIA驱动软件包拷贝到/var/tmp文件夹里
3. 下载附件,install_nvidia.sh.tar.gz
4.  打开深度终端,运行以下命令:

  1. cd ~/Downloads
  2. tar zxf install_nvidia.sh.tar.gz
  3. chmod +x install_nvidia.sh
  4. sudo ./install_nvidia.sh
Copy the Code

例如,驱动文件包NVIDIA-Linux-x86_64-440.36.run的版本号是440.36, 样本命令:
  1. cd ~/Downloads
  2. tar zxf install_nvidia.sh.tar.gz
  3. chmod +x install_nvidia.sh
  4. sudo ./install_nvidia.sh 440.36
Copy the Code
注: 这个命令会执行详细方法里步骤安装N卡驱动.在这个过程中,机器暂时会进入文本状态,机器会重启两次.



详细方法
1. 查看机器是否有NVIDIA显卡.如果命令的结果里没有NVIDIA字样,那么机器目前没有N卡可使用,无需继续尝试剩余步骤. 
  1. lspci | egrep "VGA|3D"
Copy the Code

样本结果:
  1. 01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 750M Edition] (rev a1)
Copy the Code

2. 从www.nvidia.com下载NVIDIA驱动软件包,一般浏览器会存在~/Downloads文件夹里.

3. 安装编译所需要的软件
  1. sudo apt -y install linux-headers-amd64 linux-headers-deepin-amd64 gcc make dkms
Copy the Code

4. 停用初始开源的驱动器nouveau
    检查机器是否使用nouveau驱动器:
  1. $ lsmod | grep nouveau
  2. nouveau              1720320  9
  3. mxm_wmi                16384  1 nouveau
  4. wmi                    24576  2 mxm_wmi,nouveau
  5. i2c_algo_bit           16384  2 nvidiafb,nouveau
  6. ttm                   102400  1 nouveau
  7. drm_kms_helper        172032  1 nouveau
  8. drm                   397312  12 nouveau,ttm,drm_kms_helper
  9. video                  45056  2 apple_gmux,nouveau
Copy the Code


    先创建一个文件,/etc/modprobe.d/blacklist-nouveau.conf, 包含以下两行:
  1. blacklist nouveau
  2. options nouveau modeset=0
Copy the Code
   更新kernel initramfs文件:
  1. sudo cp /boot/initrd.img-$(uname -r){,.with_nouveau}
  2. sudo update-initramfs -u
Copy the Code
   设定机器启动时进入文本模式, 然后重启机器.
  1. sudo systemctl set-default multi-user
  2. sudo shutdown -r now
Copy the Code

5. 安装闭源的NVIDIA驱动
    机器启动以后,在文本模式下登录.确认nouveau驱动没有被加载:

  1. $ lsmod | grep nouveau
Copy the Code

     然后运行下列命令,安装NVIDIA驱动 (NVIDIA驱动版本要视显卡而定, 注意使用合适的版本)
  1. cd ~/Downloads
  2. sudo sh ./NVIDIA-Linux-x86_64-440.31.run
Copy the Code
   在提示时,选: 1. 使用DKMS方法 2. 选32位版本支持 3. 选安装libglvnd文件.最后一项选no.见下面的截图.

6. 设置机器启动时进入图形模式,并重启机器.
  1. sudo systemctl set-default graphical
  2. sudo shutdown -r now
Copy the Code
重启后,检核NVIDIA驱动.打开深度终端,运行nvidia-smi命令.样本结果:
  1. $ nvidia-smi
  2. Thu Nov 21 13:29:45 2019      
  3. +-----------------------------------------------------------------------------+
  4. | NVIDIA-SMI 440.31       Driver Version: 440.31       CUDA Version: 10.2     |
  5. |-------------------------------+----------------------+----------------------+
  6. | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
  7. | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
  8. |===============================+======================+======================|
  9. |   0  GeForce GT 750M     Off  | 00000000:01:00.0 N/A |                  N/A |
  10. | N/A   69C    P0    N/A /  N/A |    191MiB /  1999MiB |     N/A      Default |
  11. +-------------------------------+----------------------+----------------------+
  12.                                                                               
  13. +-----------------------------------------------------------------------------+
  14. | Processes:                                                       GPU Memory |
  15. |  GPU       PID   Type   Process name                             Usage      |
  16. |=============================================================================|
  17. |    0                    Not Supported                                       |
  18. +-----------------------------------------------------------------------------+
Copy the Code

Reply Favorite View the author
All Replies
...5 / 7
To page
avatar
jjdd9527
deepin
2020-03-31 19:36
#81
nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Tue Mar 31 11:09:06 2020
installer version: 440.64

PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

nvidia-installer command line:
    ./nvidia-installer
    -a
    -s
    --dkms

Using built-in stream user interface
-> Detected 8 CPUs online; setting concurrency level to 8.
-> Installing NVIDIA driver version 440.64.
-> Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later. (Answer: Yes)
-> Install NVIDIA's 32-bit compatibility libraries? (Answer: Yes)
Looking for install checker script at ./libglvnd_install_checker/check-libglvnd-install.sh
   executing: '/bin/sh ./libglvnd_install_checker/check-libglvnd-install.sh'...
   Checking for libglvnd installation.
   Checking libGLdispatch...
   Checking libGLdispatch dispatch table
   Checking call through libGLdispatch
   All OK
   libGLdispatch is OK
   Checking for libGLX
   libGLX is OK
   Checking for libEGL
   libEGL is OK
   Checking entrypoint library libOpenGL.so.0
   Checking call through libGLdispatch
   Checking call through library libOpenGL.so.0
   dlopen("libOpenGL.so.0") failed: libOpenGL.so.0: cannot open shared object file: No such file or directory
   Checking entrypoint library libGL.so.1
   Checking call through libGLdispatch
   Checking call through library libGL.so.1
   All OK
   Entrypoint library libGL.so.1 is OK
   
   Found libglvnd libraries: libGL.so.1 libEGL.so.1 libGLX.so.0 libGLdispatch.so.0
   Missing libglvnd libraries: libOpenGL.so.0
   
-> An incomplete installation of libglvnd was found. All of the essential libglvnd libraries are present, but one or more optional components are missing. Do you want to install a full copy of libglvnd? This will overwrite any existing libglvnd libraries. (Answer: Don't install libglvnd files)
Will not install libglvnd libraries.
-> Skipping GLVND file: "libOpenGL.so.0"
-> Skipping GLVND file: "libOpenGL.so"
-> Skipping GLVND file: "libGLESv1_CM.so.1.2.0"
-> Skipping GLVND file: "libGLESv1_CM.so.1"
-> Skipping GLVND file: "libGLESv1_CM.so"
-> Skipping GLVND file: "libGLESv2.so.2.1.0"
-> Skipping GLVND file: "libGLESv2.so.2"
-> Skipping GLVND file: "libGLESv2.so"
-> Skipping GLVND file: "libGLdispatch.so.0"
-> Skipping GLVND file: "libGLX.so.0"
-> Skipping GLVND file: "libGLX.so"
-> Skipping GLVND file: "libGL.so.1.7.0"
-> Skipping GLVND file: "libGL.so.1"
-> Skipping GLVND file: "libGL.so"
-> Skipping GLVND file: "libEGL.so.1.1.0"
-> Skipping GLVND file: "libEGL.so.1"
-> Skipping GLVND file: "libEGL.so"
-> Skipping GLVND file: "./32/libOpenGL.so.0"
-> Skipping GLVND file: "libOpenGL.so"
-> Skipping GLVND file: "./32/libGLdispatch.so.0"
-> Skipping GLVND file: "./32/libGLESv2.so.2.1.0"
-> Skipping GLVND file: "libGLESv2.so.2"
-> Skipping GLVND file: "libGLESv2.so"
-> Skipping GLVND file: "./32/libGLESv1_CM.so.1.2.0"
-> Skipping GLVND file: "libGLESv1_CM.so.1"
-> Skipping GLVND file: "libGLESv1_CM.so"
-> Skipping GLVND file: "./32/libGL.so.1.7.0"
-> Skipping GLVND file: "libGL.so.1"
-> Skipping GLVND file: "libGL.so"
-> Skipping GLVND file: "./32/libGLX.so.0"
-> Skipping GLVND file: "libGLX.so"
-> Skipping GLVND file: "./32/libEGL.so.1.1.0"
-> Skipping GLVND file: "libEGL.so.1"
-> Skipping GLVND file: "libEGL.so"
WARNING: Unable to determine the path to install the libglvnd EGL vendor library config files. Check that you have pkg-config and the libglvnd development libraries installed, or specify a path with --glvnd-egl-config-path.
Will install libEGL vendor library config file to /usr/share/glvnd/egl_vendor.d
-> Searching for conflicting files:
-> done.
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (440.64):
   executing: '/usr/sbin/ldconfig'...
-> done.
-> Driver file installation is complete.
-> Installing DKMS kernel module:
-> done.
ERROR: Unable to load the 'nvidia-drm' kernel module.
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
Reply View the author
avatar
jjdd9527
deepin
2020-03-31 19:37
#82
现在重启进入显示DEEPIN的LOGO就黑屏了
怎么解决啊
大佬
Reply View the author
avatar
deepinuser17
deepin
2020-04-01 11:56
#83
你的机器有几个显卡? 见本帖的说明如何查看显卡。

如果有多个显卡,N卡可能是独显,而且不是系统初始显卡。 如果是这种情况,见这个链接:https://bbs.deepin.org/post/178542

根据提供的信息,NVIDIA驱动器已经安装成功。
Reply View the author
avatar
Fredoong
deepin
2020-04-03 05:58
#84
完全复刻楼主的教程试了好几次,340.108驱动始终安装失败,崩溃了,放弃了。
https://bbs.deepin.org/post/189266 这帖子的楼主跟我一样的340.108驱动,只要选了DKMS就安装失败,失败的页面都一模一样的,真是同病相怜。

现在求问楼主大大,安装失败后如何删除已安装的nvidia的东西并回到开源驱动nouveau的状态??不知道如何回去继续使用开源驱动,请不吝赐教。
Reply View the author
avatar
deepinuser17
deepin
2020-04-03 07:10
#85
本帖最后由 deepinuser17 于 2020-4-2 23:11 编辑
https://bbs.deepin.org/post/185547
完全复刻楼主的教程试了好几次,340.108驱动始终安装失败,崩溃了,放弃了。
https://bbs.deepin.org/module ...

DKMS安装NVIDIA驱动器不是必须的,只是一个方案。见手动安装步骤。

恢复开源驱动nouveau的方法如下:

1. 恢复内核启动文件
  1. sudo cp /boot/initrd.img-$(uname -r){,.with_nvidia}
  2. sudo cp /boot/initrd.img-$(uname -r).with_nouveau /boot/initrd.img-$(uname -r)
Copy the Code


2. 删除/etc/modprobe.d/blacklist-nouveau.conf
  1. sudo rm /etc/modprobe.d/blacklist-nouveau.conf
Copy the Code


3. 卸载NVIDIA驱动器(替换驱动器安装包名):
  1. sudo ./ --uninstall
Copy the Code


4. 确认机器重启是自动进入图形状态.
  1. systemctl get-default
Copy the Code

这个命令的结果是"graphical". 如果不是,运行以下命令:
  1. sudo systemctl set-default graphical
Copy the Code


5. 重启机器
  1. sudo shutdown -r now
Copy the Code
Reply View the author
avatar
Fredoong
deepin
2020-04-03 07:41
#86
https://bbs.deepin.org/post/185547
DKMS安装NVIDIA驱动器不是必须的,只是一个方案。见手动安装步骤。

恢复开源驱动nouveau的方法如下:

前面的步骤都挺顺利的,就是在启动.run文件安装驱动时,
-> Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later. (Answer: Yes)
这一步只要选择yes,那就完蛋,就要失败,失败信息也在74楼了,无奈了。
Reply View the author
avatar
Haydn
deepin
2020-04-07 21:07
#87
本帖最后由 ghs19812004 于 2020-4-7 13:12 编辑
https://bbs.deepin.org/post/185547
结案了。你说“下载附件,install_nvidia.sh.tar.gz”,我把这个逗号理解成下一步,所以去执行了“instal ...

在不?请教下,
是按步骤来的,这个最终是咋搞的呀?


然后如果按照详细步骤,到第4步就执行不下去了?????????????
Reply View the author
avatar
Haydn
deepin
2020-04-07 21:32
#88
https://bbs.deepin.org/post/185547
Edited by zhoulang_rr at 2020-2-24 15:35

UOS一次成功,之前试过很多次都失败了,搞得很心累,主要是 ...

是安步骤来的,怎么就是不行啊
340.108
Reply View the author
avatar
Haydn
deepin
2020-04-07 22:20
#89
https://bbs.deepin.org/post/185547
在不?请教下,
是按步骤来的,这个最终是咋搞的呀?

应该是同样明白你说的意思了!完成后驱动的序号好却又不对,我安装的是340.08的。不知道它为什么会显示390.87
Reply View the author
avatar
Haydn
deepin
2020-04-07 22:48
#90
怎么换回原来的开源驱动,新安装到时成功了,但是窗口与分辨率都不正常。
直接切换,不能成功。
Reply View the author
avatar
deepinuser17
deepin
2020-04-08 06:51
#91
https://bbs.deepin.org/post/185547
在不?请教下,
是按步骤来的,这个最终是咋搞的呀?

有没有下载NVIDIA驱动安装包并把它存在/var/tmp目录下?
Reply View the author
avatar
Haydn
deepin
2020-04-08 16:31
#92
https://bbs.deepin.org/post/185547
有没有下载NVIDIA驱动安装包并把它存在/var/tmp目录下?

后来按照步骤安装成功了,不过不知道为什么显示的版本号不对,字体、屏幕分辨率也不对,后边折腾了半天,又把它删除了!
Reply View the author
avatar
sevenfal
deepin
2020-04-12 03:51
#93
刚试了下 ,我是双显卡,
开机黑屏 一定要参考 https://bbs.deepin.org/post/178542##=1 在 /etc/lightdm/lightdm.conf 中添加 /etc/lightdm/display_setup.sh
开机要是报错,和NVIDIA面板打开有问题,我用的是这个 xorg.conf : https://bbs.deepin.org/post/178542#681511&fromuid=143132
Reply View the author
avatar
152******18
deepin
2020-04-17 02:42
#94
非常实用的帖子,每次装完系统都会来这里照着操作装闭源驱动。感谢楼主!
Reply View the author
avatar
171******21
deepin
2020-04-17 03:39
#95
deepinV20 Beta 经测试可以用,建议出现系统不稳定时优先考虑显卡驱动问题。
Reply View the author
avatar
滢泷迷雾
deepin
2020-04-17 03:43
#96
确定是安装完成了吗? 进入桌面后显卡还是没有任何进程使用??
是不是少了关键的设置,这个安装包谁都能装上 ,关键是只做这个  显卡是不会被使用的。
Reply View the author
avatar
yaoyi
deepin
2020-04-17 05:28
#97
已经成功安装,谢谢
Reply View the author
avatar
186******46
deepin
2020-04-18 10:23
#98
这个方法最好,两次成功了
Reply View the author
avatar
chenjunan0724
deepin
2020-04-18 17:53
#99
眼。。。
Reply View the author
avatar
mahuan
deepin
2020-04-18 20:00
#100
trader_r 发表于 2019-11-28 21:07
谢谢,终于安装成功了!

你用的显卡感觉画面怎样?我怎么感觉你的显卡驱动没有加载呢?没有进程?
Reply View the author
...5 / 7
To page