本教程参考:http://blog.csdn.net/fdqw_sph/article/details/78745375,在此表示感谢!
首先需要吐槽的是,nvdida真的so fuck!整整浪费了我三天时间,三天啊!!!
本教程只针对小米笔记本13.3(Intel+mx150独显双显卡),其他笔记本安装方法可以参考本方案。
下面看教程:
第一步 安装NVIDIA驱动和大黄蜂bumblebee
1. 检查自己的GPU是否是CUDA-capable
xtu@xtu-Precision-Tower-7910:~$ lspci | grep -i nvidia 03:00.0 VGA compatible controller: NVIDIA Corporation Device 1b00 (rev a1) 03:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)
下载NVIDIA-Linux-x86_64-384.98.run
网址http://www.geforce.cn/drivers/results/123918
下载cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb,注意要下载deb文件
网址https://developer.nvidia.com/cuda-downloads
3.安装nvidia驱动
这里遇到了很多坑,有的比较独特,我在网上很难查到
3.1 禁用nouveau
ubuntu自带的nouveau驱动会影响cuda安装,不当操作会导致黑屏和登陆循环。 终端运行:
lsmod | grep nouveau如果有输出则代表nouveau正在加载。则需要禁用nouveau,在
/etc/modprobe.d
中创建文件
blacklist-nouveau.conf,再用getid打开
cd /etc/modprobe.d
/etc/modprobe.d$ sudo touch blacklist-nouveau.conf
sudo gedit blacklist-nouveau.conf
在文件中输入以下内容并保存:
blacklist nouveau options nouveau modeset=0
之后更新
sudo update-initramfs -u
lsmod | grep nouveau
这种方式也可能不能彻底禁用nouveau,在此基础上可以移除以下文件:nouveau.ko;nouveau.ko.org,此文件一般是隐藏的具体操作
cd /lib/modules/4.4.0-83-generic/kernel/drivers/gpu/drm/nouveau
sudo rm -rf nouveau.ko
sudo rm -rf nouveau.ko.org
再更新
sudo update-initramfs –u
此时重启,再用终端检测一下
lsmod | grep nouveau
没有输出即为禁用成功。
Ctrl+Alt+F2 进入字符界面,关闭图形界面
sudo service lightdm stop
cd 至 存放 NVIDIA-Linux-x86_64-384.98.run 驱动的位置
sudo sh
NVIDIA-Linux-x86_64-384.98.run
各种yes。。。
5)安装大黄蜂bumblebee
sudo apt install bumblebee
6)检查驱动是否安装成功
分别运行nvidia-smi,optirun nvidia-smi
显示上图则表示安装成功。
到此,可以使用深度提供的系统备份工具,进行系统备份了,留作下一步用!
第二步 安装cuda-9.0
这个是血的经验啊!根据linux没有注册表的性质,我采用的方法是,先正常安装cuda,再打包备份,之后通过系统还原,将装好驱动的系统还原到笔记本上,再将备份的cuda文件copy至安装位置。
具体操作步骤如下:
1.安装cuda-9.0
使用nvidia官方提供的方法
|
2.还原操作系统,并将cuda的两个备份文件copy至/usr/local路径下。
3.配置环境变量
sudo vi /etc/profile
在最后面加入两行代码,如果你还不会用vi进行编辑,请百度
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
4.重启,sudo reboot,大功告成!
如果不放心,可以到/usr/local/cuda-9.0/simples找几个例子编译,运行试试。
注意运行的时候,程序前面加 optirun,调用nvidia显卡执行程序。