Ubuntu连接了串口设备但终端显示没有
- 1、前言
- 2、问题
-
- [2.1 查看虚拟机是否连接了设备](#2.1 查看虚拟机是否连接了设备)
- [2.2 查看终端是否显示USB设备](#2.2 查看终端是否显示USB设备)
- [2.3 查找不到文件或目录](#2.3 查找不到文件或目录)
- 3、解决方法
-
- [3.1 查看环形缓冲区信息](#3.1 查看环形缓冲区信息)
- [3.2 关闭BRLTTY服务](#3.2 关闭BRLTTY服务)
- [3.3 查看关闭服务后文件或目录是否存在](#3.3 查看关闭服务后文件或目录是否存在)
- [3.4 把当前用户添加进dialout 组](#3.4 把当前用户添加进dialout 组)
- 查看当前用户所属组
- 4、总结
1、前言
|------------------------------------------------------|
| 记录一下(Ubuntu连接了串口设备但终端显示没有的解决方法,方便自己回顾,也可以给有需要的人提供帮助。 |
2、问题
|---------------------------|
| 出现这个问题的主要原因是brltty抢占了串口设备 |
2.1 查看虚拟机是否连接了设备

|--------------------|
| 如上图所示,虚拟机已经连接了串口设备 |
2.2 查看终端是否显示USB设备

|-----------|
| lsusb也有输出 |
2.3 查找不到文件或目录
bash
ls -l /dev/ttyUSB*

|---------------------------------|
| 但ls -l /dev/ttyUSB*显示没有那个文件或目录 |
3、解决方法
|-------------------|
| 解决方法主要是关闭brltty服务 |
3.1 查看环形缓冲区信息
bash
sudo dmesg | tail -n 50
|---------------------------|
| 查看Linux内核环形缓冲区中最近的50条系统消息 |

|------------------------------------------------------------------------------------------------|
| brltty 是盲文显示器支持服务,会扫描所有 USB-Serial 设备,尤其喜欢 CH340 / FTDI,一旦识别"像盲文设备",就会强行 claim 接口,结果就是串口设备反复消失 |
3.2 关闭BRLTTY服务
bash
sudo systemctl stop brltty
|----------------------|
| 功能:立即停止正在运行的BRLTTY服务 |
bash
sudo systemctl disable brltty
|-------------------|
| 功能:阻止BRLTTY服务自动启动 |

bash
sudo systemctl mask brltty
|-------------------|
| 功能:使brltty服务完全不可用 |
bash
sudo apt purge brltty
|-----------------------|
| 完全移除BRLTTY软件包及其所有相关文件 |

3.3 查看关闭服务后文件或目录是否存在
|------------------|
| 重启系统,然后输入下面的指令 |
bash
ls -l /dev/ttyUSB*

|----------------|
| 可以看到能正确显示串口设备了 |
3.4 把当前用户添加进dialout 组
|--------------------------------------------|
| 为了后面程序能够正确识别到串口设备并正常运行,需要把当前用户添加进dialout 组 |
bash
sudo usermod -aG dialout h

|------|
| 重启系统 |
查看当前用户所属组
bash
groups

|---------------------|
| 成功把当前用户添加进了dialout组 |
4、总结
|--------------------------------------------------------------------------------------------------------------------|
| 以上就是解决虚拟机Ubuntu22.04连接了串口设备但终端没有显示的整个过程了,浏览过程中,如若发现错误,欢迎大家指正,有问题的可以评论区留言或者私信。最后,如果大家觉得有所帮助的话,可以点个赞,谢谢大家!祉猷并茂,顺遂无虞! |