别再瞎猜了:如何真正看清你的 USB-C 线缆性能

USB-C 线缆外观看起来都一样,但性能却千差万别。WhatCable 是一款 macOS 实用工具,它能解码电子标签(e-marker)数据,准确告诉你线缆支持的具体规格。

如果你抽屉里塞满了 USB-C 线缆,你一定深有体会:它们看起来一模一样,但其中一根可能是支持 240W 快充的“怪兽”,另一根是 40Gbps 的雷电(Thunderbolt)强力线,而第三根可能只是耳机附赠的 480Mbps“仅充电”线。

多年来,区分它们的唯一方法就是使用昂贵的硬件进行测试,或者依靠反复试验。WhatCable 改变了这一现状,它能直接从 macOS 的 IOKit 中提取隐藏的“电子标签(e-marker)”数据,并以简洁、易读的菜单栏应用形式呈现出来。

为什么这对开发者很重要

作为开发者,我们经常需要处理高带宽外设、外置 SSD 和高功耗工作站。当传输速度受限或笔记本电脑无法全速充电时,线缆通常是第一个被怀疑的对象,但验证这一点向来非常困难。

WhatCable 通过读取 USB Power Delivery (PD) Discover Identity 响应解决了这个问题。它不是在猜测,而是直接查询线缆接头内部的芯片,从而报告:

  • 数据速度: 从 480 Mbps (USB 2.0) 到 80 Gbps 不等。
  • 功率等级: 支持 60W、100W 或 240W。
  • 协议支持: Thunderbolt 3/4/5、USB4 或 DisplayPort。

不止于菜单栏:命令行工具 (CLI)

虽然菜单栏应用非常适合快速查看,但该项目还包含一个强大的 CLI 工具。这对于脚本编写或在终端进行快速诊断非常有用。如果你通过 Homebrew 安装(brew install --cask whatcable),系统会自动添加 whatcable 命令。

在终端运行 whatcable 可以立即获取端口状态快照:

$ whatcable

USB-C Port 1
✓ 充电功率 96W
线缆: 5A, 100W, USB4 40 Gbps
充电器: 5V / 9V / 15V / 20V PDOs

USB-C Port 2
! 线缆限制了充电速度
线缆: 3A, 60W, USB 2.0
设备: 外置 SSD, USB 10 Gbps

你甚至可以使用 --json 将输出通过管道传给 jq 进行自动化监控或记录,或者使用 --watch 在插入和拔出设备时查看实时更新。

工作原理

WhatCable 是利用原生 macOS API 而无需依赖私有 Hack 的典范。它与四个特定的 IOKit 服务族进行交互:

  1. AppleHPMInterface / AppleTCController: 监控每个端口的状态、连接和方向。
  2. IOPortFeaturePowerSource: 从充电器中提取完整的电源对象(PDO)列表。
  3. IOPortTransportComponent: 从线缆的电子标签中解码 PD Discover Identity VDO 数据。
  4. XHCI Controller Subtree: 将连接的 USB 设备映射到其物理端口。

因为它依赖于这些标准接口,所以它轻量、安全,且不需要侵入式的内核扩展或辅助守护进程。

专业功能与硬件健康

虽然核心工具是免费且开源的,但该项目还提供了一个“Pro”版本,增加了深度诊断功能,包括:

  • 实时功率计量: 电源输入的实时图表。
  • 协商诊断: 并排对比你的 Mac、线缆和设备各自支持的规格与实际协商的结果。
  • 电阻估算: 一种识别可能导致电压降的劣质或损坏线缆的巧妙方法。

开始使用

如果你使用的是搭载 Apple Silicon 芯片且运行 macOS 14 或更高版本的 Mac,可以从 GitHub 仓库 获取最新版本。

专业提示: 如果你怀疑某根线缆标签错误或存在假冒嫌疑,请使用 whatcable --report 命令。它会生成一个包含线缆指纹的预填 GitHub Issue,帮助社区建立更完善的线缆规格数据库。通过贡献你的数据,你也在帮助所有人让这个工具变得更准确。

来源

darrylmorley/whatcable: macOS 菜单栏应用,用简单的语言告诉你插入 Mac 的每根 USB-C 线缆到底能做什么