Один разъём — бесконечное количество вопросов

Вы когда-нибудь подключали ноутбук к зарядке и видели надпись «Зарядка идёт медленно»? Или копировали файлы с внешнего SSD и замечали, что скорость явно не 10 Гбит/с, обещанных на коробке? Скорее всего, виноват кабель — тот самый невзрачный шнур, который выглядит точь-в-точь как Thunderbolt 4, но внутри оказывается старым добрым USB 2.0.

USB-C скрывает под собой колоссальный разброс характеристик: от зарядного кабеля USB 2.0 до 240 Вт / 40 Гбит/с Thunderbolt 4 — и все они выглядят одинаково в вашем ящике стола.

Именно с этой проблемой борется WhatCable — крошечное open-source приложение для macOS, которое в одно касание показывает, на что реально способен подключённый кабель.


Что такое WhatCable и как оно работает

WhatCable — macOS-приложение в меню баре, которое на понятном языке объясняет, что умеет каждый USB-C кабель, подключённый к вашему Mac, и почему Mac может заряжаться медленно.

Подключите кабель — и приложение тут же сообщит, на что он способен: зарядная мощность, скорость передачи данных, поддержка дисплея, Thunderbolt и т.д. Написано на Swift/SwiftUI, полностью открытый исходный код, бесплатно, без трекинга.

Принцип работы прост и элегантен: macOS уже имеет доступ к нужной информации через IOKit — WhatCable просто выводит её в виде удобного popover-меню.

ℹ Что такое IOKit?
IOKit — это фреймворк ядра macOS для взаимодействия с аппаратным обеспечением. Он предоставляет доступ к информации о подключённых устройствах, включая детали USB-C кабелей и их e-marker чипов, без необходимости использовать приватные API.

WhatCable считывает три семейства служб IOKit. Никаких дополнительных разрешений, приватных API или вспомогательных демонов: декодирование скорости и мощности кабеля следует спецификации USB Power Delivery 3.x.


Что именно показывает приложение

WhatCable отображает информацию в нескольких категориях:

Основной статус кабеля

С первого взгляда видно общий заголовок: Thunderbolt / USB4, USB-устройство, только зарядка, медленный USB / только зарядка, ничего не подключено. Плюс диагностика зарядки — когда что-то подключено, баннер определяет узкое место: «Кабель ограничивает скорость зарядки» (кабель рассчитан на меньше, чем зарядник) или «Зарядка идёт на 30 Вт (зарядник может до 96 Вт)» (Mac запрашивает меньше, например, когда батарея почти заряжена).

Информация об e-marker чипе

Данные e-marker кабеля — его реальная скорость (USB 2.0, 5 / 10 / 20 / 40 / 80 Гбит/с), номинальный ток (3 А / 5 А → до 60 Вт / 100 Вт / 240 Вт) и производитель чипа.

Активные транспорты

Активные транспорты — USB 2 / USB 3 / Thunderbolt / DisplayPort. Нажатие ⌥ на иконке в меню баре (или переключатель в настройках) раскрывает скрытые свойства IOKit для инженеров.

💡 Лайфхак для разработчиков
Удерживайте ⌥ (Option) при клике на иконке WhatCable в меню баре — откроется режим инженера с необработанными IOKit-свойствами. Идеально для диагностики USB-C стека на низком уровне.

Как выглядит процесс диагностики


flowchart TD
    A[Подключаете кабель к Mac] --> B[WhatCable опрашивает IOKit]
    B --> C{Есть e-marker?}
    C -- Да --> D[Читает скорость, мощность, производителя]
    C -- Нет --> E[Отмечает: кабель без маркера]
    D --> F[Сравнивает с зарядником]
    E --> F
    F --> G{Кабель — узкое место?}
    G -- Да --> H[Баннер: кабель ограничивает зарядку]
    G -- Нет --> I[Показывает текущую мощность и скорость]
    H --> J[Итоговый popover в меню баре]
    I --> J


Почему это вообще нужно: хаос мира USB-C

Чтобы понять ценность WhatCable, достаточно взглянуть на то, насколько запутан мир USB-C стандартов.

USB-C — это 24-контактный реверсивный разъём (не протокол), который используется для обмена данными с периферией, передачи аудио/видео на дисплеи и питания устройств. Кроме USB, через него могут работать Thunderbolt, PCIe, DisplayPort и HDMI.

Однако физическая идентичность разъёмов скрывает огромный разброс возможностей:

СтандартСкорость данныхМакс. мощностьE-markerДисплей
USB 2.0480 Мбит/сдо 60 ВтНетНет
USB 3.2 Gen 15 Гбит/сдо 60 ВтОпциональноAlt Mode
USB 3.2 Gen 210 Гбит/сдо 100 ВтДа (5А)Alt Mode
USB 3.2 Gen 2×220 Гбит/сдо 100 ВтДа (5А)Alt Mode
USB4 Gen 2×220 Гбит/сдо 240 ВтДаDP 2.0
USB4 Gen 3×240 Гбит/сдо 240 ВтДаDP 2.1
Thunderbolt 440 Гбит/сдо 100 ВтДаDual 4K
Thunderbolt 580 Гбит/сдо 240 ВтДаDual 8K

USB4 определяет скорости передачи данных 20 Гбит/с, 40 Гбит/с и 80 Гбит/с, а Thunderbolt 5 обеспечивает симметричную пропускную способность 80 Гбит/с и однонаправленную 120 Гбит/с для дисплеев, поддерживая dual 8K при 60 Гц.

К сожалению, многие USB-C кабели, поставляемые в комплекте с устройствами (особенно с зарядниками), поддерживают лишь самый старый и медленный стандарт — USB 2.0.

Кабель USB-C может выглядеть одинаково, стоить одинаково и при этом различаться в скорости передачи данных в 166 000 раз — от 480 Мбит/с до 80 Гбит/с.

Что такое e-marker и почему он важен

E-marker сообщает, как кабель идентифицирует сам себя: максимальное напряжение, максимальный ток, максимальная скорость (и USB-рейтинг), тип кабеля и даже его ориентация.

Информация e-marker появляется только для кабелей, в которых он есть. Большинство USB-C кабелей мощностью до 60 Вт не имеют маркера. Любой Thunderbolt / USB4 кабель, любой 5А / 100Вт+ кабель и большинство качественных дата-кабелей будут иметь e-marker.

⚠ Осторожно с дешёвыми кабелями
Кабели без e-marker чипа не могут передавать мощность выше 60 Вт. Если вы используете такой кабель с 96-ваттным зарядником MacBook Pro — вы теряете треть мощности зарядки. WhatCable покажет это мгновенно.

Установка и требования

Скачайте последний WhatCable.zip со страницы Releases, разархивируйте и перетащите WhatCable.app в /Applications. Приложение универсальное (Apple Silicon + Intel), подписано Developer ID и нотаризировано Apple — никаких предупреждений Gatekeeper. Требуется macOS 14 (Sonoma) или новее.

# Шаги установки:
# 1. Скачать WhatCable.zip с GitHub Releases
# 2. Разархивировать
# 3. Перетащить WhatCable.app в /Applications
# 4. Запустить — иконка появится в меню баре

# Для самостоятельной сборки:
git clone https://github.com/darrylmorley/whatcable.git
cd whatcable
open WhatCable.xcodeproj

Сборка из исходников (для разработчиков)

Если хотите собрать приложение самостоятельно и подписать своим Developer ID:

Найдите свою подпись через security find-identity -v -p codesigning, затем сохраните учётные данные для нотаризации через xcrun notarytool store-credentials с вашим Apple ID и Team ID.


WhatCable vs. альтернативы

WhatCable — не единственное решение для диагностики USB-C подключений на Mac. Рассмотрим альтернативы:

ПараметрWhatCableUSB Connection InformationSystem Information
ЦенаБесплатно$4.99Бесплатно (встроен)
Меню бар
E-marker данные
ThunderboltЧастично
Диагностика зарядки
Open source
Режим инженера✅ (IOKit)Частично
ТребованияmacOS 14+macOSЛюбой macOS

USB Connection Information — специализированный инструмент мониторинга, отображающий скорость подключения в реальном времени, потребление мощности и идентификацию устройств прямо из меню бара. Приложение чётко показывает согласованные скорости подключения, делая немедленно очевидным, когда кабели или порты создают узкие места. Однако его ограничение — исключительный фокус на USB-соединениях: Thunderbolt и другие типы подключений не поддерживаются.

macOS System Information может показать текущую скорость USB-соединения, но каждый раз лезть туда при подключении нового устройства или замене кабеля — слишком много лишних действий.

WhatCable выигрывает именно совокупностью: бесплатно, open source, без трекинга, с поддержкой Thunderbolt и e-marker, плюс режим инженера для глубокой диагностики.


Практические сценарии использования

Сценарий 1: Медленная зарядка ноутбука

Вы купили новый 96-Вт зарядник для MacBook Pro, но замечаете, что ноутбук заряжается как-то вяло. Подключаете кабель → WhatCable показывает баннер: «Кабель ограничивает зарядку». Причина: кабель без e-marker, рассчитан только на 60 Вт. Решение: заменить на кабель с e-marker 5А.

Сценарий 2: Внешний SSD работает медленно

Вы копируете 50 ГБ на внешний NVMe-накопитель и видите скорость 40 МБ/с вместо ожидаемых 1000+ МБ/с. WhatCable показывает: активный транспорт — USB 2.0, хотя кабель выглядит «правильным». Просто замените кабель на тот, у которого скорость 10+ Гбит/с.

Сценарий 3: Монитор не подключается через USB-C

Кабель выглядит как Thunderbolt, но дисплей через него не работает. WhatCable сразу показывает: нет DisplayPort в активных транспортах, кабель — USB 2.0 без Alt Mode. Диагноз за две секунды.

📝 Реальная история
Пользователи на Hacker News рассказывают практически одинаковые истории: подключили внешний диск, скорость упала до USB 2.0 уровня. Кабель выглядел нормально. Только после проверки через системные инструменты выяснилось, что он физически поддерживает только старый протокол. WhatCable решает эту задачу за секунды, без погружения в System Information.

Технические детали: что происходит под капотом

Декодер PD-спецификации ориентирован на PD 3.0 / 3.1. Варианты PD 3.2 EPR могут потребовать доработки по мере появления реальных данных. Справочник производителей встроен, но не исчерпывающий — распространённые производители кабелей, зарядников, хабов, доков и накопителей распознаются; остальные отображаются как hex VID.

Архитектура приложения строится на трёх уровнях:

  1. IOKit layer — чтение данных от USB PD контроллера, Thunderbolt контроллера и USB хоста
  2. Decoder layer — расшифровка e-marker данных по спецификации PD 3.x
  3. SwiftUI layer — отображение в виде popover-меню в меню баре macOS

CC-канал конфигурации используется согласно стандарту Type-C для обнаружения подключений, ориентации штекера (из-за реверсивной оболочки USB Type-C) и установления связи USB PD для переговоров о питании и запроса кабеля (eMarker) и противоположной стороны для возможностей USB4 или TB3.


Заключение

WhatCable решает реальную, но незаметную проблему: хаос в мире USB-C кабелей, где внешний вид абсолютно ничего не говорит о возможностях. Приложение бесплатное, open source, не собирает данные, работает нативно через IOKit без хаков и приватных API.

Если вы пользователь Mac и у вас больше одного USB-C кабеля (а их наверняка больше пяти) — WhatCable стоит того, чтобы держать его в меню баре постоянно. Это как иметь мультиметр для кабелей, только без необходимости разбираться в электронике.

Лучший инструмент — тот, о котором не думаешь. WhatCable просто живёт в меню баре и молчит, пока не нужен.

Ссылки: