USB

Шины: зачем их несколько

USB (Universal Serial Bus) — внешняя шина: то, что торчит из корпуса и подключается на ходу. Её задача — быть универсальной: один разъём и один набор правил для клавиатуры, камеры, диска, телефона и мыши.

Внутри USB устроен как дерево. Контроллер в компьютере — корень, к нему подключаются устройства и хабы, к хабам — ещё устройства. Глубина — до семи уровней, на одной шине до 127 адресов.

Контроллер, шины и хабы

Понятие Что это
Хост-контроллер (xHCI) Устройство в компьютере, которое управляет шиной
Корневой хаб Встроен в контроллер; от него растёт дерево
Хаб Разветвитель: один вход, несколько выходов
Устройство То, что вы воткнули

Современный контроллер (xHCI) даёт две шины: одну для USB 2.0 и одну для USB 3.x. Они независимы, поэтому в системе видно больше «шин», чем физических контроллеров. В этом ноутбуке контроллеров два — чипсетный и thunderbolt-ный — и шин, соответственно, четыре.

Скорости

Версия Полоса Где встречается
USB 1.1 12 Мбит/с мыши, клавиатуры, Bluetooth-модули
USB 2.0 480 Мбит/с камеры, флешки, звуковые карты
USB 3.2 Gen 1 5 Гбит/с обычные внешние SSD
USB 3.2 Gen 2 10 Гбит/с быстрые SSD, NVMe-корпуса
USB4 20/40 Гбит/с док-станции, внешние GPU (внутри — PCIe)

Названия запутаны намеренно историей: «USB 3.0», «3.1 Gen 1» и «3.2 Gen 1» — это одно и то же 5 Гбит/с. Смотреть надо не на название, а на цифру.

Питание

USB не только данные, но и питание:

  • USB 2.0 — до 500 мА на порт;
  • USB 3.x — до 900 мА;
  • USB Power Delivery — до 100 Вт и больше: по одному кабелю идёт и зарядка ноутбука, и данные.

Поэтому «не заряжается» и «не определяется» — разные проблемы: первая про питание и протокол PD, вторая про данные и перечисление.

Классы устройств и драйверы

USB-устройство сообщает, что оно такое — класс. От класса зависит драйвер:

Класс Что это Драйвер в Linux
HID мыши, клавиатуры, игровые устройства usbhid
Mass Storage / UAS флешки, внешние диски usb-storage, uas
Video (UVC) веб-камеры uvcvideo
Audio звуковые карты snd-usb-audio
Wireless Bluetooth-модули btusb
Hub разветвители hub

Тип передачи тоже зависит от устройства: control — служебные команды, interrupt — мышь и клавиатура (маленькие частые пакеты), bulk — диски (большие блоки без гарантии времени), isochronous — камера и звук (важна своевременность, а не гарантия доставки). Отсюда и характерные симптомы: звук «булькает» при нехватке полосы, а диск просто медленнее.

Как это видно в системе

$ lsusb              # список: шина, устройство, ID, название
$ lsusb -t           # дерево с портами и скоростями
$ lsusb -v -d 0bda:565c   # всё про конкретное устройство
$ ls /sys/bus/usb/devices  # 1-1, 1-1.2, 1-1.2:1.0 — шина-порт и интерфейс

В sysfs имя устройства читается так: 1-1.2 — шина 1, порт 1, подпорт 2; :1.0 — конфигурация 1, интерфейс 0. Это удобно, когда надо понять, куда именно воткнут диск.

Что в этом ноутбуке

$ lspci | grep -i usb
00:14.0 USB controller: Intel Cannon Point-LP USB 3.1 xHCI Controller
39:00.0 USB controller: Intel JHL6340 Thunderbolt 3 USB 3.1 Controller

$ lsusb -t
Bus 001: root_hub, xhci_hcd/12p, 480M      ← чипсет, USB 2.0
    Port 003: Xiaomi Wireless Mouse 3 (HID, 12M)
    Port 006: Integrated Webcam (Video, 480M)
    Port 010: Bluetooth 9460/9560 (Wireless, 12M)
Bus 002: root_hub, xhci_hcd/6p, 10000M     ← чипсет, USB 3.x (пусто)
Bus 003: root_hub, xhci_hcd/2p, 480M       ← Thunderbolt, USB 2.0 (пусто)
Bus 004: root_hub, xhci_hcd/2p, 10000M     ← Thunderbolt, USB 3.x (пусто)

Три вывода из этой картинки:

  • устройства не гонятся за скоростью — мышь и Bluetooth сидят на 12 Мбит/с, камера на 480. Быстрая шина им не нужна;
  • USB 3-шины пустуют — это нормально: они ждут флешку или внешний диск;
  • число портов в скобках (12p, 6p, 2p) — сколько портов обслуживает контроллер.

Когда что-то не так

Симптом Что смотреть
Устройство не видно `dmesg
«Недостаточно питания» USB-хаб без питания; порт 2.0 вместо 3.x; dmesg про over-current
Диск медленный lsusb -t — не сел ли на 480 Мбит/с; кабель (не все тянут USB 3)
Камера «занята» другое приложение держит устройство; перезагрузка модуля uvcvideo
Устройство отваливается управление питанием порта: dmesg, powertop, отключение autosuspend

Источники

  • USB-IF: https://www.usb.org/ — спецификации, включая Power Delivery и USB4.
  • Документация ядра: https://docs.kernel.org/driver-api/usb/ — подсистема USB.
  • man 8 lsusb, man 1 lsusb, man 8 usbhid.
  • Дерево USB и устройства — с ноутбука Dell Latitude 7400 (Ubuntu 26.04), 25.10.2026.

Что ещё не проверено

  • Скорости в таблице — по спецификации. Реальная скорость зависит от кабеля, порта и самого устройства: USB 3-устройство в порту 2.0 работает на 480 Мбит/с.
  • Проверка питания (ток на порту, PD-профили) на этой машине не делалась: нужен внешний USB-тестер или powertop с правами root.
Оценка статьи 0

Комментарии

Пока комментариев нет.