Linux-Ubuntu 16.04 重复登录问题解决(非重装驱动方法):进入图形界面后,输入密码又重新回到登录界面

问题描述

笔者昨天还在ubuntu下调代码,界面什么的毫无问题,也没有安装什么程序,第二天再进入的时候,直接gg,又遇到之前安装ubuntu的时候出现的重复登录问题,当时应该是驱动程序没有安装好的原因,重新安装了驱动程序就会好,但是这次的问题出现很明显不是驱动没有装好的原因,当然重装驱动又可能会好,但是不太明智。

在命令行输入nvidia-smi,发现:

NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

我就知道问题出在nvidia驱动上了。

所以,刚开始查了很多方法,后来发现是驱动的问题,就改了查找关键词,不过还是把其他方法整理一下,放在这里。


网上已知方法:

我查找了很多链接:

首先Ctrl+Alt+F1进入命令行模式,或者 sudo service lightedm stop
通过Ctrl+Alt+F7进入图形界面模式,或者 sudo service lightedm restart

  1. 有提到了查看/var/log/Xorg.0.log和~/.xsession-errors,然后观察问题是什么,但感觉我的没什么问题。
    sudo vi /var/log/Xorg.0.log
    sudo vi ~/.xsession-errors

    (假定你已经安装了vim,sudo gedit在命令行下是无法使用的,只能用vim)

  2. 有很多链接提到了主目录下的.Xauthority文件的所有者变成了root,因此在登录的时候无法获得该文件。
    输入 ls -l -a
    可以观察到.Xauthority,如果观察到它的所有者是root而不是你的ubuntu名称,那很可能你的ubuntu出现重复登录是因为该问题。
    此时可以通过:
    sudo chown xxx:xxx .Xauthority
    来更改该文件的所有者(其中xxx是ubuntu的名称)
    但很不幸,我的并不是这个问题。

  3. tmp目录权限问题,你可以通过第一个方法,进入~./xsession-errors,查看是否是此问题:

    扫描二维码关注公众号,回复: 11294874 查看本文章
    “mkdtemp: private socket dir:Permission denied”
    

    出现上述引用内容,就可能是该问题导致的。
    可以通过 chmod 1777 /tmp 进行权限更改。

  4. 修改环境变量,虽然我压根就没改什么环境变量,但还是把这个方法摘出来放在这里。
    sudo /usr/bin/vi /etc/profile(注意有空格)
    查看打开的文件底部是否有你刚添加过的 export PATH= “xxx/xxx” 的环境变量,如果有的话,先删掉。
    执行 source /etc/profile 使修改过的文件生效。
    观察是否还存在还重复登录问题。

  5. 可能是ubuntu系统内核kernel进行了更新,导致和驱动版本不适配。
    可以在进入ubuntu系统的时候进入到**“ubuntu高级选项”,选择一个以前的内核版本。
    如果没有以前内核版本的话,可以在命令行
    sudo apt-cache search linux-image** 查看可安装内核,然后sudo apt-get install linux-image-2.6.32-21-generic 安装相应较早内核。

  6. 重装驱动
    (1) 进入命令行模式
    (2)卸载原有驱动:
    sudo apt-get remove --purge nvidia-*
    sudo apt-get autoremove
    (3)卸载.run文件安装的驱动,在NVIDIA驱动所在的目录
    sudo ./NVIDIA-Linux-x86_64-xxx.run --uninstall
    (4)安装驱动
    sudo ./NVIDIA-Linux-x86_64-xxx.run --no-opengl-files
    在这里插入图片描述
    (5)安装成功后,重新进入图形界面


问题解决,我使用的方法,应该还是驱动和内核之间的兼容问题

  1. 安装驱动相应版本的dkms,不知道改的具体哪里,但是笔者是使用该放解决的重复登录问题。

cd /usr/src 查看驱动版本号(我的是396.37)
sudo apt-get install dkms
sudo dkms install -m nvidia -v 396.37
无需重启即可成功看到输入nvidia-smi后熟悉的界面
在这里插入图片描述
此时回到图形界面,发现分辨率恢复了原来的,而且可以进入,问题解决!

在这里插入图片描述

我没有尝试方法5,但是我感觉应该也可以解决。


最后附上一些 linux查看内核、GPU型号、驱动版本、内核安装的相应命令

uname -r 查看当前内核版本
uname -a 查看系统内核版本和其他系统信息,包括是x86_64还是其他分布式平台
lspci | grep -I nvidia 查看 GPU型号
sudo dpkg --list | grep nvidia- 查看驱动版本
cat /proc/driver/nvidia/version 查看驱动版本
dpkg --get-selections | grep linux-image 查看已经安装的内核
sudo apt-get purge/remove linux-image-2.6.32-21-generic 卸载相应的内核版本(purge更彻底)
sudo apt-get update/sudo apt-get upgrade 升级内核
sudo apt-cache search linux-image 查看可安装内核
sudo apt-get install linux-image-2.6.32-21-generic 安装内核
sudo gedit /boot/grub/grub.cfg set default=“0” 切换内核,内核默认启动顺序从0开始依次类推
切换内核详细流程:
sudo vim /etc/default/grub&
GRUB_DEFAULT=0
修改为 GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.16.0-43-generic"
sudo update-grub
sudo reboot

参考链接

Jisongxie:ubuntu重复登录问题
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
Linux系统无法载入nvidia-smi驱动
Ubuntu 16.04 内核降级
ubuntu 16.04内核更新到113后循环登录的问题解决
ubuntu 无限重复登录界面解决方案-U盘挂载
重装驱动


2019.11.04
希望能帮到你。


猜你喜欢

转载自blog.csdn.net/jsk_learner/article/details/102893739