戴尔游匣g15 5515笔记本电脑g3060锐龙cpu版装入显卡驱动配置pytorch环境踩坑总结


最近买了一台戴尔g15 5515的笔记本电脑进行搭深度学习的环境,首先介绍以下这台电脑的配置
这台电脑的特点在于有一个集显和一个独显。
注意这里的根目录内容之下一定要有50g,否则下载空间根本不够用,之前分配了15个g,中途不够用
我的分配区域
Swap(相当于电脑内存):逻辑分区、大小设置为电脑内存大小16G
/boot(引导分区):主分区:大小设置为480M;
260314 逻辑分区 /home
51400 主分区 /

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的对应系统
然后装入470.63.04驱动
这里装入是使用的手动装入的方法,先屏蔽原先的显卡内容
禁用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
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
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.runsudo 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 libraries

Please 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-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

测试安装是否成功时,执行以下几条命令:

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.0
  CUDA Capability Major/Minor version number:    7.5
  Total amount of global memory:                 7950 MBytes (8335982592 bytes)
  (36) Multiprocessors, ( 64) CUDA Cores/MP:     2304 CUDA Cores
  GPU Max Clock rate:                            1620 MHz (1.62 GHz)
  Memory Clock rate:                             7001 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 4194304 bytes
  Maximum 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 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1024
  Maximum number of threads per block:           1024
  Max 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 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 3 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute 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

说明安装成功

7.安装cudnn

接下来安装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 sys

sys.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)' failed

ERROR: nvidia-settings could not find the registry key file or the X server is
       not accessible. This file should have been installed along with this
       driver at
       /usr/share/nvidia/nvidia-application-profiles-key-documentation. The
       application profiles will continue to work, but values cannot be
       prepopulated 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(Performance Mode),
重启电脑之后发现成功了,现有的电脑屏幕可以成功地扩展到外接显示屏之中!!!
最终大功告成!!!
大功告成图片

9.ubuntu关上笔记本盖子的时候不让它自动待机

修改 Login Manager的配置文件。

sudo gedit /etc/systemd/logind.conf

将其中的

#HandleLidSwitch=suspend

改成或者添加一行

HandleLidSwitch=ignore

然后重启服务:

sudo restart systemd-logind

或者这样重启:

service systemd-logind restart

Guess you like

Origin blog.csdn.net/znevegiveup1/article/details/119852764