在深度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跑绝大多数的人工智能框架了。

相关推荐
潘yi.21 分钟前
Haproxy搭建web群集
运维·服务器·haproxy
阿蒙Amon36 分钟前
C#文件压缩与解压缩全攻略:使用ZipFile与ZipArchive实现高效操作
服务器·c#
我自飞扬临天下44 分钟前
JMeter接口自动化脚本框架
运维·jmeter·自动化
Johny_Zhao1 小时前
Burp Suite 企业级深度实战教程
linux·网络·网络安全·信息安全·云计算·shell·burp suite·系统运维·itsm
东临碣石821 小时前
【AI论文】论文转海报:迈向从科学论文到多模态海报的自动化生成
运维·人工智能·自动化
良辰美景好时光2 小时前
keepalived定制日志bug
linux·运维·bug
s_little_monster2 小时前
【Linux】网络--网络层--IP协议
linux·运维·网络·经验分享·笔记·学习·tcp/ip
forward_huan2 小时前
wsl安装linux
linux·wsl
西阳未落2 小时前
Linux(10)——第二个小程序(自制shell)
linux·运维·服务器
chiou7223 小时前
为 Ubuntu 安装的软件创建桌面图标
linux·ubuntu·lua