4、主机串口工具安装与配置(Linux端)

串口调试,说白了就是嵌入式开发者的「听诊器」。板子有没有跑起来?内核打印到哪一步了?全靠这根串口线。我见过不少新手,花大把时间折腾网络、折腾驱动,结果发现——串口根本没通,白忙活半天。

这一节,我们就来搞定 Linux 主机上的串口工具。我会带你装两个工具:minicom 和 cutecom。一个命令行派,一个图形派,各有用处。

4.1 先确认你的串口设备

插上 USB 转串口模块(比如 CH340、CP2102、FT232),然后跑这条命令:

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

正常会看到类似 /dev/ttyUSB0 的输出。如果啥也没有,先检查驱动:

lsmod | grep usb_serial

我遇到过好几次,插上设备后 /dev 下空空如也。后来发现是内核没装 ch341 驱动。装一下就好:

sudo modprobe ch341
注意: 如果用的是虚拟机(VirtualBox / VMware),记得把 USB 设备从宿主机「抢」过来——在虚拟机菜单里勾选对应的 USB 设备。否则 Linux 根本看不到它。

4.2 安装 minicom(命令行首选)

minicom 是老牌串口工具,轻量、稳定、脚本友好。我个人的习惯是:调试内核启动用 minicom,日常交互用 cutecom。

安装就一句话:

sudo apt install minicom

装完先别急着连。先配置一下:

sudo minicom -s

进入配置菜单后,选 Serial port setup,然后按 A 修改串口设备,改成你的实际设备,比如 /dev/ttyUSB0。按 E 设置波特率,嵌入式开发最常用 115200 8N1(8 数据位、无校验、1 停止位)。

配置完选 Save setup as dfl,保存为默认配置。下次直接 minicom 就能连。

小技巧: 如果你经常换板子、换波特率,可以保存多个配置:minicom -S config_name。我一般给每块板子建一个配置,省得每次重设。

4.3 安装 cutecom(图形界面)

cutecom 是 Qt 写的串口工具,界面清爽,适合看日志、发 AT 指令。安装:

sudo apt install cutecom

启动:

cutecom

界面里选设备、设波特率、点 Open,就通了。cutecom 有个好处——日志可以滚动查看,还能保存到文件。调试 AT 指令时特别方便。

4.4 配置串口权限(dialout 组)

这是新手最容易卡住的地方。你装好工具、插好线,一打开 minicom,屏幕一片黑,或者报 Permission denied。为什么?因为普通用户没有访问串口设备的权限。

Linux 下串口设备属于 dialout 组。把当前用户加进去就行:

sudo usermod -a -G dialout $USER

然后注销重新登录,或者直接重启。验证一下:

groups

输出里要有 dialout 才算生效。

我曾经踩过的坑: 加完组没注销,直接跑 minicom,还是报权限错误。折腾了十分钟才发现——组变更要重新登录才生效。嗯,后来我学乖了,加完组直接 newgrp dialout 临时切换,或者干脆重启终端。

4.5 连接测试

权限搞定后,连上板子。板子通电,串口线接好。然后:

minicom

如果板子已经在跑系统,你会看到内核启动日志。如果板子还没烧系统,按板子的复位键,应该能看到 Bootloader 的打印信息。

测试发送:按 Ctrl+A 然后按 Z,进入 minicom 帮助菜单。按 E 打开本地回显,然后随便敲几个字符,看板子有没有回应。

用 cutecom 测试更直观:打开后选好设备、设好波特率,点 Open。在输入框里敲 AT(如果板子支持),看返回。

注意: 如果屏幕完全没反应,先检查这几样:
- 串口线是不是交叉线(直连线和交叉线不一样)
- 波特率对不对(板子用 115200,你设成 9600 肯定没输出)
- 板子有没有电(这个听起来蠢,但我真见过)
- 设备名对不对(/dev/ttyUSB0 还是 /dev/ttyACM0)

4.6 知识结构图

下面这张图帮你理清串口环境搭建的完整链路:

串口环境搭建流程 串口环境搭建流程 ① 硬件连接 ② 确认设备节点 ③ 安装 minicom/cutecom ④ 配置 dialout 权限 ⑤ 连接测试 常见问题 • 设备节点不存在 • 权限拒绝 • 波特率不匹配 • 串口线类型错误 • 虚拟机未绑定设备 • 板子未上电 • 驱动未加载 • 组变更未生效 • 多个串口冲突 • 硬件损坏

4.7 常用配置速查表

参数 常用值 说明
波特率 115200 嵌入式调试最常用,Bootloader 和内核默认
数据位 8 8N1 是标准配置
停止位 1 一般不用改
校验 无 调试环境不需要校验
流控 无 硬件流控容易导致无法输入,建议关闭
设备节点 /dev/ttyUSB0 USB 转串口最常见,也可能是 ttyACM0
我的经验: 流控(Hardware Flow Control)一定要关。我见过好几次,minicom 配置里默认开了 RTS/CTS,结果板子只输出不接收,敲键盘没反应。关了流控就好了。

4.8 验证是否成功

跑完上面所有步骤,你应该能看到板子的打印信息。如果能看到类似这样的输出,恭喜你,串口环境搭好了:

U-Boot 2023.04 (Apr 12 2024 - 15:30:00 +0800)

CPU:   i.MX6ULL
Board: MY-IMX6ULL
DRAM:  512 MiB
MMC:   FSL_SDHC: 0
...

如果看不到,别慌。按上面的流程图一步步排查。我调试过几十块不同板子,90% 的问题出在权限和波特率上。

串口通了,后面的事情就好办了。你可以用它看内核启动日志、调试驱动、甚至做简单的文件传输。嗯,这就是嵌入式开发者的「生命线」。