一、问题概述
在使用centos7.5版本系统时,安装配置好官方原版桌面环境后,发现通过串口登陆系统出现了问题。
具体问题现象有两种情况:
- 第一次通过串口输入用户名后,输入密码的第一字符,登陆进程就终止了,然后重新提示输入用户名。第二次登陆输入用户名的第一个字符后,登陆进程又自动终止了,然后重新提示输入用户名。第三次登陆跟第二次登陆现象一样。直到第四次登陆后才能正常登陆。
- 第一次通过串口登陆时先等待图形界面完全启动完成后,再输入用户名、密码,这次可以完整输入,然后回车确认后,串口就卡死了,无法交互。等待约30S后,串口打印出timed,也就是登陆进程超时,又会提示重新输入用户名密码。这个时候就再次输入用户名密码就能正常登陆了。
回到第一种情况,如果把用户的密码改成1位,在第一种情况下输入用户名密码后,刚好能登陆进系统,但是串口打印就出问题了,输入命令能正常响应,但是输入的字符并不会回显。只能是用exit命令退出登陆服务后,重新输入用户名密码登陆就回归正常。
二、故障排查
异常的串口登陆情况使得使用串口调试系统时体验极差,接下来只能是一步步的排查分析这个问题了。
2.1 尝试分析串口登陆服务
串口登陆服务脚本位于/lib/systemd/system/serial-getty@.service文件中,文件内容大概如下:
[Unit]
...
BindsTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service ply