问题
开发了一款远程服务的设备,在调试过程中,出现了用户无法使用串口连接下端设备的问题,我们设备上使用的是minicom进行串口连接和调试的。
查看设备连接问题,提示 device /dev/ttyS2 is locked。
分析
ttyS2就是我们串口使用的端口设备,提示被锁定,可以在/var/lock/目录下查看是否有锁定文件。
/var/lock功能介绍:
许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个设备或文件。注意该目录不可以随便更改。
问题解决
/var/lock目录下有 LCK…ttyS2这样的一个文件,查看时间是问题发生时间创建的。直接删除。
重新使用minicom连接232尝试,没有报错了。
后记
lock问题到此就解决了,但是我们的设备上使用minicom发现不能输入命令(下联设备是一个交换机),卡在minicom的登录交互页面。
首先怀疑连线不通,因为我们使用的是网口作为串口输出口使用,使用网线测试仪查看网线,结果发现网线是一个交叉线,问题就是硬件连线不通。
由于我们卡在了minicom登录交互页面,智能强行退出,退出后发现又出现了lock问题,在此删除,使用直连线连接,启动minicom连接成功。
整个问题原因是由于232使用了交叉线,导致底层硬件连接不通,打开minicom导致无法输入命令卡住,用户只能强行断掉,属于不正常退出,系统认为用户仍然使用该硬件,产生了锁。后面就连接出现锁住的问题。
本文介绍了在使用minicom调试远程服务设备时遇到的串口连接锁死问题及解决过程。通过检查/var/lock/目录下的锁定文件并解决硬件连线问题,最终实现了设备的正常连接。
1492

被折叠的 条评论
为什么被折叠?



