Вопрос или проблема
Вопрос: Я хочу посмотреть параметры в /sys/class/typec
, но на моем ноутбуке это не отображается. Когда я вручную загружаю модуль typec
, директория появляется, но она пустая. После загрузки модуля tcpm
ничего не происходит.
Как мне получить интерфейс /sys/class/typec
? Как я могу узнать, поддерживается ли он вообще? Если нет, почему — не обеспечивает ли мое оборудование управление? Не хватает ли драйверов? и т.д.
Ноутбук — HP ProBook 430 G5 (на базе процессора Intel 8-го поколения Kaby Lake Refresh core i5). У него есть один USB-C порт, совместимый с USB Power Delivery (вместе с DisplayPort и обычным USB-трафиком).
Я использую Linux Mint Sylvia, мой ядро — 4.15.3 с kernel.ubuntu.com (установлено через инструмент ukuu
). Это должно быть достаточно современно, чтобы все соответствующие вещи ядра существовали. Почему я их не вижу?
(Я также хочу немного узнать о интерфейсе TypeC, поэтому и задаю этот конкретный вопрос, а не более ориентированный на задачу вариант ниже.)
Контекст, то есть, зачем я вообще это делаю, на случай, если это будет полезно:
Оборудование HP известно тем, что не любит зарядные устройства USB-C от третьих лиц, но в серии 8-го поколения это стало немного лучше; теперь это немного работает.
Я использую следующий док-станцию USB-C: http://i-tec.cz/?t=3&v=443
Когда ноутбук подключен к сети, я могу подключить док-станцию, и все работает нормально. Когда я отключаю адаптер переменного тока, ноутбук продолжает заряжаться через соединение USB-C. То же самое происходит, когда я подключаю док-станцию, когда ноутбук выключен.
Однако, если я просто подключаю док-станцию, когда ноутбук подключен к сети, она вообще не работает. Никакой зарядки, никаких устройств, даже события подключения нет. Более того, ноутбук начинает немного щелкать. В Windows это сопровождается повторяющимися звуками подключения/отключения. В dmesg
я вижу сообщения вроде этого:
[10356.375855] xhci_hcd 0000:00:14.0: Не удается установить состояние ссылки.
[10356.375866] usb usb2-port2: невозможно отключить (ошибка = -32)
(да, это может быть аппаратная проблема)
Тем не менее, если проблема заключается в подаче питания (как кажется, учитывая “вставку при подключенном ИП”), я хотел бы попробовать переключить порт в режим без PD. Тогда я мог бы хотя бы получить функциональность док-станции. Это, кажется, осуществляется через интерфейс USB Type-C Port Manager (tcpm
). У меня этого нет на моем ноутбуке. /sys/class/typec
изначально не существует, появляется пустым после вставки модуля typec
.
USB-C — это новая технология, и только сейчас ядро Linux работает над его поддержкой [1] [2].
Не хватает ли драйверов?
Я предполагаю, что ответ да, так как вы используете старое ядро.
Я думаю, что лучшее, что можно сделать, это сначала обновиться до последнего ядра, а если этого будет недостаточно, дождаться следующей версии ядра.
Ответ или решение
Управление подачей питания через USB-C на ноутбуке HP ProBook G5
Введение
Ваш вопрос о контроле параметров USB-C Power Delivery на ноутбуке HP ProBook G5 поднимает несколько важных аспектов, касающихся как аппаратного, так и программного обеспечения. Несмотря на то, что USB-C представляет собой относительно новую технологию, поддержка ее в Linux, в частности на таком оборудовании, как HP ProBook G5, представляет собой вызов.
Контекст проблемы
Как вы отметили, ваш ноутбук оснащен портом USB-C, который поддерживает функции Power Delivery, DisplayPort и передачи данных. Однако вы сталкиваетесь с проблемой отсутствия интерфейса /sys/class/typec
, что указывает на отсутствие поддержки необходимого программного обеспечения и драйверов для управления данной функцией.
Проверка поддержки USB-C
-
Операционная система и ядро: Убедитесь, что ваша система обновлена до последней версии. Вы используете ядро версии 4.15.3, которое на сегодняшний день может быть недостаточно новым для полной поддержки USB-C. Рассмотрите возможность обновления до более новой версии ядра, например, 5.x или выше, чтобы получить доступ ко всем необходимым драйверам.
-
Загрузка модулей: Для полноценной работы интерфейса
/sys/class/typec
необходимо не только загрузить модульtypec
, но также и модульtcpm
. Однако, как вы заметили, даже после загрузки этих модулей, проблема не решается, и каталог остается пустым. Это может свидетельствовать о том, что ваше оборудование не предоставляет нужных контроллеров или что отсутствуют соответствующие драйверы.
Инженерный анализ
-
Аппаратная поддержка: Узнайте, поддерживает ли контроллер вашего тип порта USB-C управление подачей питания. Произведите проверку технической документации HP ProBook G5 на наличие информации о соответствующих компонентах.
-
Зависимости драйверов: Возможно, ваша версия ядра не включает в себя необходимые зависимости для работы с USB Power Delivery. Можно попробовать установить дополнительные пакеты и модули, которые соответствуют вашему дистрибутиву и архитектуре.
-
Ошибки в
dmesg
: Сообщения изdmesg
, такие как "Cannot set link state" и "cannot disable (err = -32)", указывают на возможные проблемы на уровне USB контроллера, что может свидетельствовать о программе или аппаратных сбоях.
Потенциальные решения
-
Обновление ядра: Первым действием рекомендуется обновить ядро до последней стабильной версии, чтобы обеспечить максимальную совместимость с новыми драйверами и модулями USB-C.
-
Использование другого дистрибутива: В некоторых случаях стоит подумать о переходе на дистрибутив, который имеет более современную поддержку оборудования и может иметь уже включенные необходимые драйвера и утилиты.
-
Консультации с сообществом: Присоединитесь к специализированным форумам Linux и HP, где пользователи делятся своим опытом и конкретными решениями по работе с USB-C на аналогичных устройствах.
Заключение
Решение проблем с USB-C Power Delivery на ноутбуке HP ProBook G5 требует комплексного подхода и возможного обновления аппаратного и программного обеспечения. Регулярные обновления и мониторинг последних изменений в Linux помогут вам находить решение возникающих технических трудностей. Ваши усилия по исследованию интерфейса Type-C и управлению зарядкой также могут способствовать более глубокому пониманию новых технологий и их интеграции в существующие системы.