分类: 嵌入式
2014-11-12 11:09:26
产生这种情况的原因很多,故解决方法也多有不同。
1、修改过环境变量,如:/etc/profile /etc/environment 等...
Ctrl + Alt + F1 进入命令行模式,删掉修改过的配置
Ctrl + Alt + F7 返回图形界面
2、删除用户主目录下的 .Xau* 文件
#sudo rm -rf ~/.Xau*
不一定能成功删除,可能返回图形界面仍然不能登录
关于.Xauthority:startx的脚本文件
Xserver 启动时,读文件~/.Xauthority,读入对应其display的记录.当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文 件,并把找到的magic code 发送给Xserver.当Xserver验证这个magic code正确以后,就同意连接啦.
观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证。
3、查看用户主目录下的.xsession-errors 文件
#cat ~/.xsession-errors
“mkdtemp: private socket dir: Permission denied”
想到之前动过根目录下的 /tmp 文件夹,权限未给,故修改:
#sudo chmod 777 /tmp
我情况1、2、3分别碰到过,并解决。究其原因,还是修改过环境变量导致的。