/dev/tty、/dev/ttyS/、/dev/ttyUSB区别

本文详细介绍了Linux系统中各种终端设备的含义与用途,包括当前控制终端/dev/tty、虚拟控制台终端/dev/ttyn和/dev/console、串行端口终端/dev/ttySn及USB转串口终端/dev/ttyUSBn。这些设备在系统管理与串口通信中扮演关键角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、/dev/tty                                                    当前控制终端Terminal

2、/dev/ttyn和/dev/console                         (虚拟)控制台终端

3、/dev/ttySn   一般为/dev/ttyS0                 串行端口终端,接串口线使用的端口设备

4、/dev/ttyUSBn   一般为/dev/ttyUSB0       USB转串口终端,接USB转串口线可用此端口设备

### 配置使用 `/dev/ttyS0` 映射 Linux 设备文件串行端口 #### 1. 查找并确认串行端口的存在 为了确保 `/dev/ttyS0` 存在于系统中,可以使用 `ls` 命令来列出设备节点: ```bash ls -l /dev/ttyS* ``` 这将显示所有可用的 TTY 串行端口。如果未找到 `/dev/ttyS0`,可能是因为硬件连接问题或内核模块加载失败。 #### 2. 使用 Docker 进行串口映射 对于需要在 Docker 容器内部访问主机上的物理串行端口的情况,可以通过 `-device` 参数实现直接映射。具体命令如下所示[^1]: ```bash docker run -it --rm \ --device=/dev/ttyS0:/dev/ttyS0 \ my_image ``` 此操作会把宿主机上真实的 `/dev/ttyS0` 装载到容器内的相同路径下,从而允许应用程序像平常一样读写该设备。 #### 3. 修改 udev 规则以保持一致性 有时重启之后原来的设备名可能会改变(比如从 `/dev/ttyUSB0` 变成其他编号),为了避免这种情况影响程序正常工作,建议创建自定义 UDEV 规则固定分配特定名称给指定 USB-Serial Adapter: 编辑新规则文件 `/etc/udev/rules.d/99-myserial.rules` 并加入下面内容(假设 VID PID 是已知): ```plaintext SUBSYSTEM=="tty", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", SYMLINK+="my_serial" ``` 替换其中 xxxx yyyy 为实际产品的 Vendor ID Product ID, 然后重新加载规则使更改生效: ```bash sudo udevadm control --reload-rules && sudo udevadm trigger ``` 现在无论何时插入相同的适配器都会自动链接至 `/dev/my_serial`. #### 4. 测试通信功能 完成上述设置后,可利用简单的回送测试工具如 minicom 或者 screen 来验证是否能够成功打开并发送接收数据包. 例如通过 Screen 工具连接到目标串口: ```bash screen /dev/ttyS0 115200 ``` 这里假定波特率为 115200 bps; 如果不确定速率,则需查阅文档获取确切数值.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值