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
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 才算生效。
newgrp dialout 临时切换,或者干脆重启终端。
4.5 连接测试
权限搞定后,连上板子。板子通电,串口线接好。然后:
minicom
如果板子已经在跑系统,你会看到内核启动日志。如果板子还没烧系统,按板子的复位键,应该能看到 Bootloader 的打印信息。
测试发送:按 Ctrl+A 然后按 Z,进入 minicom 帮助菜单。按 E 打开本地回显,然后随便敲几个字符,看板子有没有回应。
用 cutecom 测试更直观:打开后选好设备、设好波特率,点 Open。在输入框里敲 AT(如果板子支持),看返回。
- 串口线是不是交叉线(直连线和交叉线不一样)
- 波特率对不对(板子用 115200,你设成 9600 肯定没输出)
- 板子有没有电(这个听起来蠢,但我真见过)
- 设备名对不对(
/dev/ttyUSB0 还是 /dev/ttyACM0)
4.6 知识结构图
下面这张图帮你理清串口环境搭建的完整链路:
4.7 常用配置速查表
| 参数 | 常用值 | 说明 |
|---|---|---|
| 波特率 | 115200 | 嵌入式调试最常用,Bootloader 和内核默认 |
| 数据位 | 8 | 8N1 是标准配置 |
| 停止位 | 1 | 一般不用改 |
| 校验 | 无 | 调试环境不需要校验 |
| 流控 | 无 | 硬件流控容易导致无法输入,建议关闭 |
| 设备节点 | /dev/ttyUSB0 | USB 转串口最常见,也可能是 ttyACM0 |
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% 的问题出在权限和波特率上。
串口通了,后面的事情就好办了。你可以用它看内核启动日志、调试驱动、甚至做简单的文件传输。嗯,这就是嵌入式开发者的「生命线」。