如何手动安装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
4 / 7
To page
avatar
zhoulang_rr
deepin
2020-02-24 23:25
#61
https://bbs.deepin.org/post/185547
UOS一次成功,之前试过很多次都失败了,搞得很心累,主要是想做深度学习,惠普暗影精灵5,显卡1650 4G。
注 ...

我刚刚知道怎么插入图片了
Reply View the author
avatar
zhoulang_rr
deepin
2020-02-25 16:04
#62
https://bbs.deepin.org/post/185547
我刚刚知道怎么插入图片了

再次更新一下,显卡安装了,也可以运行,因为做深度学习是可以的,但是,出现了画面撕裂延迟的问题,然后就是系统自带播放器打开后是透明的,不出现界面。
Reply View the author
avatar
WangZhongyun
deepin
2020-02-25 17:30
#63
https://bbs.deepin.org/post/185547
再次更新一下,显卡安装了,也可以运行,因为做深度学习是可以的,但是,出现了画面撕裂延迟的问题,然后 ...

用深度显卡管理器安装显卡驱动吧,祝顺利
Reply View the author
avatar
deepinuser17
deepin
2020-02-25 20:01
#64
https://bbs.deepin.org/post/185547
我刚刚知道怎么插入图片了

你的显卡是GTX1650. 你可以安装最新的N卡驱动器。最新的驱动器是440.44.
Reply View the author
avatar
zhoulang_rr
deepin
2020-03-07 16:56
#65
https://bbs.deepin.org/post/185547
你的显卡是GTX1650. 你可以安装最新的N卡驱动器。最新的驱动器是440.44.

那你们的会有画面撕裂感么
Reply View the author
avatar
dadapong
deepin
2020-03-07 19:17
#66
收藏备用
Reply View the author
avatar
deepinuser17
deepin
2020-03-07 19:34
#67
https://bbs.deepin.org/post/185547
楼主大佬,我的机器在运行.run文件安装DKMS模块时出现如下图的状况,拍下来仔细看了一下,应该是cpu核心温 ...

安装应该能够继续完成
Reply View the author
avatar
stone
deepin
2020-03-16 23:08
#68


一次成功,感谢楼主。另外简易版的安装我这边用着没用。是用详细步骤安装成功的



Reply View the author
avatar
stone
deepin
2020-03-16 23:19
#69
本帖最后由 l17es 于 2020-3-16 15:34 编辑
https://bbs.deepin.org/post/185547
那你们的会有画面撕裂感么

有的。坛子里有方法的。
启动器里找nvidia-settings 或者 直接 终端里 输入
  1. nvidia-settings
Copy the Code

出来选择左边 第二个条目  X-Server Display Configuration , 右边最下面有个 Advanced 点开之后 右下角 那个 Force Full Composition Pipeline 勾上,然后 点 Apply应用(这一步之后就可以尝试下看看还有没有撕裂感),之后再 点下面的 Save to X Configuration File 会让你保存到/etc/X11/xorg.conf ,这时候保存会失败,是授权失败的关系. 再次点击 Save to X Configuration File 出来的界面,点上面的 Show Preview,复制下面框里的东西,看不全可以把框拉大一点,然后进终端
  1. sudo dedit /etc/X11/xorg.conf
Copy the Code

  把刚才复制的内容粘贴上去,保存之后重启看看还会不会有撕裂感。如果没有就OK了。


Reply View the author
avatar
deepinuser17
deepin
2020-03-17 07:39
#70
https://bbs.deepin.org/post/185547
有的。坛子里有方法的。
启动器里找nvidia-settings 或者 直接 终端里 输入

请上传你的xorg.conf文件
Reply View the author
avatar
stone
deepin
2020-03-17 08:14
#71
https://bbs.deepin.org/post/185547
请上传你的xorg.conf文件

xorg.conf.zip
Reply View the author
avatar
superfreeboy
deepin
2020-03-17 14:39
#72
谢谢楼主的帮助,我先占坑备用。
Reply View the author
avatar
Fredoong
deepin
2020-03-21 11:36
#73
本帖最后由 winterfive 于 2020-3-21 05:16 编辑

楼主大大,我运行.run文件后按照你说的选项选择,然后安装失败了,安装日志如下,麻烦看一下该如何解决,谢谢楼主。
nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Sat Mar 21 02:58:35 2020
installer version: 340.108

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

nvidia-installer command line:
    ./nvidia-installer

Unable to load: nvidia-installer ncurses v6 user interface

Using: nvidia-installer ncurses user interface
-> License accepted.
-> Installing NVIDIA driver version 340.108.
-> 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)
-> Installing both new and classic TLS OpenGL libraries.
-> Installing both new and classic TLS 32bit OpenGL libraries.
-> Install NVIDIA's 32-bit compatibility libraries? (Answer: Yes)
-> Skipping installation of the libvdpau wrapper library.
-> Searching for conflicting X files:
-> done.
-> Searching for conflicting OpenGL files:
-> done.
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (340.108):
   executing: '/usr/sbin/ldconfig'...
-> done.
-> Driver file installation is complete.
-> Installing DKMS kernel module:
ERROR: Failed to run `/usr/sbin/dkms build -m nvidia -v 340.108 -k 4.15.0-30deepin-generic`:
Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
make -j4 KERNELRELEASE=4.15.0-30deepin-generic module KERNEL_UNAME=4.15.0-30deepin-generic; make -C uvm module KERNEL_UNAME=4.15.0-30deepin-generic KBUILD_EXTMOD=/var/lib/dkms/nvidia/340.108/build/uvm.....................(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.15.0-30deepin-generic (x86_64)
Consult /var/lib/dkms/nvidia/340.108/build/make.log for more information.
-> error.
ERROR: Failed to install the kernel module through DKMS. No kernel module was installed; please try installing again without DKMS, or check the DKMS logs for more information.
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.



根据上面log的提示,查看/var/lib/dkms/nvidia/340.108/build/make.log文件,文件里文本特别多,没法粘贴,我上传到附件了。
搜索了一下error相关的信息,大体上查到如下:
echo >&2 "  ERROR: Kernel configuration is invalid.";        \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";    \

/var/lib/dkms/nvidia/340.108/build/uvm/nvidia_uvm_lite.c:859:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .fault = _fault,
              ^~~~~~
/var/lib/dkms/nvidia/340.108/build/uvm/nvidia_uvm_lite.c:889:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .fault = _sigbus_fault,
              ^~~~~~~~~~~~~


cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/var/lib/dkms/nvidia/340.108/build/uvm/nvidia_uvm_lite.o' failed
make[2]: *** [/var/lib/dkms/nvidia/340.108/build/uvm/nvidia_uvm_lite.o] Error 1
Makefile:1552: recipe for target '_module_/var/lib/dkms/nvidia/340.108/build/uvm' failed
make[1]: *** [_module_/var/lib/dkms/nvidia/340.108/build/uvm] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-30deepin-generic'
NVIDIA: left KBUILD.
nvidia-uvm.ko failed to build!
Makefile:217: recipe for target 'nvidia-uvm.ko' failed
make: *** [nvidia-uvm.ko] Error 1
make: Leaving directory '/var/lib/dkms/nvidia/340.108/build/uvm'

有点晕头转向的,貌似还得下载deepin15.11所用的linux内核源码编译一次?我傻了。。。。。求楼主解疑答惑,求楼主拯救。

Reply View the author
avatar
deepinuser17
deepin
2020-03-22 07:39
#74
https://bbs.deepin.org/post/185547
楼主大大,我运行.run文件后按照你说的选项选择,然后安装失败了,安装日志如下,麻烦看一下该如何解决,谢 ...

确认一下这些软件包是否已安装:
  1. linux-headers-amd64 linux-headers-deepin-amd64 gcc make dkms
Copy the Code


查看命令:
  1. dpkg -l <软件包名>
Copy the Code


根据出错信息,最可能的原因是dkms没有安装。如果以上任何软件包尚未安装,使用以下命令安装
  1. sudo apt -y install <软件包>
Copy the Code


然后,再试试。
Reply View the author
avatar
wispy
deepin
2020-03-22 21:23
#75
deepinuser17 发表于 2020-3-21 23:39
确认一下这些软件包是否已安装:

查看命令:

我之前按照按照官网提供方法被劝回了ubuntu,尝然后按照老哥方法安装了gcc、make、dkms、head就正常了。。。。。
这帖子不加精真说不过去
Reply View the author
avatar
舞天逸尘
deepin
2020-03-22 22:03
#76
反正我试了很多遍,N卡我是装不好,而且装不好后,还黑屏,出错误,重装系统。我的是老显卡GT730,就用管理器里面的闭源还行,以后换显卡,买A卡,开源用性能损失不大。
Reply View the author
avatar
jjdd9527
deepin
2020-03-30 22:39
#77
感谢楼主 我绝望了 我自己应该是搞不定了
Reply View the author
avatar
MIDAC
deepin
2020-03-31 04:46
#78
有的版本只支持显示 没声音
有的版本Steam打不开
需要多测几次
Reply View the author
avatar
jjdd9527
deepin
2020-03-31 19:35
#79
$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Reply View the author
avatar
jjdd9527
deepin
2020-03-31 19:36
#80
2020年 03月 31日 星期二 11:08:55 CST
Installing NVIDIA-Linux-x86_64-440.64 ....
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 440.64.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
NVIDIA-Linux-x86_64-440.64 is installed successfully
Reply View the author
4 / 7
To page