最近看新闻华为的笔记本在适配deepin系统,所以特地安装试玩,确实比ubuntu漂亮些,且适配了大量常用应用,感觉可以不用切windows了。
由于要用显卡开发deep learning相关应用,所以首先得安装闭源驱动和cuda,下面是具体过程(dell G7,intel nvidia双显卡,如果是单nvidia显卡可能步骤略有不同,自己斟酌)。
install nvidia driver
禁用nouveau
禁用开源驱动nouveau,sudo dedit /etc/modprobe.d/blacklist.conf
,
blacklist nouveau
options nouveau modeset=0
执行,
sudo update-initramfs -u
重启系统,重启后查看是否生效,
lsmod |grep -i nouveau
下载nvidia闭源驱动
我下载的是VIDIA-Linux-x86_64-410.93.run
,因为考虑要安装cuda 10,所以选择了一个略高于官方推荐的版本,最好不要下载最新的驱动,有可能有Bug。
切到命令行模式,并关闭桌面程序服务,“Ctrl+Alt+F2”,进入tty2,然后登录系统,
sudo systemctl stop lightdm #or sudo service lightdm stop
安装驱动,
chmod +x NVIDIA-Linux-x86_64-410.93.run #赋予可执行权限
sudo ./NVIDIA-Linux-x86_64-410.93.run #安装驱动文件
安装完成后重启,执行nvidia-smi ,
发现这时候其实NVIDIA的显卡并没有工作,显存一点都没占用。主要是由于我的电脑是双显卡,这时候其实依然是intel集成显卡在工作,所以还要做下面的工作。
设置默认nvidia显卡工作
lspci | egrep 'VGA|3D'
执行上述命令获取nvidia显卡设备BusID,例子 01:00.0 填写PCI:1:0:0,
然后编辑 /etc/X11/xorg.conf,注意其中PCI部分填写PCI:1:0:0,
Section "Module"
Load "modesetting"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:X:X:X"
Option "AllowEmptyInitialConfiguration"
EndSection
编辑~/.xinitrc,
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
编辑/etc/lightdm/display_setup.sh
,
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
然后执行,
sudo chmod +x /etc/lightdm/display_setup.sh
编辑/etc/lightdm/lightdm.conf 在[Seat:*]行下添加,
display-setup-script=/etc/lightdm/display_setup.sh
重启动后,查看是否生效,
发现已经生效。
install cuda
安装完驱动,接下来安装cuda,安装过程不要选择装显卡驱动。
# install cuda
chmod +x cuda_10.0.130_410.48_linux.run
sudo ./cuda_10.0.130_410.48_linux.run --override
# bashrc
echo 'export PATH=/usr/local/cuda-10.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# cudnn
tar -xzvf cudnn-10.0-linux-x64-v7.6.2.24.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda-10.0/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda10.0/lib64/
sudo chmod a+r /usr/local/cuda10.0/lib64/libcudnn*
确认是否生效,编译cuda例子执行,结果正常。