Как пользоваться lsusb в Linux: практическое руководство

Быстрые ссылки
Что такое lsusb?
Первое запуск lsusb
Углублённое использование lsusb
Сводка
Что такое lsusb?
lsusb — это консольная утилита в Linux, которая перечисляет и идентифицирует все USB‑устройства и USB‑хабы, обнаруженные в системе. Утилита обычно устанавливается по умолчанию в современных дистрибутивах Linux и доступна на рабочих станциях, серверах и небольших устройствах типа Raspberry Pi.
Определение: USB Device ID — идентификатор USB‑устройства в формате vendor:product (например, 04d9:1203), где первая часть — идентификатор производителя (vendor), вторая — идентификатор продукта.
Важно: lsusb — это программа для просмотра информации о USB на уровне пользователей. Для изменения поведения устройства часто требуется загрузка подходящего модуля ядра (driver) или работа с udev‑правилами.
Вы можете прочитать встроенную справку по команде:
man lsusb
Чтобы открыть терминал в графической среде, обычно нажимают кнопку «Действия» или меню ОС, вводят Terminal/Терминал и запускают его. Часто можно вызвать терминал сочетанием клавиш (например, Windows‑key + T), если это настроено в системе.
Первое запуск lsusb
Запустите команду без параметров, чтобы получить краткий список подключённых устройств:
lsusbПример строки вывода:
Bus 002 Device 003: ID 046d:c077 Logitech, Inc. M105 Optical MouseРазбор полей:
- Bus 002 — номер шины USB в системе.
- Device 003 — номер устройства на этой шине.
- ID 046d:c077 — vendor:product (производитель:продукт).
- Последняя колонка — человекочитаемое описание устройства.
Совет: вставьте полный ID в поисковую систему (в кавычках для точного поиска), добавьте слова driver или download, чтобы найти драйверы или документацию для конкретного устройства.
Примечание: не все записи lsusb — физические устройства. Это могут быть программные интерфейсы, эмулированные хабы (например, в виртуальных машинах), сетевые USB‑мосты и пр. В VirtualBox вы увидите эмулируемые корневые хабы вроде “Linux Foundation 1.1 root hub”.
Полезный приём: если в выводе присутствует “Linux Foundation 3.0 root hub”, значит в системе присутствует поддержка USB 3.0 (если оборудование не виртуализировано).
Углублённое использование lsusb
Стандартные опции и сценарии применения:
- lsusb -v — максимально подробный (verbose) вывод о всех устройствах. Рекомендуется запускать с sudo для доступа ко всем данным:
sudo lsusb -v 2>/dev/null- lsusb -d VV:PP — показать только устройства с конкретным vendor:product (VV:PP). Пример:
lsusb -d 046d:c077- lsusb -s [[bus]:][devnum] — фильтрация по шине и/или номеру устройства. Примеры:
lsusb -s 002:003 # шина 002, устройство 003
lsusb -s 002 # все устройства на шине 002- lsusb -t — дерево USB‑топологии: показывает скорости портов и подключённые устройства.
lsusb -t- lsusb -D /dev/bus/usb/002/003 — получить дескриптор конкретного устройства (полезно для скриптов и детальной отладки).
sudo lsusb -D /dev/bus/usb/002/003Частая задача — найти потребляемую мощность (MaxPower). Пример получения только MaxPower для выбранного устройства:
sudo lsusb -d 046d:c077 -v 2>/dev/null | grep 'MaxPower'Пояснение: в verbose‑выводе присутствуют дескрипторы конфигурации, интерфейса и endpoint. Полезно смотреть поля:
- bDeviceClass / bDeviceSubClass — класс устройства (например, 0x09 — hub, 0x03 — HID)
- bcdUSB — версия USB (1.10, 2.00, 3.00)
- bMaxPower — максимальная мощность (мА), заявленная устройством
Важно понимать: вывод lsusb отражает то, что заявляет устройство и/или драйвер. Если устройство некорректно работает на аппаратном уровне, дескрипторы могут быть неполные или некорректные.
Примеры фильтрации и поиска
- Найти все устройства конкретного производителя (только vendor): используйте grep по выводу lsusb:
lsusb | grep 046d
lsusb | grep -i logitech- Искать только по product (если vendor неизвестен): используйте grep с частью ID или текстовым описанием.
lsusb | grep c077- Если вы по ошибке передали product в опцию -s, lsusb попытается интерпретировать это значение как bus:devnum и вы получите неожиданный вывод. Всегда используйте -d для vendor:product.
Советы по безопасности и привилегиям
- Многие флаги, особенно -v и -D, дают больше информации при запуске от root. Используйте sudo, если вы доверяете команде.
- Удаление бинарника lsusb вручную (rm /usr/bin/lsusb) не рекомендуется; это ломает ожидаемую функциональность системы.
Диагностика: методика для медленной диагностики USB
Мини‑методика (короткая последовательность действий):
- Подключите устройство и выполните lsusb, зафиксируйте ID.
- Выполните dmesg | tail -n 50 сразу после подключения и проверьте сообщения ядра.
- Запустите sudo lsusb -v -d vendor:product > device.txt и изучите дескрипторы.
- Сравните bcdUSB и bMaxPower с ожиданиями (USB 3.0 vs 2.0, требуемый ток).
- Если необходимо, используйте lsusb -t для проверки скорости порта.
- Если устройство не отображается, проверьте физику (кабель, питание, хаб).
Команды, полезные при диагностике:
dmesg | tail -n 50
sudo lsusb -v -d 046d:c077 > /tmp/mouse.txt
lsusb -t
cat /sys/bus/usb/devices/2-1/uevent
udevadm info -a -p /sys/bus/usb/devices/2-1Важно: путь в /sys/bus/usb/devices может отличаться; используйте вывод lsusb для сопоставления bus/devnum с соответствующей записью в /sys.
Частые сценарии и альтернативные подходы
Устройство видно в lsusb, но не работает в пользовательском приложении.
- Проверьте загрузку модуля ядра: lsmod | grep
- Посмотрите, создалось ли устройство в /dev (например, /dev/input/* для мышей/клавиатур).
- Проверьте права доступа и udev‑правила.
- Проверьте загрузку модуля ядра: lsmod | grep
Устройство не показывается в lsusb.
- Попробуйте другой кабель и порт (особенно USB‑C/USB‑A переходники могут быть плохими).
- Подключите напрямую к хосту (минус хаб).
- Проверьте питание: некоторые внешние HDD требуют отдельного питания.
Виртуальная машина не видит физическое устройство.
- В VMware/VirtualBox нужно настроить проброс USB в гостевую ОС и/или установить расширения гостевой поддержки.
Альтернативы/дополнения:
- usb-devices — скрипт, который форматирует данные из sysfs в удобный вид.
- lsblk / dmesg — для дисковых USB‑устройств дополнительно проверять появление block‑устройств.
Чек‑листы для ролей
Администратор:
- Выполнить lsusb и зафиксировать ID.
- Проверить dmesg на ошибки при подключении.
- Просмотреть sudo lsusb -v для выяснения требуемой мощности и интерфейсов.
- Проверить модули ядра и права в /dev.
- Добавить/править udev‑правило при необходимости.
Сервисная поддержка (helpdesk):
- Уточнить модель и ID устройства у пользователя.
- Попросить переподключить к другому порту и кабелю.
- Если устройство работает на другом компьютере — направить к администратору.
Разработчик драйвера/встраиваемого ПО:
- Собрать sudo lsusb -v для воспроизведения среды.
- Проверить дескрипторы интерфейса и endpoints.
- Сравнить bDeviceClass и bInterfaceClass с ожидаемыми.
Пользователь:
- Попробовать другой кабель/порт.
- Перезапустить приложение или компьютер.
- Сообщить точный текст из lsusb и dmesg в службу поддержки.
Сниппеты и шпаргалка команд
Часто используемые команды:
# Краткий список
lsusb
# Поиск по vendor или тексту
lsusb | grep -i logitech
# Подробный вывод для конкретного устройства
sudo lsusb -d 046d:c077 -v 2>/dev/null
# Дерево топологии с информацией о скоростях
lsusb -t
# Дескриптор устройства по пути в /dev
sudo lsusb -D /dev/bus/usb/002/003
# Перенаправить подробный вывод в файл для анализа
sudo lsusb -v > lsusb-full.txtШпаргалка по интерпретации полей:
- ID xxxx:yyyy — vendor:product
- bcdUSB — версия USB
- bMaxPower — требуемый ток в мА
- bDeviceClass — общий класс (HID, Mass Storage, Hub и т.д.)
Ограничения и случаи, когда lsusb не помогает
- lsusb показывает только то, что сообщает ядро и само устройство. Если устройство «молчит» на аппаратном уровне (сломанный контроллер), lsusb может ничего не показать.
- lsusb не заменяет анализатор USB‑трафика (например, Wireshark + usbmon) при разборе протоколов и пакетов.
- Некоторые драйверы или виртуализация маскируют физические устройства: вывод может отличаться от ожидаемого в гостевой системе.
Важно: для глубокого анализа протоколов используйте usbmon + Wireshark, а для диагностики питания — USB‑тестер или метрику в логах устройства.
Дерево принятия решений для устранения проблем с USB
flowchart TD
A[Устройство не работает] --> B{Показывается в lsusb?}
B -- Да --> C{Появилось ли устройство в /dev?}
B -- Нет --> D[Проверить кабель/порт/питание]
D --> E{Показывается в lsusb после смены порта?}
E -- Да --> C
E -- Нет --> F[Проверить dmesg и аппарат]
C -- Да --> G[Проверить права /dev и udev]
C -- Нет --> H[Проверить модули ядра 'lsmod' и sudo lsusb -v]
H --> G
G --> I[Если приложение не видит — поискать драйвер]
I --> J[Тест на другом ПК или VM]
J --> K[Обратиться к разработчику/производителю]Краткая энциклопедия терминов
- USB Bus — логический канал, по которому устройства подключаются к хосту.
- Vendor ID — уникальный идентификатор производителя устройства.
- Product ID — идентификатор конкретного продукта от производителя.
- bcdUSB — версия спецификации USB, поддерживаемая устройством.
Безопасность и приватность
- При отправке вывода lsusb в службу поддержки не включайте содержимое, которое вы не хотите раскрывать: lsusb сам по себе не показывает содержимое файлов или пользовательские данные, только метаданные устройства.
Резюме
Мы рассмотрели, что такое lsusb, как быстро получить список USB‑устройств и как использовать опции -v, -d, -s и -t для фильтрации и подробного анализа. Привели методику диагностики, чек‑листы для разных ролей, сниппеты команд и дерево принятия решений для устранения проблем. Если устройство отображается в lsusb — у вас хорошая отправная точка для дальнейшей отладки. Если нет — проверьте физику и питание устройства и используйте dmesg и sysfs.
Если вам понравилась эта статья, можно продолжить чтение: «Как использовать lsof в Linux (с практическим примером)». Приятной работы!
Ключевые выводы
- lsusb — базовый и быстрый инструмент для обнаружения USB‑устройств.
- Используйте sudo lsusb -v для получения полной информации.
- Поиск по vendor:product помогает найти драйверы и документацию.
- Тщательная диагностика включает lsusb, dmesg, lsusb -t и проверку /sys.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента