如果稍不注意:系统内核、GCC、下载的版本不对应、安装过程中选项选择不正确,在NVIDIA驱动 + CUDA 安装完后可能会遇见一些问题。
一、登陆不进桌面
可能的操作:
(1)nivida驱动安装完之后,重启电脑,发现GPU无法正常使用,出现无法登录桌面系统、分辨率改变等问题。
(2)CUDA安装完之后,重启电脑,发现GPU无法正常使用,出现无法登录桌面系统。
(3)系统软件升级之后(一般是使用了 sudo apt-get update),重启,在登陆界面输入密码后,回车,闪现一次黑屏和一些代码,然后又重新回到登陆界面。
(4)点了ubuntu系统自动提示的软件升级以后,重启电脑导致。
(5)ubuntu 正常使用过程中,有些使用/安装需要软件升级,无意操作,更新软件的同时更新了内核。
可能的原因分析:
1、主目录下的.Xauthority文件拥有者变成了root,从而以用户登陆的时候无法都取.Xauthority文件。从而造成用户登陆不进入系统桌面。
说明:Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文 件,并把找到的magic code 发送给Xserver。
当Xserver验证这个magic code正确以后,就同意连接啦。观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证
#系统的Xauthority文件出现了问题,当前用户无权限调用他,所以使用rm -rf .Xauthority删除他,也有说使用sudo chown usrname .Xauthority将权修改为当前用户的。
2、系统软件升级后与Nvidia的驱动冲突。
@https://www.cnblogs.com/yongpan/p/9645684.html
解决方法
针对可能的原因分析1:
将.Xauthority的拥有者改为登陆用户。 操作过程: 开机后在登陆界面按下shift + ctrl + F1进入tty命令行终端登陆后输入: $ cd ~ $ sudo chown hp:hp .Xauthority (若为其他用户名修改成相应的名称即可) 然后再次输入: ls .Xauthority -l 成功后显示如下: -rw------- hp hp 1月 : .Xauthority 此时拥有者已经变为用户。按下shift + ctrl + F7切换回图形登陆界面登陆即可。 参考:https://blog.csdn.net/u010925447/article/details/72236387
另,参考: 进入shell,在home目录下找到.xsession-errors文件
# cd home 查看是否有.xsession-errors
cd ~
ls -a
#用vi打开.xsession-errors文件
vi .xsession-errors 接着你就可以看到里面的日志信息,按照日志里面的信息去google,也许可以解决驱动安装的办法。
针对可能的原因分析2:
出现这个问题最大的可能原因是安装的Nvidia驱动和系统或者硬件有不兼容,下载新的驱动一般可以解决问题。卸载驱动,升级或者降级内核版本。
卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)。
卸载NVIDIA驱动,重新安装 unity 桌面。参考以下几种方式:
进入到shell,开始卸载NVIDIA驱动:
sudo apt-get remove --purge nvidia-* #sudo apt-get remove --purge nvidia-331-updates 卸载指定版本
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf
echo 'nouveau' | sudo tee -a /etc/modules
#重启系统
sudo reboot ----------------------------------
sudo apt-get purge nvidia-*
sudo apt-get autoremove
sudo apt-get --purge remove nvidia-*
remove 之后,nvidia-smi 看驱动是否还在。 如果还在,说明没卸载掉:
查看nouveau模块是否被加载。如果什么都没输出,则执行下一步。
根本问题在于参数: --no-opengl-filessudo /etc/init.d/lightdm stop
sudo ./NVIDIA-Linux-x86_64-375.20.run --no-opengl-files
sudo /etc/init.d/lightdm start
即可以正常登录界面了!! ----------------------------------
(1) 按ALT + F1进入命令行模式,查找显卡驱动.run的安装文件存放位置:
find . -name NVIDIA-Linux-x86_64-375.39.run
(2) 跳转到该文件所在位置,运行如下命令卸载该驱动:
sudo bash ./NVIDIA-Linux-x86_64-375.39.run –uninstall
$ sudo apt-get autoremove --purge nvidia-* #把nvidia驱动清个干干净净
$ sudo reboot #一定记得重启,不然你会后悔的!
在登陆界面状态下,按Ctrl + Alt + f1,进入TUI执行
sudo /usr/bin/nvidia-uninstall
然后重启
sudo reboot
如果装完之后出现循环登录,可以卸载之后添加--no-opengl-files选项重新安装一次 卸载NVidia驱动
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run –uninstall #用下载的安装程序进行卸载。如果安装的是官网下载的驱动,则重新运行run文件来卸载
或者
nvidia-uninstall #用安装出来的可执行脚本卸载
当输入安装指令时,不要简单地输入 sudo ./....run,而是输入:
sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
这样再reboot,就不会出现循环登录的问题。
如果在安装CUDA时候一起安装的Nvidia驱动。
-----------------------------------------------------------
Description This package includes over + CUDA examples that demonstrate
various CUDA programming principles, and efficient CUDA
implementation of algorithms in specific application domains.
The NVIDIA CUDA Samples License Agreement is available in
Do you accept the previously read EULA?
accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: y # 单独安装nvidia驱动,这里选择 n Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y Enter CUDA Samples Location
[ default is /home/c302 ]: Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Installing the CUDA Samples in /home/c302 ...
Copying samples to /home/c302/NVIDIA_CUDA-.0_Samples now...
Finished copying samples. ===========
= Summary =
=========== Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/c302 Please make sure that
- PATH includes /usr/local/cuda-8.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA. ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver Logfile is /tmp/cuda_install_9045.log -------------------------------------------------------- 这种,可以采用 一起卸载 CUDA 以及 NVIDIA驱动的形式卸载NVIDIA驱动。 参考一:
CUDA安装: sudo apt install nvidia-cuda-toolkit
卸载CUDA: sudo apt purge --autoremove cuda
sudo apt purge --autoremove nvidia-cuda-toolkit #sudo apt-get purge --auto-remove nvidia-cuda-toolkit
参考二:
卸载CUDA很简单,一条命令就可以了,主要执行的是CUDA自带的卸载脚本,要根据自己的cuda版本找到卸载脚本:
sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0。可以一并删除:
sudo rm -rf /usr/local/cuda-8.0/
cd /usr/local/cuda6.5/bin/
sudo ./uninstall_****
参考三:
卸载CUDA
只针对对于.run方式安装的,其他的没有进行测试
打开终端,输入: sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl
执行完后,删除cuda文件即可
同时卸载nvidia驱动:sudo /usr/bin/nvidia-uninstall
卸载cuDNN
打开终端,输入:
sudo rm -rf /usr/local/cuda/lib64/libcudnn
sudo rm -rf /usr/local/cuda/include/cudnn.h
然后,可以选择把自己下载的文件也删除掉,这个需要到自己存放文件的地方删除了,不同的人存放的地方可能不同,在这不过多累述。
打开~/.bashrc, 删除:
export PATH=$PATH:/opt/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64
参考四:
sudo apt-get remove cuda
sudo apt-get autoclean
然后在目录切换到/esr/local/下
cd /usr/local/
sudo rm -r cuda-9.0
参考五:
sudo ./CUDA-x86_64-X.X.run --uninstall
二、验证CUDA Toolkit :$ nvcc -V ,会输出CUDA的版本信息,但如果是这样的:
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit # sudo apt-get remove nvidia-cuda-toolkit
(1)可能是 Install the CUDA 8.0 Toolkit? 这一步没安装,选择了 n。 可以尝试: sudo apt-get install nvidia-cuda-toolkit ,
在查看cat /usr/local/cuda-10.0/version.txt 与 nvcc --version 显示版本是否一致。
(2)可能是环境配置没有成功,重设置环境变量,使其在系统中生效。@https://blog.csdn.net/qlulibin/article/details/78714596
查看 路径 /usr/local/cuda-9.0/bin 下是否有 nvcc 这个可执行文件,有则说明cuda安装是成功的。
配置环境:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0sudo ldconfig
径设置是生效的。
卸载完,一定要检验:是否已经卸载完毕。
https://blog.csdn.net/Hover_May/article/details/81236886 Ubuntu 16.04陷入登录循环 的4种原因