在 macOS 上高效调试嵌入式 Linux 设备:串口连接、静默模式与 GPIO 控制指南

适用场景:工业控制器、IoT 设备、灌溉系统、基于 systemd 的嵌入式 Linux
环境:macOS + USB 转串口(CH340/CP2102)+ picocom/tio + libgpiod
目标:实现干净、无干扰的串口交互,精准控制硬件(如水泵)

🧰 一、准备工作:安装串口工具

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install picocom    # 经典轻量
brew install tio        # 更友好,支持本地回显

🔌 二、确认设备识别

ls /dev/cu.*

正常输出示例:

/dev/cu.usbserial-210

✅ 始终使用 /dev/cu.*(Call Up)而非 /dev/tty.*,避免 macOS 终端挂起。

📡 三、连接串口终端

使用 picocom(波特率 1.5 Mbps):

picocom -b 1500000 /dev/cu.usbserial-210

使用 tio(推荐):

tio -b 1500000 /dev/cu.usbserial-210

⚠️ 若提示 “Resource busy”

lsof /dev/cu.usbserial-210
kill -9 <PID>
# 或拔插 USB 设备

🚪 退出方式

  • picocomCtrl+ACtrl+X
  • tioCtrl+]q

🔐 四、登录系统

  • 用户名root
  • 密码L密@码98

登录后提示符:

root@主机00081:~#

🧘 五、消除干扰信息(静默调试模式)

systemctl stop app

根据设备生产时间停止对应服务:

# 2025年10月前设备:
systemctl stop user_watchdog

# 2025年10月及以后设备:
systemctl stop netcheck

💡 执行后终端不再刷屏,可自由输入命令。重启后服务自动恢复。

抑制内核消息(可选)

echo 1 > /proc/sys/kernel/printk

🔌 六、GPIO 控制(基于 libgpiod)

总电源控制(gpiochip4)

gpioset gpiochip4 10=1   # 关闭总电源
gpioset gpiochip4 10=0   # 开启总电源

分路水泵控制(gpiochip2)

水泵组GPIO Line开启(通电)关闭(断电)
第一路18gpioset gpiochip2 18=0gpioset gpiochip2 18=1
第二路19gpioset gpiochip2 19=0gpioset gpiochip2 19=1
第三路20gpioset gpiochip2 20=0gpioset gpiochip2 20=1

📌 注意0 = 开启水泵1 = 关闭水泵(低电平触发继电器)。

🛠️ 七、效率提升建议

场景推荐方案
快速连接alias serial='tio -b 1500000 /dev/cu.usbserial-210'
自动化测试使用 expect 脚本
日志记录script serial.log
图形界面CoolTerm

✅ 总结

  1. tiopicocom 连接串口
  2. 登录后执行 systemctl stop 停止干扰服务
  3. 使用 gpioset 精准控制硬件

关键词:macOS 串口调试、picocom、tio、嵌入式 Linux、systemd、GPIO 控制、libgpiod、静默模式