虚拟机下linux怎么操作串口
虚拟机下linux怎么操作串口详细介绍
在虚拟机中操作 Linux 串口,需先在虚拟机中正确配置串口设备,再在 Linux 系统中进行操作。以下是针对常见虚拟机软件(VMware、VirtualBox、KVM)的详细步骤:
一、虚拟机中添加串口设备
1. VMware Workstation 配置(以 Windows 主机为例)
- 步骤 1:关闭虚拟机
确保虚拟机处于关机状态,否则无法修改硬件配置。 - 步骤 2:添加串行端口
- 打开虚拟机设置 → 硬件 → 添加 → 选择 串行端口 → 下一步。
- 选择串口类型:
- 连接到主机端口:若主机有物理串口(如
COM1),选择此项并指定主机端口号。 - 输出到文件:将串口数据映射到主机的文件(如
C:\serial\port.log),适用于虚拟串口测试。 - 连接到另一台虚拟机上的串行端口:用于虚拟机间串口通信(需两台虚拟机配合)。
- 连接到主机端口:若主机有物理串口(如
- 勾选 启用此设备,完成添加。
- 步骤 3:启动虚拟机
进入 Linux 系统后,串口设备通常会以/dev/ttyS0、/dev/ttyS1等形式存在(对应主机COM1、COM2)。
2. VirtualBox 配置
- 步骤 1:关闭虚拟机
确保虚拟机处于关闭或保存状态。 - 步骤 2:添加串口
- 打开虚拟机设置 → 端口 → 串口 → 点击 + 添加串口。
- 端口设置:
- 主机端口:若主机有物理串口或 USB 转串口(如
COM3),填写端口号;若使用文件映射,选择 文件 并指定路径。 - 波特率、数据位等参数:保持默认或按需求设置(与目标设备一致)。
- 主机端口:若主机有物理串口或 USB 转串口(如
- 勾选 启用串口。
- 步骤 3:连接 USB 转串口设备(可选)
若主机使用 USB 转串口(如 CH340、PL2303),插入 USB 后,在虚拟机中点击工具栏 设备 → USB 设备 → 选择对应的串口设备。
Linux 系统中设备通常为/dev/ttyUSB0、/dev/ttyUSB1等。
3. KVM/QEMU 配置(通过命令行或 XML 文件)
- 通过命令行启动时添加串口:bash
qemu-system-x86_64 linux.img dev:/dev/ttyS0qemu-system-x86_64 linux.img file:serial.log
- 通过 XML 配置文件(编辑虚拟机 XML 文件,需先停止虚拟机):xml
devicesserial file
source /path/to/serial.log
target 0
serial
devices
启动后,Linux 中串口设备为
/dev/ttyS0等。
二、Linux 系统中操作串口
1. 检查串口设备
- 列出所有串口设备:bash
/dev/ttyS*/dev/ttyUSB*
- 查看设备是否正常识别(如插入 USB 转串口后,用
dmesg | grep ttyUSB查看驱动日志)。
2. 配置串口权限
- 默认情况下,普通用户无法访问串口,需将用户加入
dialout组(以 Ubuntu 为例):bashdialoutnewgrp dialout
- 或临时使用
sudo操作串口工具。
3. 使用串口工具(以 minicom 为例)
- 安装工具:
bashminicom
yum minicom
- 配置 minicom:
bashminicom- 选择 Serial port setup,设置:
- Serial Device:填写串口设备(如
/dev/ttyUSB0) - Baud rate:波特率(如 9600)
- Data bits:数据位(通常 8)
- Stop bits:停止位(通常 1)
- Parity:校验位(通常 None)
- Serial Device:填写串口设备(如
- 保存配置(选择 Save setup as dfl),返回主界面。
- 选择 Serial port setup,设置:
- 启动通信:
连接目标设备(如串口调试助手、嵌入式设备)后,在 minicom 中输入内容即可通信,按Ctrl+A Z查看帮助,Ctrl+A X退出。
4. 其他工具(可选)
- screen:bash
/dev/ttyUSB0 - Python 串口库(pyserial):
编写脚本操作串口(需安装pyserial):pythonserialser serialSerial timeout
serwrite
serreadline
serclose
三、常见问题解决
- 设备不存在(如
/dev/ttyUSB0未出现):- 检查虚拟机是否正确连接 USB 转串口设备(VirtualBox/VMware 需手动连接 USB)。
- 确认主机驱动正常(Windows 下需安装对应 USB 转串口驱动,Linux 内核通常自带 CH340/PL2303 驱动)。
- 权限不足:
- 确保用户属于
dialout组,或使用sudo执行命令。
- 确保用户属于
- 通信异常(乱码、无数据):
- 检查波特率、校验位等参数是否与目标设备一致。
- 尝试更换串口工具(如从 minicom 切换到 screen)排查问题。
通过以上步骤,可在虚拟机中成功配置并操作 Linux 串口。根据使用的虚拟机软件选择对应的设备添加方式,再通过系统工具或编程接口实现串口通信。