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
2 / 2
To page
inoubliab
deepin
2018-06-28 00:31
#21
https://bbs.deepin.org/post/159308
请教,是不是ubuntu的硬件兼容性要好一些?

ubuntu一样有雷,只是用的人多,好多雷别人都踩过了,有应对方案,查起来不费劲
Reply View the author
inoubliab
deepin
2018-06-28 00:44
#22
https://bbs.deepin.org/post/159308
debian拆包了,cuda是另外的,你安装nvidia-cuda-dev应该就能把cuda的东西都装上。 ...

对应的帮助文档不好找啊,我那几天折腾驱动找了好久,也没见过哪个帖子提过这个问题,不一直持续关注debian的发展,谁知道拆包了。

用户文档完善也是优点,有时软件做丑陋点可以,但是帮助文档的作用也影响很大。毕竟大多数人不是专家,keep it simple and stupid, 开发者就把用户当成SB,把软件做的易用性高,软件做的越SB也好。deepin的易用性已经不错了,但是深入去找相关文档真的很痛苦。
Reply View the author
justforlxz
deepin developers team
2018-06-28 00:59
#23
https://bbs.deepin.org/post/159308
对应的帮助文档不好找啊,我那几天折腾驱动找了好久,也没见过哪个帖子提过这个问题,不一直持续关注debi ...

你可以尝试弄一下… 然后更新到我们的百科上,别人就不用踩坑了。
Reply View the author
2 / 2
To page