GTX965M显卡安装cuda9踩过的坑
Tofloor
poster avatar
inoubliab
deepin
2018-06-25 00:12
Author
本帖最后由 inoubliab 于 2018-6-24 22:41 编辑

  • 前言
GTX965M显卡安装显卡驱动简直是个巨坑,去年安装deepin的时候就被坑过,最后没办法老实用回linux mint。前几天心血来潮要用deepin,安装了deepin又被显卡驱动坑了几天,主要的几个问题如下:
  • 大黄蜂解决方案在我的机器上无解,重启就会卡在logo界面。
  • 只安装源内的nvidia-driver又不能激活独显来渲染页面。
  • 即使安装了源内的nvidia-driver还需要进一步进行配置x才能激活独显来渲染图像。
  • 即使安装了源内的nvidia-driver并对其配置好了x,安装cuda9后会发现无法找到cuda driver,进而无法驱动cuda进行GPU的神经网络计算。
结合上面的现象以及相关帖子可以有如下血泪经验教训:
  • 源内的nvidia-driver或许阉割了cuda driver,因此真要安装cuda的话不能使用源内的nvidia-driver来激活独显。
  • GTX965M显卡安装显卡驱动真TM难。
终极解决方案就是安装nvidia官方驱动并且实现nvidia-prime。
  • 实现nvidia-prime
首先要感谢帖子https://bbs.deepin.org/post/149670#的作者踩过的坑。
开始进入正题,安装nvidia官方驱动并且实现nvidia-prime有以下几个步骤:
1.禁用nouveau驱动
打开bash输入下列命令:
  1. sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
Copy the Code
在文本编辑器中添加下列文本:
  1. blacklist nouveau
  2. options nouveau modeset=0
Copy the Code
保存上述文本后,继续在bash中输入下列命令:
  1. sudo update-initramfs -u
Copy the Code
最后执行下列命令重启电脑:
  1. reboot
Copy the Code
重启后输入下列命令:
  1. lsmod | grep nouveau
Copy the Code
没有任何信息输出则表示nouveau已经成功禁用。
2. 下载并安装nvidia官方驱动配置x来让nvidia官方驱动进行图形运算
前往nvidia官网下载驱动程序


下载路径默认为~/Downloads,执行下列命令前往该目录
  1. cd ~/Downloads
Copy the Code
对nvidia驱动增加可执行权限,我的驱动是NVIDIA-Linux-x86_64-390.67.run:
  1. chmod u+x NVIDIA-Linux-x86_64-390.67.run
Copy the Code
按键"CTRL + ALT + F2"进入tty2,关闭x server:
  1. sudo systemctl stop lightdm
Copy the Code
安装nvidia官方驱动:
  1. sudo ~/Downloads/NVIDIA-Linux-x86_64-390.67.run
Copy the Code
一路yes下来安装好nvidia官方驱动后,执行下列命令来重启系统:
  1. reboot
Copy the Code
重启后开始配置x,创建xorg.conf,bash中执行下列命令:
  1. sudo touch /etc/X11/xorg.conf
Copy the Code
执行下列命令来获取nvidia显卡的pci地址:
  1. lspci | grep -E "VGA|3D"
Copy the Code
我的显卡pci地址如下:

命令输出:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM206M [GeForce GTX 965M] (rev a1)

将nvidia显卡地址01:00:0 转化为格式1:0:0(#:#:#)
编辑xorg.conf:
  1. sudo vim /etc/X11/xorg.conf
Copy the Code
输入下列文本:
  1. Section "Module"
  2.     Load "modesetting"
  3. EndSection

  4. Section "Device"
  5.     Identifier "nvidia"
  6.     Driver "nvidia"
  7.     BusID "1:0:0"
  8.     Option "AllowEmptyInitialConfiguration"
  9. EndSection
Copy the Code
*注意:我的NVIDIA显卡的pci地址是01:00:0,所以上述文本中的BusID为转化后的1:0:0,如果要使用该解决方案你需要将BusID的值改为自己的nvidia显卡pci地址转化成#:#:#格式后的地址
输入结束后,按ESC再按:输入wq保存文本
创建display_setup.sh:
  1. sudo touch /etc/lightdm/display_setup.sh
Copy the Code
编辑display_setup.sh:
  1. sudo vim /etc/lightdm/display_setup.sh
Copy the Code
输入下列文本

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
输入结束后,按ESC再按:输入wq保存文本
给display_setup.sh增加可执行权限
  1. sudo chmod +x /etc/lightdm/display_setup.sh
Copy the Code
编辑lightdm.conf来关联display_setup.sh脚本
  1. sudo gedit /etc/lightdm/lightdm.conf
Copy the Code
[Seat:*]下新起一行输入
  1. display-setup-script=/etc/lightdm/display_setup.sh
Copy the Code
如:

保存文本后输入reboot命令重启系统
  1. reboot
Copy the Code
没有意外的话,此时nvidia官方驱动应该已经激活成功,nvidia-prime实现成功。安装效果可使用下列命令查看
  1. nvidia-settings
Copy the Code
nvidia X server Settings窗口打开显示如下

也可以使用下列命令查看GPU的使用情况
  1. nvidia-smi
Copy the Code
输出结果:

可见在显存中已经有了Xorg以及前面打开的nvidia-settings
3.安装cuda
篇幅受限,删了大段,参考帖子https://blog.csdn.net/zxlong7749/article/details/79712775
需要注意的是gcc和g++的版本,我把gcc和g++降到6.4才能安装
  1. sudo apt-get install gcc-6
  2. sudo apt-get install g++-6
  3. sudo rm -rf /usr/bin/gcc
  4. sudo ln -s /usr/bin/gcc-6 /usr/bin/gcc
  5. sudo rm -rf /usr/bin/g++
  6. sudo ln -s /usr/bin/g++-6 /usr/bin/g++
Copy the Code
第一次发帖没有markdown好痛苦


Reply Favorite View the author
All Replies
1 / 2
To page
sksweet
deepin
2018-06-25 01:23
#1
好贴,这个论坛中国人和老外都在找怎么安装nvidia-prime的方法。
Reply View the author
voderlxiao
deepin
2018-06-25 01:25
#2
好贴。最近在弄NVIDIA显卡,不过好的是大黄蜂安上了。试试弄一个NVIDIA prime
Reply View the author
inoubliab
deepin
2018-06-25 01:54
#3
https://bbs.deepin.org/post/159308
好贴,这个论坛中国人和老外都在找怎么安装nvidia-prime的方法。

被坑了无数次,然后在deepin的帖子里面找到了nvidia prime的搭建方法,我自己实践了下可行,成功激活独显来进行图形运算,整理了下权当抛砖引玉
Reply View the author
inoubliab
deepin
2018-06-25 01:55
#4
https://bbs.deepin.org/post/159308
好贴。最近在弄NVIDIA显卡,不过好的是大黄蜂安上了。试试弄一个NVIDIA prime

我的机器安装了很多遍大黄蜂各种方法都试尽了 还是无解 迫于无奈只好nvidia prime,在linux mint上显卡驱动直接就是nvidia prime安装的很好用,在deepin里面找个相关帖子太难了
Reply View the author
bnbvb
deepin
2018-06-25 02:54
#5
帮大忙了,我的xps 9570把nvidia-driver,cuda等都装好正常运行了,google找了两天也没搞定xorg,晚上试一试看能不能搞定。
Reply View the author
bnbvb
deepin
2018-06-25 07:01
#6
成功了,按照你们的帖子和arch wiki上终于配置好了xorg,之前即使没用独显渲染,也不影响使用cuda。不过现在还是打不开窗口特效模式,没有毛玻璃特效感觉怪怪的。
Reply View the author
inoubliab
deepin
2018-06-25 07:08
#7
https://bbs.deepin.org/post/159308
成功了,按照你们的帖子和arch wiki上终于配置好了xorg,之前即使没用独显渲染,也不影响使用cuda。不过现 ...

该解决方案在15.5系统上是有窗口特效的,在15.6系统上就没有了。我猜和深度显卡驱动管理器有关,打开15.6推送的深度显卡驱动管理器,你会发现默认选在intel图形显卡上面了,亦或是这是15.6的一个bug
Reply View the author
inoubliab
deepin
2018-06-25 07:17
#8
https://bbs.deepin.org/post/159308
该解决方案在15.5系统上是有窗口特效的,在15.6系统上就没有了。我猜和深度显卡驱动管理器有关,打开15.6 ...

我感觉可能造成的结果是,图形用intel图形显卡的运算来绘制,但是OpenGL以及AI的相关运算是N卡担当的,在15.5里面安装好了该方案,nvidia-smi里面还有个deepin-wm的进程在显存里。我现在也觉得图形不是N卡绘制的
Reply View the author
voderlxiao
deepin
2018-06-25 07:34
#9
https://bbs.deepin.org/post/159308
该解决方案在15.5系统上是有窗口特效的,在15.6系统上就没有了。我猜和深度显卡驱动管理器有关,打开15.6 ...

安装大黄蜂在选择系统界面按e在倒数第二行ro splash quiet 后面加acpi_osi=! acpi_osi="Windows 2009"再按f10启动。我之前也卡logo,这样之后就好了,之后进系统在grub里面改动这个就不用每次都输了。
Reply View the author
inoubliab
deepin
2018-06-25 07:49
#10
https://bbs.deepin.org/post/159308
安装大黄蜂在选择系统界面按e在倒数第二行ro splash quiet 后面加acpi_osi=! acpi_osi="Windows 2009"再 ...

谢谢老兄,有机会再安装deepin我试试。但是大黄蜂可能用起来不舒服,运行下OpenGL的程序或者tensorflow就要输入命令前缀optirun,对于我这种程序员经常调试程序的太麻烦了
Reply View the author
mi******[email protected]
deepin
2018-06-26 05:32
#11
太高深了,不明觉历。

请教楼主,我的GTX650M,开机后很快就发烫,有没有什么办法?
Reply View the author
inoubliab
deepin
2018-06-26 06:41
#12
https://bbs.deepin.org/post/159308
太高深了,不明觉历。

请教楼主,我的GTX650M,开机后很快就发烫,有没有什么办法? ...

单单显卡热?应该是主板发热严重?
Reply View the author
mi******[email protected]
deepin
2018-06-26 21:08
#13
本帖最后由 mycctv 于 2018-6-26 13:09 编辑
https://bbs.deepin.org/post/159308
单单显卡热?应该是主板发热严重?

这个问题太专业了,说实话,我分不清楚是显卡还是主板。
但是用deepin后不久风扇会猛转,温度会很高,有点烫手的感觉。
但用windows很久都不会出现风扇猛转,温度提得很高的感觉。
Reply View the author
mxdlzg
deepin
2018-06-27 06:11
#14
我的方法就比较暴力了,装源内的低级驱动带大黄蜂,一点问题没有
cuda9需要新驱动对吧,那好,缺哪个so我直接解压run文件复制过来,缺啥补啥,少啥添啥

cuda9 大黄蜂 驱动完美运行
Reply View the author
inoubliab
deepin
2018-06-27 18:39
#15
本帖最后由 inoubliab 于 2018-6-27 11:53 编辑
https://bbs.deepin.org/post/159308
这个问题太专业了,说实话,我分不清楚是显卡还是主板。
但是用deepin后不久风扇会猛转,温度会很高,有点 ...

应该是驱动兼容性问题,各种驱动各种品牌的硬件原件,适配起来很难,工作量很大。windows用户多对各种硬件适配的好,驱动足够多,所以能完美驱动你主板上插的各种设备,而deepin的话可能就使用了大众点的驱动,对各种品牌的元件没有深入适配对应驱动,致使底层调用硬件设备不能像windows那样能掌握到一个平衡点吧,另外操作系统内进程的任务强度直接决定了cpu、GPU、硬盘的工作强度,工作强度越大,各个元件运行的频率越高,自然功耗就上去了,产生的热量也就多了。但是linux的驱动最好不要去搞,免得把系统搞挂了。确实热的话拿个风扇吹着吧
Reply View the author
inoubliab
deepin
2018-06-27 18:49
#16
本帖最后由 inoubliab 于 2018-6-27 10:51 编辑
https://bbs.deepin.org/post/159308
我的方法就比较暴力了,装源内的低级驱动带大黄蜂,一点问题没有
cuda9需要新驱动对吧,那好,缺哪个so我直 ...

厉害,学到了。但是我还是考虑用mint或者ubuntu或者manjora,使用成熟稳定的方案,减少折腾的时间,工作效率也就高了
Reply View the author
justforlxz
deepin developers team
2018-06-27 19:03
#17
其实你不需要自己安装Nvidia.run ,重点是那个xorg.conf配置文件,装仓库里的xserver-xorg-video-nvidia以后,再写好配置文件,重启以后就是使用nvidia了。使用nvidia.run来安装,会永久的破坏部分链接,使用仓库里的nvidia,还能跟踪一下文件,,
Reply View the author
inoubliab
deepin
2018-06-27 19:34
#18
https://bbs.deepin.org/post/159308
其实你不需要自己安装Nvidia.run ,重点是那个xorg.conf配置文件,装仓库里的xserver-xorg-video-nvidia以 ...

问题在于安装源内的nvidia-driver,貌似该驱动里面不含cuda deriver,致死cuda歇菜,运行cuda samples会出同一个日志,大意是cuda version无,cuda runtime version 无,cuda driver 无,安装nvidia-driver我试过不下5次,解决不了。最后采用了nvidia官方闭源驱动,结果没有该问题,cuda9驱动成功,迫不得已最后选择了闭源驱动
Reply View the author
justforlxz
deepin developers team
2018-06-27 22:43
#19
https://bbs.deepin.org/post/159308
问题在于安装源内的nvidia-driver,貌似该驱动里面不含cuda deriver,致死cuda歇菜,运行cuda samples会 ...

debian拆包了,cuda是另外的,你安装nvidia-cuda-dev应该就能把cuda的东西都装上。
Reply View the author
mi******[email protected]
deepin
2018-06-27 22:56
#20
https://bbs.deepin.org/post/159308
厉害,学到了。但是我还是考虑用mint或者ubuntu或者manjora,使用成熟稳定的方案,减少折腾的时间,工作效 ...

请教,是不是ubuntu的硬件兼容性要好一些?
Reply View the author
1 / 2
To page