欢迎光临
我们一直在努力

WezTerm 如何连接串口控制台调试嵌入式设备与无头服务器?

WezTerm 如何连接串口控制台调试嵌入式设备与无头服务器?

【免费下载链接】wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust 【免费下载链接】wezterm 项目地址: https://gitcode.com/GitHub_Trending/we/wezterm

WezTerm 除了作为终端仿真器,还可以作为串口客户端直接打开本地串口设备。官方文档给出的典型场景正是本文标题中的两个用途:调试 Arduino 等嵌入式设备,以及连接无头服务器上的串口控制台。本文基于仓库中的 docs/serial.md、docs/cli/serial.md 和 docs/config/lua/config/serial_ports.md 三篇文档,给出从一次性连接到处方配置的操作路径。

一次性连接:wezterm serial <端口>

最直接的方式是用 wezterm serial 子命令打开一个串口,语法为:

$ wezterm serial [OPTIONS] <PORT>

其中 <PORT> 是串口设备名,文档对两个平台的命名方式有明确说明:

  • Linux 等 posix 系统:设备路径,例如 /dev/ttyUSB0
  • Windows 系统:COM0 这样的 COM 口名称

对应的基本命令为:

# Linux
$ wezterm serial /dev/ttyUSB0

# Windows
$ wezterm serial COM0

指定波特率:–baud

串口的通信速率必须与对端设备一致,而 wezterm serial 的默认波特率是 9600(来自 docs/examples/cmd-synopsis-wezterm-serial–help.txt 中 –baud 的说明)。如果你的设备(大多数嵌入式设备、UART 控制台)运行在更高速率上,需要显式用 –baud 指定:

$ wezterm serial –baud 38400 /dev/ttyUSB0

–baud <BAUD> 的含义文档中只说明为“Set the baud rate”,其余参数以 wezterm serial –help 的输出为准;此外还有 –class(覆盖窗口系统类名)和 –position(覆盖初始窗口位置)两个与调试流程无关的选项,本文不展开。

连接窗口上的行为限制

文档明确说明:当 wezterm 窗口处于串口模式时,不能在该窗口内新建标签页("When a wezterm window is operating in serial mode it is not possible to create new tabs")。也就是说,一个串口连接独占一个窗口,如果你同时要观察设备输出和查资料,需要另开一个 wezterm 普通终端窗口。

常用串口固化为命名域:serial_ports 配置

如果某个串口你经常连,可以在 Lua 配置中定义 serial_ports,把端口和波特率固化下来,之后通过 wezterm connect 或启动器菜单连接。配置项说明如下:

  • name – 串口域的名称,必须在所有多路复用域中唯一;
  • port – 串口设备名,Windows 下为 COM0 这类名称,posix 下为 /dev/ttyUSB0 这类路径。省略时 name 字段会被当作端口名解释;
  • baud – 通信速率,省略时默认 9600。

定义单个端口的示例(来自文档原文):

config.serial_ports = {
{
name = '/dev/tty.usbserial-10',
baud = 115200,
},
}

多个端口可以起友好的名字,例如:

config.serial_ports = {
{
name = 'Sensor 1',
port = '/dev/tty.usbserial-10',
baud = 115200,
},
{
name = 'Sensor 2',
port = '/dev/tty.usbserial-11',
baud = 115200,
},
}

配置生效后,文档给出了三种使用方式:

  • 命令行直接连接:

    $ wezterm connect /dev/tty.usbserial-10

    文档说明其行为类似于 wezterm serial /dev/tty.usbserial-10 –baud 115200,即端口名和波特率都取自配置。

  • 正常启动 wezterm 后,使用 Command Palette 或 Launcher Menu,在该串口域中打开新标签页连接设备。

  • 在包含 SpawnCommand 的标签/窗口生成类键绑定中,按名称引用该串口域。

  • 结果验证与已知限制

    完成连接后如何判断成功,文档没有给出固定的输出样例;能依据文档确认的判据是:

    • wezterm serial / wezterm connect 打开的窗口即为串口会话,直接向其中输入(如回车)看对端设备是否有响应,这是串口调试的常规确认方式;
    • 若对端无响应,按文档核对的第一项是波特率:–baud / baud 配置必须与设备侧一致,默认值是 9600;
    • 串口窗口内尝试新建标签页失败属于预期行为,不是故障(见上文限制)。

    历史版本方面的一个参考信息:docs/changelog.md 记录了 20200202 版本修复过“打开串口时波特率未生效”的 bug,如果你使用的发行版包非常旧且发现 –baud 不生效,可先考虑升级。

    适用边界

    • 本文覆盖的是本机直接打开串口(USB 转串口设备或服务器串口映射到本地的设备文件),远程服务器的串口需要先把设备路径映射到本机,文档未覆盖这一步。
    • Flatpak 安装方式运行在沙箱内,文档提示其行为可能与原生包有差异(见 docs/install/linux.md);需要稳定访问 /dev/tty* 设备时,建议按文档建议选择原生包安装。

    【免费下载链接】wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust 【免费下载链接】wezterm 项目地址: https://gitcode.com/GitHub_Trending/we/wezterm

    创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

    赞(0)
    未经允许不得转载:171主机测评 » WezTerm 如何连接串口控制台调试嵌入式设备与无头服务器?
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址