См. usb-устройства linux

Обновлено: 21.11.2024

У меня есть сценарий, в котором программное обеспечение работает только тогда, когда вы вставляете USB-устройство, предоставленное поставщиком программного обеспечения, в операционную систему Windows. Я пытаюсь найти содержимое, хранящееся на USB-устройстве. В операционной системе Windows значок USB-устройства не отображается в My_Computer. Я думал, что смогу увидеть содержимое или, по крайней мере, обнаружить USB-устройство в Ubuntu.

Также в ubuntu диск не определяется. Я попробовал «sudo fdisk -l», чтобы узнать файловую систему, но это бесполезно. Диск вообще не определяется.

Я хотел узнать, почему программа работает только при вставленном USB-накопителе и не работает, когда он не вставлен. Есть ли у них какие-либо файлы, хранящиеся на USB-устройстве? В любом случае, как мы можем обнаружить такое устройство в Ubuntu?

5 ответов 5

Чтобы обнаружить ваше USB-устройство в терминале, вы можете попробовать:

lsusb , пример:

или этот мощный инструмент, lsinput ,
сначала установите его, а затем попробуйте, он перечисляет все устройства ввода, включая ваше USB-устройство:

udevadm , с этой командной строкой вам нужно отключить устройство перед использованием команды, а затем подключить его, чтобы увидеть его:

Но это может не сработать. В моем случае я безуспешно пытаюсь запустить тег Leapfrog в Ubuntu.

Спасибо за ваш вклад. Команды «lsusb» и «udevadm» выводят список моего устройства, хотя команда «lsinput» не предоставляет мне никакой дополнительной информации.

Если рассматриваемое устройство является ключом защиты программного обеспечения, оно может не быть запоминающим устройством.

Вероятным альтернативным устройством для реализации может быть контроллер Ethernet ; программное обеспечение может обмениваться данными с устройством через сетевой адаптер, который не будет отображаться как диск. Или устройство может реализовать последовательный порт или другое устройство, для которого драйверы включены в операционную систему.

В любом случае, это не тот форум, где можно спрашивать об обходе защиты от копирования в программном обеспечении Windows, даже если вы пытаетесь сделать это с помощью Ubuntu.

Если это устройство, единственной целью которого является предотвращение запуска программного обеспечения без его присутствия, это ключ защиты программного обеспечения.

Большое спасибо за ваш комментарий. Это был ценный вклад для меня. С вашей помощью я определил, что это ключ защиты программного обеспечения. Я хотел узнать много о технологии, используемой в нем, и других технических вещах. Знаете ли вы какой-нибудь форум вроде «аскубунту»? Я также погуглил, чтобы найти примерно то же самое. Но я не убежден.

Что также хорошо работает, когда аппаратное обеспечение вашего ПК испытывает трудности с событиями USB, так это запуск cronjob.

Это приводит к полному сканированию подключенных USB-устройств.
Каждую минуту ситуация обновляется.

Кто-нибудь знает, действительно ли это сканирует USB-порты или просто сканирует каталог /dev/usb/ на наличие уже известных устройств. То, как это описано на странице руководства, похоже, сканирует только каталог устройства и не обновляет порты.

Если вы хотите определить, как загружается USB-устройство с превосходной детализацией, вот (2) способа:

udevadm monitor : показывает загружаемое USB-устройство так, как его видит шина USB.

udevadm является частью пакета udev по умолчанию в версии 18.04 LTS; нет необходимости устанавливать его.

Однако выполняйте udevadm monitor ПЕРЕД подключением USB-устройства.

Пример загрузки USB-накопителя показан ниже. Перейдите к последней строке, и вы даже сможете увидеть, какое устройство загружено как (sda1):

dmesg (который печатает кольцевой буфер ядра) также даст вам детальную информацию о загрузке вашего USB-устройства.

Однако dmesg, в отличие от udevadm monitor, показывает, как загрузка внешнего USB-устройства с точки зрения ядра

Образец вывода из dmesg — на этот раз с внешнего USB-привода компакт-дисков — показан ниже. "1-2" относится к его расположению на шине USB: первая шина, второй порт. Если бы я подключил дисковод компакт-дисков к другому порту, он бы сообщил "1-1":

В мире компьютерных периферийных устройств USB почти каждый использует какие-либо USB-устройства на своем компьютере. В наши дни есть веб-камеры USB, жесткие диски USB, USB-накопители, также известные как PenDrive и т. д. Почти каждое устройство имеет его USB-версию. Поэтому, если вы используете Linux, в какой-то момент может потребоваться указать, какое USB-устройство подключено к вашей системе.

Существует множество программ и способов вывода списка USB-устройств в Linux.

В этой статье я покажу вам, как составить список USB-устройств в Linux. Для демонстрации я использую Ubuntu 18.04 Bionic Beaver, но эти команды доступны в каждом дистрибутиве Linux. Итак, приступим.

Вывод списка USB-устройств с помощью команды lsusb

Широко используемая команда lsusb может использоваться для получения списка всех подключенных USB-устройств в Linux.

Как видно из вывода команды lsusb на снимке экрана ниже, перечислены все подключенные USB-устройства. Идентификатор шины, идентификатор устройства, идентификатор USB и название отображаются в выводе команды lsusb.

Как вы можете видеть в отмеченной части снимка экрана ниже, Realtek Semiconductor Corp. с идентификатором 0bda:57cb, это моя веб-камера USB.

Вы не можете сказать, что это веб-камера, глядя на вывод команды lsusb. Не так ли? Неа! Так откуда я это знаю? Это потому, что я проверил вывод команды lsusb до и после подключения USB-веб-камеры, и после сравнения выходов новая добавленная строка — это подключенное USB-устройство. Простой! Но есть способы узнать, что такое USB-устройство.

Вы можете использовать команду dmesg, чтобы узнать больше информации о подключенных USB-устройствах. Последнее подключенное USB-устройство проще всего найти с помощью команды dmesg. Он более широко используется для целей отладки. Вскоре вы поймете, почему.

Вы запускаете команду dmesg следующим образом:

Как вы можете видеть в выделенном желтым поле на снимке экрана ниже, это информация о USB-устройстве, которое я подключал последним, которым была моя USB-веб-камера. Вы можете увидеть в одном из синих прямоугольников, что подключенное USB-устройство — это веб-камера HD UVC, а ее идентификатор — 0bda:57cb.

Возможно, вы уже заметили, что вывод команды dmesg — это сообщения системного журнала. Ну да, это так.

Вы также можете искать конкретное USB-устройство по его идентификатору в системном журнале dmesg.

Выполните следующую команду, чтобы открыть вывод команды dmesg с меньшим текстовым пейджером:

Вы должны увидеть следующее окно:

Теперь, чтобы найти строку, нажмите клавишу / на клавиатуре. И вы должны увидеть / в нижней части окна терминала, как показано на скриншоте ниже.

Теперь введите идентификатор USB-устройства. Например, ранее, когда я перечислял подключенные USB-устройства с помощью команды lsusb, одно из USB-устройств имело идентификатор 0bda:57cb

Введите идентификатор USB-устройства и нажмите . Как вы можете видеть в отмеченной части снимка экрана ниже, строка поиска отмечена белым цветом.

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

Вывод списка USB-устройств с помощью команды usb-devices

Вы можете запустить следующую команду, чтобы получить список всех подключенных USB-устройств вашей системы:

Как видно на снимке экрана ниже, перечислены все подключенные USB-устройства. мы можем узнать практически ту же информацию, что и раньше, с помощью команды usb-devices.

Список заблокированных USB-устройств

Если вы хотите вывести список всех блочных USB-накопителей, то есть всех USB-накопителей, вы можете использовать для этого команду lsblk или fdisk.

Вывод списка блочных USB-накопителей с помощью lsblk:

Как видно на снимке экрана ниже, перечислены все доступные блочные запоминающие устройства (включая блочные USB-устройства хранения).

Вы можете получить почти ту же информацию, что и команда lsblk с помощью команды blkid. Но вы должны запустить его как root следующим образом:

Вы также можете использовать команду fdisk для вывода списка всех блочных USB-накопителей следующим образом:

Как вы можете видеть на снимке экрана ниже, перечислены подключенные блочные запоминающие устройства (включая USB-устройства).

Вот так вы составляете список всех USB-устройств в Linux. Спасибо, что прочитали эту статью.

В настоящее время многие компьютерные периферийные устройства, такие как веб-камеры, мыши, сканеры, принтеры, жесткие диски и USB-накопители (флешки), теперь выпускаются как USB-устройства. После подключения этих устройств к рабочему столу или серверу важно знать имя устройства или путь к нему. Это помогает идентифицировать USB-устройства для таких задач, как форматирование.

В Linux все файлы устройств хранятся в каталоге /dev и должны быть доступны ОС во время загрузки системы.

В этом руководстве я покажу вам различные способы вывода списка USB-устройств в Linux. Большинство упомянутых здесь команд должны работать во всех дистрибутивах Linux.

Вывод списка имен USB-устройств с помощью команды df

Команда df — полезная команда, которая может помочь вывести список всех подключенных томов, включая ваши USB-накопители.

Как только USB-устройство подключается к системе Linux, особенно для настольных компьютеров, оно автоматически монтируется в раздел /media и становится готовым к использованию.

команда df проверяет подключенные USB-устройства

Из приведенного выше вывода у меня есть 1 USB-накопитель /dev/sdb с 2 разделами /dev/sdb1 и /dev/sdb2

Получение списка имен USB-устройств с помощью команды lsblk

Команда Lsblk используется для вывода списка всех блочных устройств в системе Linux. Из списка вы можете отфильтровать USB-устройства с помощью команды grep.

команда lsblk выводит список USB-устройств

Чтобы получить дополнительную информацию, такую ​​как UUID, производитель и тип файловой системы, используйте команду blkid, как показано ниже.

Вывод команды blkid для получения информации о блочных USB-устройствах

Список имен USB-устройств с помощью команды fdisk

Вы можете использовать старую добрую команду fdisk, которая используется для разбиения томов на разделы, чтобы получить список всех разделов в системе Linux, включая USB-накопители.

Команда отобразит подробную информацию о томе USB, включая разделы, размер тома, сектора и тип файловой системы.

команда fdisk

Вывод сведений о USB-устройствах с помощью команды lsusb

Команда lsusb, также известная как команда «Список USB», используется в Linux для вывода списка всех USB-устройств, подключенных к системе.

команда lsusb

В приведенных выше выходных данных отображаются идентификатор шины, идентификатор устройства, идентификатор USB и поставщик или производитель устройств USB.

Команда lsusb просто выводит список подключенных устройств и не предоставляет дополнительной информации о USB-устройствах.

Для получения дополнительных сведений о подключенных USB-устройствах используйте команду dmesg. Команда dmesg, также известная как «сообщение драйвера» или «отобразить сообщение», используется для проверки загрузочных сообщений. Кроме того, он используется для устранения неполадок, связанных с аппаратным обеспечением, и печати сообщений, генерируемых драйверами устройств.

Вы можете использовать команду dmesg и команду grep, чтобы сузить список до USB-устройств.

команда dmesg

Кроме того, вы можете направить вывод команды dmesg в команду less для облегчения прокрутки.

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

В моем случае я ищу дополнительную информацию о USB-устройстве под названием SanDisk, которое на самом деле является моим съемным флеш-накопителем.

Поиск USB-накопителя

Список USB-контроллеров и устройств, использующих usb-устройства

Команда usb-devices — это сценарий оболочки, который позволяет вам вывести список всех USB-контроллеров и USB-устройств, подключенных к вашему ПК. Он распечатывает сведения об устройстве USB, такие как производитель, название продукта, серийный номер и многое другое. Вот вывод команды:

команда usb-devices для просмотра списка USB-устройств

Заключение

В этом руководстве мы продемонстрировали различные способы вывода списка USB-устройств, подключенных к системе Linux.

Теги TerminalUSB Drive Slug; $list = get_page_by_title('related', 'OBJECT', 'wp_show_posts'); wpsp_display($list->ID, 'tax_term="' . $cat_slug . '"' );*/ ?>

Я хочу подключить USB-накопитель, два из них, и мне нужны две разные точки подключения. К сожалению, имя ядра Linux было изменено, и я не могу понять, какое расположение /dev является правильным. Есть ли способ просмотреть dmesg или /proc или где-то еще, чтобы узнать, какой узел устройства является USB-накопителем.

(Я использую ArchLinux, если это кому-то поможет. /dev/sda — первый жесткий диск, /dev/sr0 — DVD-привод и т. д.)

изменить: USB-накопитель подключен к USB-концентратору. Я просмотрел dmesg, и он говорит, что концентратор был подключен, и он просканировал 3 подключенных к нему устройства. Однако по-прежнему не видно, где мой USB-накопитель.

Не видите? Может быть, немного подождать. Или попробуйте другой порт USB. Посмотрите, какие отличия есть в 'lsusb'

13 ответов 13

Самый простой способ: посмотрите на вывод dmesg после подключения USB-устройства. Он должен показать вам, какой узел /dev был назначен ему.

dmesg отлично работает, но у меня есть случай, когда dmesg не показывает узел /dev: [421963.864281] usb 3-6: новое высокоскоростное USB-устройство номер 32 с использованием xhci_hcd Что это значит? Как я могу установить это устройство? Устройство отображается в lsusb .

Вообще-то я разобрался. После моей последней перезагрузки было обновление ядра, которое вызывало эту проблему. После перезагрузки мой usb монтируется нормально. Надеюсь, это кому-нибудь поможет!

Все это хорошие предложения, но самый быстрый и наименее подробный способ — просто ввести в терминал следующее:

который даст список всех подключенных устройств (предполагается, что USB-накопитель подключен, что обычно имеет место в современных дистрибутивах Linux).

Нет, устройство не подключается волшебным образом. Вы должны указать это с помощью mount /dev/id /mount/point , так что это не работает.

Мой ответ касается вопроса пользователя "Есть ли способ просмотреть dmesg или /proc или где-то еще, чтобы узнать, какой узел устройства является USB-накопителем?", и не предназначен для предоставления рекомендаций по практическому подключению диск под Linux.

Если вы используете udev, вы можете легко сделать это, указав /dev/disk/by-id/usb-имя производителя_серийный номер. Они отображаются как символические ссылки, на которые вы можете ссылаться напрямую в вашем fstab или на которые вы можете разыменовать, используя readlink -e для определения связанного блочного устройства.

Вот реальный пример. На моей машине подключено 3 жестких диска USB. Каждый из них отображается в /dev/disk/by-id с уникальными серийными номерами (хотя они имеют общую строку производителя). Я создал символические ссылки для каждой из этих трех уникальных записей и теперь могу быстро определить, какой диск какой (и какое устройство связано с каждым диском), запустив readlink -e имя_ссылки. Например, запуск readlink -e /root/disk2 на моем компьютере в настоящее время отображает «/dev/sde», а readlink -e /root/disk3 вообще не выводит.

Попробуйте команду udevinfo -q all -n /dev/sda , где /dev/sda — это путь к вашему диску. Это дает вам кучу информации о диске, на который вы смотрите — есть запись, которая говорит вам о шине, к которой он подключен.

Это, конечно, избавляет вас от необходимости просматривать dmesg и/или журналы.

Обновить

По крайней мере, с июля 2010 года [1] udevinfo был заменен в Debian (и производным) на udevadm info с небольшим переходом, с которым были символические ссылки, которые вскоре устарели и были удалены (вы все еще можете найти их на старой не обновленной машине). Всегда из [1] мы можем прочитать:

В udev 117 был введен udevadm, а udevinfo и другие программы превратились в символические ссылки совместимости. Символические ссылки устарели в udev 128 и навсегда удалены в udev 147.

Читайте также: