在深度Linux (Deepin) 20中安装Nvidia驱动

文章创作不易,麻烦大家点赞关注收藏一键三连。


在Deepin上面跑Tensorflow, pytorch等人工智能框架不是一件容易的事情。特别是如果你要使用GPU,就得有nvidia的驱动。默认情况下Deepin系统自带的是nouveau开源驱动。这是没办法用tensorflow的。下面内容是如何在Deepin 20.3中安装nvidia驱动。

下载驱动

首先仍然是下载驱动。打开 https://www.nvidia.cn/geforce/drivers/,之后在列表里面查找你的显卡和平台。这里特别要注意的是操作系统一定要选择Linux 64-Bit。语言选中文或者英文都无所谓。你后面安装的时候会发现你选了中文也是英文安装界面。

选好以后点"开始搜索",找到对应的驱动就可以下载了。后面的步骤比较直接我就不截图了。

准备工作

我们假设下载以后是在~/Downloads目录下。安装之前检查一下显卡驱动。最简单的办法是打开深度应用商店,之后搜索并安装显卡驱动管理器(Graphics Driver Manager)。

安装好以后打开。如果你的驱动选择不是第一个集显驱动,那么把驱动切换成集显驱动。

修改好以后还需要安装几个必要的包:

sudo apt install pkg-config libglvnd-dev libglvnd-core-dev

之后把系统重启以后到grub界面按e键进行编辑。找到initrd那一行,在后面(不要换行)加上以下内容:

nouveau.modeset=0 init 3 

熟悉grub的读者可能知道init 3意思是把Linux启动到命令行下面。这主要是因为nvidia驱动不能在x server启动的情况下安装。

文本模式下安装

启动到文本模式下以后,输入用户名和密码之后准备安装(下面例子中我的安装文件名称是NVIDIA-Linux-x86_64-495.44.run):

$ cd ~/Downloads/ $ chmod +x NVIDIA-Linux-x86_64-495.44.run  $ ./NVIDIA-Linux-x86_64-495.44.run

配置grub

安装好以后输入reboot重启。重启其实默认系统还是会启动nouveau。为了把nouveau禁用掉,进入到/etc/default/grub.d下面,找一下有没有类似10_deepin.cfg的。如果有的话修改一下,在里面内容加上"nouveau.modeset=0"。比如我的修改过以后就是:

GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT DEEPIN_GFXMODE=\$DEEPIN_GFXMODE nouveau.modeset=0"

之后更新grub:

$ sudo update-grub

再重启登录以后,在命令行输入nvidia-smi就可以看到nvidia驱动已经被正确安装了。

安装CUDA

安装CUDA之前,首先安装一下build-essential

 sudo apt-get install build-essential

这里以CUDA 11.2为例,首先还是下载:https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Linux\&target_arch=x86_64\&target_distro=Debian\&target_version=10\&target_type=runfilelocal

可以看到在网页下面有Base Installer的指令。按照指令首先下载:

wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run

下载好以后检查一下是否有执行权限,正常情况下是应该有的。如果没有可以chmod +x加上以后sudo运行。

运行以后第一个屏幕是这样的:

在光标处打字输入accept。之后选择组件:

默认情况下驱动(Driver)是选中的,因为我们已经安装好了驱动,所以没必要在这里选择,把光标用方向键移动到Driver那一行,然后按空格键取消选择(反选以后的状态就像上面图片中一样),之后光标移动到Install按回车。

安装好的文件夹在/usr/local/cuda-11.2(如果版本不同路径名称也会有差异).

之后用root身份编辑/etc/profile文件,将/usr/local/cuda-11.2/bin加入PATH环境变量中,将/usr/local/cuda-11.2/lib64加入LD_LIBRARY_PATH环境变量中。比如我的/etc/profile开头我改成了这样:

if [ "`id -u`" -eq 0 ]; then  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/cuda-11.2/bin"else  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin:/usr/local/cuda-11.2/bin"fiexport PATH
LD_LIBRARY_PATH="/usr/local/cuda-11.2/lib64"export LD_LIBRARY_PATH

之后可以重启一下机器让配置生效。

如果要验证是否安装正确,可以将cuda目录下的samples拷贝出来进行构建(build)。如果能够构建成功不出错那么就说明安装成功了:

$ cp /usr/local/cuda-11.2/samples/ ~/samples -Rf$ cd ~/samples$ make

编译以后的二进制文件应该在~/samples/bin/x86_64/linux/release下面。可以进一步尝试运行一下这些二进制文件。

安装nvidia-docker

如果要在docker里面跑一些深度计算,那么需要安装nvidia-docker。首先还是要安装docker。Deepin自带的软件源里面已经有docker了。所以可以直接用apt进行安装:

$ sudo apt install docker-ce docker.io

之后启动docker服务:

$ sudo systemctl start docker

如果不想老是sudo,可以当前用户加入docker用户组:

$ sudo usermod -aG $USER

上面命令里面可以把$USER换成你需要的用户名。运行以后需要注销一次再重新登录以使得变更生效。

之后运行下面的命令安装nvidia-docker:​​​​​​​

$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -$ curl -s -L https://nvidia.github.io/nvidia-docker/debian10/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list  $ sudo apt update && sudo apt install -y nvidia-container-toolkit

到这里所有安装就完成了。后面就应该可以用GPU跑绝大多数的人工智能框架了。

相关推荐
zyhhsss31 分钟前
Ubuntu&Windows双系统安装
linux·运维·ubuntu
Marilynhom1 小时前
CentOs9新手教程
linux·centos
nfenghklibra1 小时前
Linux-CentOS的yum源
linux·yum
会飞的爱迪生2 小时前
mac和linux传输文件
linux·运维·macos
流星白龙2 小时前
【Linux】23.进程间通信(2)
linux·数据库·microsoft
慕雪华年2 小时前
【Linux】CentOS8虚拟机的基本环境配置
linux·运维·服务器
Allen_LVyingbo3 小时前
三甲医院大型生信服务器多配置方案剖析与应用(2024版)
运维·服务器·数据库
@_@哆啦A梦3 小时前
Nginx知识
运维·nginx
lljss20204 小时前
arm-linux-gnueabihf安装
linux·运维·arm开发