因为想要使用笔记本学习kaldi,需要使用Ubuntu搭建环境。
1. 笔记本参数
当前使用的笔记本型号是雷神911Target曜蓝版的电脑,但本人鉴于该笔记本独显GTX1050Ti显卡性能不弱,想用于kaldi神经网络训练,笔记本具体参数如下图:
2. 系统和工具版本
系统:Ubuntu 18.04 (新电脑用新系统,旧的内核对于新的设备支持效果一般)
显卡驱动:nvidia-driver-415
CDUA:CDUA 10.0 (文件名:cuda_10.0.130_410.48_linux.run)
cudnn:cudnn-10.0-linux-x64-v7.4.1.5.tgz
3. Ubuntu安装方法
Ubuntu安装方法与他人博客基本一致,由于笔记本出厂已经预装Windows10系统,只需在此基础上安装Ubuntu 18.04系统。
具体安装方法请参照:UEFI引导双硬盘Win10+Ubuntu18.04双系统 -
3.1 可能存在问题
安装完Ubuntu18.04后可能会出现开机选择进入系统后黑屏的情况,无法进入Ubuntu系统
3.2 问题的解决方法
黑屏问题的解决方法操作如下:
1. 开机进入启动界面时,让光标停在Ubuntu上,按e键进行编辑,在倒数第二行quiet slash后添加nomodeset
改变之后为:quiet slash nomodeset (该方法只是暂时禁用Nouveau显卡驱动)
2. 按F10进入系统
3. 进入系统之后可以使用 Ctrl+Alt+T 打开命令行窗口,输入 sudo gedit /etc/default/grub 编辑 grub 文件,找到GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”这一行,将其改成:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset”
保存后,更新grub配置:
sudo update-grub
至此可以重启正常进入Ubuntu系统了。不过很多人会发现一个非常让人头痛的问题,屏幕的亮度无法调节且为最高,长时间使用对眼睛伤害极大,我们必须要解决这个Bug,也就是显卡驱动的问题。
4. 显卡驱动安装
Ubuntu系统对于双显卡的支持不是很好,特别是笔记本。
4.1 准备工作
禁用nouveau
Ubuntu系统集成的显卡驱动程序是nouveau,我们需要先使用如下方法将nouveau从linux内核卸载掉才能安装NVIDIA官方驱动。
因为nouveau驱动的影响,ubuntu安装后可能无法登入桌面,所以在ubuntu系统启动显示登录界面后,需要按ctrl+alt+F1进入tty文本模式进入下面的操作(能进入系统也可以进入系统后在命令行窗口内操作)。
由于blacklist.conf文件的属性不允许修改。所以需要先修改文件属性。
查看属性:
ll /etc/modprobe.d/blacklist.conf
修改属性:
sudo chmod 666 /etc/modprobe.d/blacklist.conf
用gedit编辑器打开:
sudo gedit /etc/modprobe.d/blacklist.conf
在文件末尾添加如下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
修改并保存文件后,记得把文件属性复原:
sudo chmod 644 /etc/modprobe.d/blacklist.conf
再更新一下内核:
sudo update-initramfs -u
修改后需要重启系统。
重启系统确认nouveau是否已经被屏蔽掉,使用lsmod命令查看:
lsmod | grep nouveau
显示空白就屏蔽成功,lsmod命令用于显示已经加载到内核中的模块的状态信息,参见《lsmod命令》。
4.2 驱动安装步骤
因为笔记本双显卡中不仅存在NVIDIA显卡,还有一块集成intel显卡能正常驱动,所以经过上一步禁用nouveau驱动后,再次重启,系统使用集成显卡。
Nvidia显卡驱动安装的方法是添加ppa源,同时在nvidia驱动官网上查看自己显卡驱动的最新版本号(不需要下载)。
使用如下命令添加Graphic Drivers PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
寻找合适的驱动版本:
ubuntu-drivers devices
可以看到推荐的版本为:nvidia-driver-415
具体安装NVIDIA driver驱动:
记住给出的推荐驱动型号(带recommended选项的驱动)。
按 ctrl+alt+F3 进入tty文本模式
安装nvidia driver,这一过程是需要联网的。如果网速度不好,可能要花比较长的时间。
安装完成后重启:
sudo apt-get install nvidia-driver-415
sudo reboot
重启系统后,执行下面的命令查看驱动的安装状态显示安装成功:
sudo nvidia-smi
如果显卡安装完成后系统软件中有 NVIDIA X Server Settings,那么恭喜你安装显卡驱动已经没问题了。
划重点:还记得在 3.2 节中的操作吗?需要还原!
重启系统后,开机进入启动界面时,让光标停在Ubuntu上,按e键进行编辑,在倒数第二行quiet slash后删除nomodeset,然后按F10进入系统,如果能够进入系统,那么你的独显完美搞定,不过后续还要操作下面命令:
进入系统之后可以使用 Ctrl+Alt+T 打开命令行窗口,输入 sudo gedit /etc/default/grub 编辑 grub 文件,找到GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset”这一行,将其改成:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
保存后,更新grub配置:
sudo update-grub
至此可以重启正常进入Ubuntu系统了。
5. cuda 10.0 和 cudnn 安装
5.1 cuda 10.0安装
CUDA Toolkit 10.0 Download | NVIDIA Developer下载cuda 10.0 的 runfile安装包。
cd切换到下载的文件目录下进行安装:
sudo sh cuda_10.0.130_410.48_linux.run --override
启动安装程序,一直按空格到最后,输入accept接受条款。
输入n不安装nvidia图像驱动(显卡驱动安装时已经存在)。
输入y安装cuda 10.0工具 。
回车确认cuda默认安装路径:/usr/local/cuda-10.0。
输入y用sudo权限运行安装,输入密码 。
输入y安装指向/usr/local/cuda的符号链接 。
输入y安装CUDA 10.0 Samples,以便后面测试 。
回车确认CUDA 10.0 Samples默认安装路径。
等待安装完成。
环境变量
设置环境变量,终端输入:
sudo gedit /etc/profile
在末尾加入:
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存后,创建链接文件(这是一个新建的链接文件):
sudo gedit /etc/ld.so.conf.d/cuda.conf
按a进入插入模式,增加下面一行:
/usr/local/cuda/lib64
按esc退出插入模式,按保存退出 。
最后在终端输入:
sudo ldconfig #使链接生效
cuda测试
切换到CUDA 10.0 Samples默认安装路径(NVIDIA_CUDA-10.0_Samples文件夹),终端输入:
sudo make all -j 6 #(6核)
需要几分钟的编译时间。
完成后继续向终端输入:
cd bin/x86_64/linux/release
./deviceQuery
下面就是正常安装后的显示结果:
附加问题的操作:
问题:命令行输入:nvcc --version,说未安装nvcc:
解决办法是重新配置一下环境变量:
1. 查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果有,进入下一步。
2. 添加环境变量,打开~/.bashrc ,添加环境变量
export PATH=$PATH:/usr/local/cuda/bin。
3. 在terminal中输入nvcc --version可以看到显示为10.0版本了。
5.2 cudnn安装
cuDNN下载网址:NVIDIA cuDNN | NVIDIA Developer
需要注册账号并填写简短的调查信息,之后按照提示下载相应的版本即可!我下载的安装包是cudnn-10.0-linux-x64-v7.4.1.5.tgz
下载完后进入相应的下载目录,按照如下安装说明执行即可!
tar -zxvf cudnn-10.0-linux-x64-v7.4.1.5.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
6. 总结
笔记本双显卡双系统安装Ubuntu存在很多bug,本人在试了许多坑之后记录成功的步骤,参照了许多前辈们的博客文章,旨在提供给和我一样需求的朋友完成相关安装。
重点说明:新的笔记本硬件最好不要去安装旧系统,旧系统对于新硬件支持有限,在安装过程中出现其他小的问题可以百度完成,谨记新设备安装新系统新软件。