zaLinux.ru

Как определить тип и скорость USB порта


Как определить версию и скорость USB порта?

Казалось бы, сказать какая версия и скорость USB разъёма на компьютере это тривиальная задача. Как было раньше? Чёрный разъём — это USB2, а синий разъём — это USB3. Правильно? Это давно уже устаревшая информация, в современных материнских платах и ноутбуках отказались от синего цвета как признака быстрого гнезда USB.

Какие версии USB бывают

Прочитайте следующие статьи:

И вы узнаете, что бывают

  • USB4
  • USB 3.0 и USB 3.1 Gen 1
  • USB 3.1 и USB 3.1 Gen 2
  • USB 3.2 и Gen 2×2

Всё это стало так сложно и непонятно, что это всё стали считать устаревшим и придумали SuperSpeed USB с цифрами.

Что означает маркировка USB портов

Наверняка должна быть подсказка по версии и скорости USB портов рядом с разъёмами.

Давайте посмотрим на следующую фотографию портов на моём ноутбуке:

Во-первых, все эти три порта являются USB портами, даже тот, который маленький!

Смотрите также: Как добавить порты USB-C в компьютер

Во-вторых, что означают эти буквы «SS» и цифра?

Если вы действительно прочитали статьи, на которые даны ссылки выше, то вы уже знаете, что порт без букв «SS» – это старый USB 2.0. Маленький порт с «SS» и цифрой 10 — это SuperSpeed USB 10 Gbps, который раньше назывался USB 3.1 Gen 2.

Хорошо, с двумя портами из трёх разобрались, что же до третьего порта? Понятно, что это какая-то из версий SuperSpeed, но какая именно?

Как в Linux определить, какой порт у моего компьютера: USB3, USB3.0, USB3.1, USB3.2 или USB4

Чтобы проверить версию USB выполните следующую команду:

sudo lsusb -v | grep -i bcdusb

Вывод не очень информативный, с уверенностью можно лишь сказать, что в системе имеются USB порты 3.1 и 2.0 и что к USB 3.1 подключено два устройства, а остальные подключены к USB 2.0. Не удивляйтесь количеству устройств — некоторые из них являются внутренними устройствами (например, веб-камера) и подключены к USB хабу внутри корпуса.

Чтобы разобраться, какие именно устройства используют USB 3.* и какая их скорость нужно углубиться в свойства железа системы.

Начнём с команды

lsusb

Как можно увидеть на скриншоте, на данном компьютере есть корневые хабы 3.0 и 2.0:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

USB хост контроллеры это устройства PCI, поэтому вы можете увидеть их с помощью lspci:


lspci | grep USB

Найдите 'xHCI' который является USB3.

Следующая команда также покажет имеющиеся xhci контроллеры или хабы. Скорость работы показана в конце каждой строки. USB3 начинается от 5000M.

Сравним вывод двух команд:

lsusb -t | grep xhci
lsusb | grep hub

Как можно понять, 2.0 root hub имеет скорость 480M, а 3.0 root hub имеет скорость 10000M.

Чтобы определить, к какому именно USB порту подключена флешка и её скорость, подключите интересующее вас устройство и выполните


lsusb -t

Найдите фразу «Mass Storage» – это диски и флешки. Родитель этого узла соответствует USB порту куда вы подключили вашу флешку. Последней цифрой является скорость.

Как соотносятся версии USB и скорость

На скриншоте выше мы могли видеть скорость 10000M, но какая именно это версия USB?


Посмотрите на следующие данные:

  • 12M = 12MBit/s = USB1
  • 480M = 480MBit/s = USB2
  • 5000M = 5000MBit/s = USB3.0, также известен как USB3.1 gen. 1
  • 10000M = 10000MBit/s = USB 3.1, также известен как USB 3.1 Gen 2
  • 20000M = 20000MBit/s = USB 3.2, также известен как USB 3.2 Gen 2×2; либо это может быть USB4 Gen 2×2 или USB4 Gen 3×1
  • 40000M = 40000MBit/s = USB4 Gen 3×2

На самом деле, названия вида USB 3.* считаются устаревшими, поскольку действительно значение имеет только скорость соединения. В настоящее время «современными» считаются следующие обозначения:

  • SuperSpeed USB 5 Gbps
  • SuperSpeed USB 10 Gbps
  • SuperSpeed USB 20 Gbps

Скрипт lsusb.py для отображения USB-устройств в понятном виде

Примечание: спасибо пользователю redking за подсказку в комментариях!

Скрипт lsusb.py в удобном виде показывает информацию об USB хабах и подключённым к ним устройствам.

Для вывода информации достаточно в командной строке запустить:

lsusb.py

Вы можете получить ошибку, что команда lsusb.py не найдена. Скрипт lsusb.py поставляется с пакетом usbutils, который содержит другую уже используемую нами программу lsusb. По каким-то причинам в некоторых дистрибутивах пакет usbutils распространяется без скрипта lsusb.py. Чтобы его установить выполните следующие команды:

curl https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/plain/lsusb.py.in > lsusb.py
chmod +x lsusb.py
sudo mv lsusb.py /usr/bin/lsusb.py

Строки, которые начинаются на usb1, usb2 и прочее — это USB хабы.

Строки, которые начинаются на 1-1, 1-3, 2-2 и прочее — это USB устройства.

Кроме идентификаторов производителя и устройства, каждой строка в квадратных скобках содержит информацию о версии, скорости, и максимальном потреблении энергии, например:

  • USB 3.10
  • 5000 Mbps
  • 304mA

В круглых скобках показаны имена устройств.

UsbView — просмотр дерева USB устройств в графическом интерфейсе

Скорость USB разъёмов и устройств вы сможете узнать это с помощью такой программы, как UsbView, которая предоставляет очень подробную техническую информацию.

USBView — это небольшое приложение GTK, показывающее, как выглядит дерево устройств шины USB. Он показывает графическое представление устройств, которые в данный момент подключены, показывая топологию шины USB. Она также отображает информацию о каждом отдельном устройстве на шине.

Установка UsbView в Debian, Kali Linux, Linux Mint, Ubuntu и их производные:

sudo apt install usbview

Установка UsbView в Arch Linux, Manjaro, BlackArch и их производные:

sudo pacman -S usbview

Во время установки программа сообщит, что для её работы необходимо выполнить команду

mount -t debugfs none /sys/kernel/debug

либо в файл /etc/fstab добавить строку

none /sys/kernel/debug debugfs defaults 0 0

Вместо этого можно обойтись тем, что запустить программу с правами суперпользователя:

sudo usbview

На скриншоте показано, что компьютер имеет 2 xHCI хост контроллера, один из них версии 3.10:


К контроллеру версии 3.10 подключены два устройства, одно из устройств версии 3.00 (обратите внимание на строку «USB Version: 3.00»).

А другое устройство версии 3.10:


Рекомендуемые статьи:

2 Комментарии

  1. redking

    в неурезанной версии пакета lsusb есть скрипт lsusb.py который в удобочитаемом виде выводит информацию по usb

     

    1. Alexey (Автор записи)

      Приветствую! Спасибо за отличную подсказку! Добавил в статью.

Оставить комментарий

Ваш адрес email не будет опубликован.