游戏本ubuntu21.04装机配置pytorch环境大全
- ubuntu更换镜像源
- 0.删除之前的内容
- 1.开始的ubuntu20.04尝试
- 2.转换思路,改变系统的版本,使用ubuntu18.04
- 3.再战ubuntu20.04
- 4.使用ubuntu21.04顺利安装上
- 5.安装nvidia驱动之后打开笔记本电脑显示Failed to start Load/Save Screen Backlight Brightness
- 解决方案1
- 解决方法2
- 6.安装cuda
- 7.安装cudnn-v8.0.5
- 8.配置环境之后外接显示屏无法显示问题解决
- 错误:nvidia-settings:ERROR: Unable to load info from any available system
- 安装成功
- 9.ubuntu关上笔记本盖子的时候不让它自动待机
最近买了一台戴尔g15 5515的笔记本电脑进行搭深度学习的环境,首先介绍以下这台电脑的配置
这台电脑的特点在于有一个集显和一个独显。
初始化命令:dconf reset -f /
ubuntu更换镜像源
https://www.zhihu.com/question/515638215
0.删除之前的内容
如果之前安装过ubuntu占用磁盘的情况下,可能会出现bios没有办法读取磁盘中内容的情况,此时需要先将之前占用的内容删除掉
删除之前磁盘占用的内容
如果有些恢复分区无法被删除,参考下面的文章
恢复分区无法被删除
如果windows和ubuntu双系统,可以进入windows将ubuntu系统盘删除,然后就可以在bios检测到ubuntu启动盘,如果是ubuntu删除windows,目前没找到合适的方法(启动界面检测不到windows启动盘的情况),目前只能是下载dgdos将硬盘全部格式化,然后重装windows,再装ubuntu。
具体的操作步骤可以参考文章格式化硬盘
接下来再进入bios的时候常按f12进入bios系统即可
注意这里的根目录内容之下一定要有50g,否则下载空间根本不够用,之前分配了15个g,中途不够用
我的分配区域
Swap(相当于电脑内存):逻辑分区、大小设置为电脑内存大小16G
16G=16384MB
/boot(引导分区):主分区:大小设置为480M;
51400 主分区 /
260314 逻辑分区 /home (剩下全给)
1.开始的ubuntu20.04尝试
插播一下,安装ubuntu20.04可能一片黑屏
Minimal BASH-like line editingis supported.解决方法
这里是由于选择最小安装造成的,实验了一下,如果安装的时候选择正常安装,则不会出现类似的问题
这里发现使用ubuntu20.04的时候,如果安装完对应的nvidia-370.63.04显卡驱动之后,重新开机屏幕会陷入黑屏之中,屏幕的左上角有一个光标不断地闪烁。
经过反复地尝试之后,我感觉问题出在集显和独显之上,由于集显在运转的时候不支持nvidia的驱动(集显为amd显卡),所以这里尝试着变换了一下思路,使用手动变换到独立显卡再尝试重新开机。
看了网上的很多教程,都是使用nvidia-settings进行变换的,这里由于nvidia-settings的配置无法打开,所以考虑使用命令行进行切换nvidia的内容
具体的操作命令如下所示:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get install nvidia-driver-470-server nvidia-settings nvidia-profiler
然后进行显卡的切换
sudo prime-select query#查看当前使用的显卡
sudo prime-select nvidia#转换为对应的nvidia显卡
sudo prime-select intel#转换为对应的intel显卡
发现这里转换为nvidia显卡的时候屏幕黑屏,但是nvidia-smi可以正常运行,转换为intel显卡的时候屏幕能正常显示,但是nvidia-smi无法正常运行
2.转换思路,改变系统的版本,使用ubuntu18.04
使用ubuntu18.04版本的系统之后更惨,这里的gcc编译器装不上去,导致无法安装nvidia-470.63.04的驱动,使用ubuntu18.04宣告失败
3.再战ubuntu20.04
接下来我再次尝试了几种方法,一个是使用命令行进行安装nvidia驱动的方法:
ubuntu-drivers devices # 查询所有ubuntu推荐的驱动
sudo apt-get install nvidia-driver-470
发现这种安装方式与之前使用手动安装的操作结果相同,都是如果更换nvidia显卡之后进入黑屏模式但是nvidia-smi正常,如果更换intel显卡之后屏幕显示正常但是nvidia-smi不正常
接下来的尝试都无果,不得不切换到原先的部分重新进行操作
4.使用ubuntu21.04顺利安装上
装入ubuntu21.04对应系统的网址
这里我尝试了一下ubuntu21.10,发现安装失败,最主要是ubuntu安装完成之后输入nvidia-settings无法出现相应的那个选项。尝试一下ubuntu22.04版本。
然后装入470.63.04驱动
(如果这里是ubuntu21.10装470.129.06驱动)
这里装入是使用的手动装入的方法,先屏蔽原先的显卡内容
禁用nouveau
打开编辑配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在最后一行添加:
blacklist nouveau
这一条的含义是禁用nouveau第三方驱动,之后也不需要改回来。
由于nouveau是构建在内核中的,所以要执行下面命令生效:
sudo update-initramfs -u
最后使用命令检测显卡驱动是否被删除
lsmod | grep nouveau
如果没被删除需要重启一波电脑
安装对应的nvidia-470.63.01驱动
注意这里安装驱动的过程需要在tty1的界面或者tty2的界面之中进行
停止可视化桌面
为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。最简单的方法是使用telinit命令更改为运行级别3。执行以下linux命令后,显示服务器将停止,因此请确保在继续之前保存所有当前工作(如果有)
(提前把安装包放在用户文件夹之中,然后进入命令行界面):
sudo telinit 3
之后会进入一个新的命令行会话,使用当前的用户名密码登录
之后可以进入tty1的界面进行安装驱动
安装驱动
sudo apt-get update
sudo apt-get install gcc
如果这里安装gcc报错,可以参考下面的步骤
1.使用如下命令修改源
sudo gedit /etc/apt/sources.list
2.在打开的文件中添加如下源(在最后面加上这两行即可)
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
3.使用如下命令更新源
sudo apt update
更新源的时候如果报错,使用下面的命令
debian更新清华源 GPG 错误:由于没有公钥,无法验证下列签名
apt-get update
正在读取软件包列表... 完成
W: GPG 错误:https://mirrors.tuna.tsinghua.edu.cn buster InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY DCC9EFBF77E11517
W: GPG 错误:https://mirrors.tuna.tsinghua.edu.cn buster-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138
W: GPG 错误:https://mirrors.tuna.tsinghua.edu.cn buster-backports InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138
W: GPG 错误:https://mirrors.tuna.tsinghua.edu.cn buster/updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY AA8E81B4331F7F50 NO_PUBKEY 112695A0E562B32A
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A##(此处换成错误的签名)
然后调用make安装
sudo apt-get install make
给驱动文件增加可执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
然后执行安装:
sudo sh ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files
这里推荐的组合为470.63.01+cuda11.1+cudnn8.2.0
如果使用ubuntu22.04的话安装较方便,nvidia为550
ps:nvidia-settings在21.04系统之中也是可以使用的
我下的是cuda11.1.0以及cudnn8.2.1,cudnn8.2.1选cudnn library for linux
(下载完了之后的版本为cudnn-11.3)
安装完成之后,重启笔记本电脑会报以下的错误
[SOLVED] Failed to start Load/Save Screen Backlight Brightness
报错内容以及解决方案
[SOLVED] Failed to start Load/Save Screen Backlight Brightness
5.安装nvidia驱动之后打开笔记本电脑显示Failed to start Load/Save Screen Backlight Brightness
解决方案1
添加下列内容到/etc/default/grub
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_backlight=vendor"
更新grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
接下来发现亮度无法能够正常的进行调节,这里再一次调整/etc/default/grub的对应文件
将
GRUB_CMDLINE_LINUX=""
改为
GRUB_CMDLINE_LINUX="quiet acpi_osi=Linux acpi_backlight=vendor"
这里有可能重启之后再次报错,
Failed to start Load/Save Screen Backlight Brightness
此时将上面更新的grub内容
sudo grub-mkconfig -o /boot/grub/grub.cfg
或者
sudo update-grub -u
多更新几遍即可
之前保存了一遍没用,连续保存三次后成功
后来发现上面的方法有时候失灵,
(第一段引入将
GRUB_CMDLINE_LINUX=""
改为
GRUB_CMDLINE_LINUX="quiet acpi_osi=Linux acpi_backlight=vendor"
之后接着操作,又引入了下面的方法
解决方法2
1、编写一个开机启动服务
sudo vi /etc/systemd/system/startup_brightness.service
文件内容如下所示:
[Unit]
Description=Dummy service for attempting to start the problematic amdgpu_bl0 service[Service]
Type=oneshot
ExecStart=systemctl start systemd-backlight@backlight:amdgpu_bl0[Install]
WantedBy=multi-user.target
2、让服务开机启动
sudo systemctl enable --now startup_brightness
关机重启,屏幕亮度能够自动保存
后续:发现这里报错主要原因由于u盘仍然插在笔记本电脑上面,如果拿掉u盘的情况下就可以成功进入系统???
6.安装cuda
接下来查看cuda的安装,注意安装cuda之前最好先查看一下pytorch的对应版本,从而能够保证pytorch与cuda的版本适配
ubuntu cuda和cudnn的配置
对应的下载命令可以在下面查找到
对应的下载命令
如果安装cuda11.1.0的情况下,需要到历史版本之中寻找
注意安装需要两个命令
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
然后进行安装
sudo sh cuda_11.1.0_455.23.05_linux.run
这里别漏输了
安装cuda配置的时候,会报错
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-11.1/
Samples: Installed in /home/xiaoguzai/, but missing recommended librariesPlease make sure that- PATH includes /usr/local/cuda-11.1/bin- LD_LIBRARY_PATH includes /usr/local/cuda-11.1/lib64, or, add /usr/local/cuda-11.1/lib64 to /etc/ld.so.conf and run ldconfig as root
......
Logfile is /var/log/cuda-installer.log
关键的内容需要到/va/log/cuda-installer.log之中去查找,进入到了log内容之中查看,发现缺少了几个库
[WARNING]:Missing recommended library:libGLU.so
[WARNING]:Missing recommended library:libX11.so
[WARNING]:Missing recommended library:libXi.so
[WARNING]:Missing recommended library:libXmu.so
[WARNING]:Missing recommended library:libGL.so
缺少的库需要安装
sudo apt-get install libGLU-dev libX11-dev libXi-dev libXmu-dev libGL-dev
如果这里报错的话需要指令
sudo apt --fix-broken install libtinyxml2.6.2v5
注意如果找不到软件包的时候,需要把库改成小写的英文字母
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
如果还有报错内容为
[WARNING]:Cannot find manpages to install
报错:Error: unsupported compiler: 11.2.0. Use --override to override this check.
更换版本,执行下面的指令
sudo apt install gcc-8 g++-8
sudo ln -s /usr/bin/gcc-8 /usr/local/bin/gcc
sudo ln -s /usr/bin/g++-8 /usr/local/bin/g++
测试安装是否成功时,执行以下几条命令:
cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
结果这里发生报错:
g++ no such file or directory
此时需要安装g++(有可能也需要安装cmake)
sudo apt-get install g++
正常情况下输出
正常情况下输出:./deviceQuery Starting...CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: "GeForce RTX 2070"CUDA Driver Version / Runtime Version 10.0 / 10.0CUDA Capability Major/Minor version number: 7.5Total amount of global memory: 7950 MBytes (8335982592 bytes)(36) Multiprocessors, ( 64) CUDA Cores/MP: 2304 CUDA CoresGPU Max Clock rate: 1620 MHz (1.62 GHz)Memory Clock rate: 7001 MhzMemory Bus Width: 256-bitL2 Cache Size: 4194304 bytesMaximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layersMaximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layersTotal amount of constant memory: 65536 bytesTotal amount of shared memory per block: 49152 bytesTotal number of registers available per block: 65536Warp size: 32Maximum number of threads per multiprocessor: 1024Maximum number of threads per block: 1024Max dimension size of a thread block (x,y,z): (1024, 1024, 64)Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)Maximum memory pitch: 2147483647 bytesTexture alignment: 512 bytesConcurrent copy and kernel execution: Yes with 3 copy engine(s)Run time limit on kernels: YesIntegrated GPU sharing Host Memory: NoSupport host page-locked memory mapping: YesAlignment requirement for Surfaces: YesDevice has ECC support: DisabledDevice supports Unified Addressing (UVA): YesDevice supports Compute Preemption: YesSupports Cooperative Kernel Launch: YesSupports MultiDevice Co-op Kernel Launch: YesDevice PCI Domain ID / Bus ID / location ID: 0 / 1 / 0Compute Mode:< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS
说明安装成功
注意这里不需要特别地去安装python环境,因为ubuntu在安装的过程中自带了python的环境
7.安装cudnn-v8.0.5
到官网nvidia-cudnn官网找寻需要下载的cudnn内容
下载完成之后进行解压
tar -zxvf cudnn-10.0-linux-x64-v7.4.2.24.tgz
然后进行复制
cp cuda/lib64/* /usr/local/cuda-11.1/lib64/
cp cuda/include/* /usr/local/cuda-11.1/include/
最后进行验证
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
接下来安装cudnn,安装完成之后
cat /usr/local/cuda/include/cudnn_version.Pool h | grep CUDNN_MAJOR -A 2
判断是否成功安装python3或者python之后,发现python3能够成功,但是python不能成功,此时需要python3链接到python。
sudo ln -s /usr/bin/python3 /usr/bin/python
安装pip
sudo apt-get install python3-pip
然后再去pytorch的官网安装pytorch的对应版本
jupyter notebook与python pip安装的库文件不同的原因
jupyter安装
sudo snap install jupyter
jupyter notebook与python pip安装的库文件不同
在python下面输出的对应路径内容
import sys
sys.path
['', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/xiaoguzai/.local/lib/python3.9/site-packages', '/usr/local/lib/python3.9/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.9/dist-packages']
而在jupyter notebook下面输出的对应内容
import sys
sys.path
import syssys.path['/home/xiaoguzai/程序','/snap/jupyter/6/lib/python37.zip','/snap/jupyter/6/lib/python3.7','/snap/jupyter/6/lib/python3.7/lib-dynload','','/snap/jupyter/6/lib/python3.7/site-packages','/snap/jupyter/6/lib/python3.7/site-packages/IPython/extensions','/home/xiaoguzai/snap/jupyter/6/.ipython']
此时我们需要把Jupyter notebook少的路径加入进来
输入指令,找寻jupyter notebook的对应路径
import site
site.getsitepackages()
找寻出来的路径为
['/snap/jupyter/6/lib/python3.7/site-packages']
参考jupyter notebook与python pip安装的库文件不同
以及
jupyter notebook导入新包
不知道怎么就弄好了(主要应该还是通过路径的cp指令的操作)
主要使用的是newpath.path放入jupyter notebook中的/snap/jupyter/6/lib/python3.7/site-packages的方法
(在/snap/jupyter/6/lib/python3.7/site-packages之中放入含有’/usr/lib/python39.zip’, ‘/usr/lib/python3.9’, ‘/usr/lib/python3.9/lib-dynload’, ‘/home/xiaoguzai/.local/lib/python3.9/site-packages’, ‘/usr/local/lib/python3.9/dist-packages’, ‘/usr/lib/python3/dist-packages’, '/usr/lib/python3.9/dist-packages’这几个路径的newpath.path,这里面可能有读写目录的权限问题,所以需要先赋予相应目录权限
sudo chmod a+x 对应目录
然后再将文件复制到对应目录之中
)
安装时出现HTTPSConnectionPool Read timed out问题解决
解决方法:插上网线之后,安装速度很快,安装的软件包直接就能够安装上去了
8.配置环境之后外接显示屏无法显示问题解决
能够连接外接显示屏但是无法识别的解决方法
输入命令
xrandr
能够有相应的输出,识别出对应的外接显示屏,但是外接显示屏仍然无法显示
使用nvidia-settings会报以下的错误信息内容
xiaoguzai@xiaoguzai-Dell-G15-5515:~$ nvidia-settings(nvidia-settings:3649): GLib-GObject-CRITICAL **: 21:00:15.584: g_object_unref: assertion 'G_IS_OBJECT (object)' failedERROR: nvidia-settings could not find the registry key file or the X server isnot accessible. This file should have been installed along with thisdriver at/usr/share/nvidia/nvidia-application-profiles-key-documentation. Theapplication profiles will continue to work, but values cannot beprepopulated or validated, and will not be listed in the help text.Please see the README for possible values and descriptions.
尝试一下使用以下的指令更新库
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo add-apt-repository ppa:xorg-edgers/ppa
更新完成之后进行安装nvidia-settings
sudo apt-get install nvidia-driver-470-server nvidia-settings nvidia-profiler
此时就会出现PRIME Profiles选项
如果想要安装nvidia其他版本的server,可以运行ubuntu-drivers devices,就能够看到其他版本的server内容了,比如我之后安装了ubuntu22.04版本,对于这个版本来说,nvidia-driver-550-server要比nvidia-driver-470-server更适配,因此选择合适版本的server很重要。
安装完看不到相应的选项需要重启一下
此时我们是试着选择一下NVIDIA(Performance Mode),
重启电脑之后发现成功了,现有的电脑屏幕可以成功地扩展到外接显示屏之中!!!
错误:nvidia-settings:ERROR: Unable to load info from any available system
这里是装好nvidia-settings之后,调用nvidia-settings命令出现这种错误,出现这种错误的本质原因是nvidia-smi的显卡驱动安装错误,调用nvidia-smi会报错
nvidia-smi
报错:
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system.
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
需要重装一下nvidia的驱动内容,卸载重装可以查看一下内容
卸载重装网址
安装成功
最终大功告成!!!
9.ubuntu关上笔记本盖子的时候不让它自动待机
修改 Login Manager的配置文件。
sudo gedit /etc/systemd/logind.conf
将其中的
#HandleLidSwitch=suspend
改成或者添加一行
HandleLidSwitch=ignore
然后重启服务:
sudo restart systemd-logind
或者这样重启:
service systemd-logind restart