utm支持串口配置,用于启动日志捕获、内核调试等场景,需三步协同:图形界面添加serial port设备(如host pipe路径/tmp/utm-serial-vmname)、客户机设置kernel参数console=ttys0,115200n8、宿主机用screen或日志文件捕获输出。
utm 是 macos 上主流的虚拟化工具,基于 qemu 实现,支持串口(serial port)配置,但其界面与 vmware/virtualbox 不同,需通过配置文件或图形界面手动启用。串口在 utm 中主要用于早期启动日志捕获、内核调试、无网络环境下的系统恢复等场景。关键在于三步协同:utm 串口设备添加、客户机内核参数设置、宿主机端接收方式选择。
UTM 图形界面添加串口设备
UTM 当前版本(v4.4+)在虚拟机设置中已集成串口选项:
- 确保虚拟机处于关机状态,右键 → Edit Configuration
- 切换到 Devices 标签页 → 点击 + Add Device → 选择 Serial Port
- 默认类型为 Host Pipe(推荐),路径填写:/tmp/utm-serial-vmname(如
/tmp/utm-serial-ubuntu) - 勾选 Connect to host pipe 和 Create pipe if missing
- 保存后启动虚拟机,Linux 客户机会识别为
/dev/ttyS0
客户机内核启动参数必须启用 console=ttyS0
仅添加设备不够,Linux 内核需明确将输出重定向到串口。以 Ubuntu 为例:
- 编辑
/etc/default/grub,修改GRUB_CMDLINE_LINUX_DEFAULT行: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash console=tty0 console=ttyS0,115200n8"- 执行
sudo update-grub && sudo reboot - 验证:启动后运行
dmesg | grep -i "console\|ttyS0",应看到console [ttyS0] enabled
宿主机捕获串口输出的三种实用方式
macOS 无法直接用 PuTTY,但有原生高效替代方案:
-
终端命令监听(推荐):打开 Terminal,运行
screen /tmp/utm-serial-ubuntu 115200,按Ctrl+A, K退出 -
输出到日志文件:在 UTM 配置中将串口类型改为 Output to file,路径设为
/Users/yourname/Logs/utm-serial.log,启动后所有输出自动追加 -
与 macOS 原生串口工具互通:若连接 USB 转串口设备(如 CP2102),可在 UTM 中选 Use physical serial port,路径填
/dev/cu.usbserial-XXXX(用ls /dev/cu.*查看)
注意:UTM 默认不启用串口中断(IRQ),若客户机启动卡在 GRUB 或 kernel panic 无响应,可尝试在 UTM 配置 JSON 中手动添加 "irq": 4 字段(高级操作,需导出配置编辑)。常规调试中,上述三步已覆盖 95% 场景。











