USB storages (Как определить файл устройства USB-флешки)

Выбор и настройка HardWare

Модератор: Модераторы разделов

RealMan
Сообщения: 16

USB storages

Сообщение RealMan »

Когда в компьютер, с установленным Linux, вставляется USB-флешка, происходит регистрация нового USB-устройства в каталоге /proc/scsi/usb-storage/, с каким-то порядковым номером.
Например, "/proc/scsi/usb-storage/7":

Код: Выделить всё


   Host scsi7: usb-storage
       Vendor: SMI Corporation
      Product: USB DISK
Serial Number: AA04012703577
     Protocol: Transparent SCSI
    Transport: Bulk
       Quirks:

Помимо этого, для данного устройства создается соответствующий ему файл в /dev/, например "/dev/sda". Вопрос заключается в том, как найти соответствующий данному устройству из каталога /proc/scsi/usb-storage/ файл устройства в каталоге /dev/?
Я пробывал искать файл, котороый содержит эти соответствия в каталоге /proc/, но так ничего и не нашел.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: USB storages

Сообщение ddc »

И правильно, нет такого файла...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: USB storages

Сообщение t.t »

Думается (нескольких usb-storages нет, чтобы проверить), можно вычислить по времени создания файлов в /proc. По крайней мере, если не втыкать несколько устройств одновременно, они должны соответствовать sda, sdb... в хронологическом порядке.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: USB storages

Сообщение ddc »

Если на то пошло, то обычно в "/var/log/dmesg" Падает сообщение о том, что найдено некое устройство "[стока id устройства]", которое приаттачено к /dev/[имя нода]...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: USB storages

Сообщение t.t »

Если на то пошло, то обычно в "/var/log/dmesg" Падает сообщение о том, что найдено некое устройство "[стока id устройства]", которое приаттачено к /dev/[имя нода]...
На самом деле номер и имя в dmesg находятся в разных строках; и если устройства включаются подряд, сложно будет отследить, какая строка с номером соответствует какой строке с именем. Но вот упомянутую мною хронологию создания можно действительно отследить и по выводу dmesg.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
RealMan
Сообщения: 16

Re: USB storages

Сообщение RealMan »

В принципе, идея о том, что каждому файлу устройства (/dev/sda, /dev/sdb etc.) будет соответствовать файл из каталога /proc/scsi/usb-storage/ мне приходила в голову, и, собственно, я так и реализовал алгорит нахождения этого соответствия. Проблемы начались тогда, когда задача усложнилась, и в систему начали подряд добавлять несколько USB-устройств, затем извлекать некоторые из них, потом снова добалять и т.д. Вообщем, мой алгорит работать перестал.
Я думаю, что идеи о том, чтобы анализировать время создания файлов в /proc/ или анализировать сообщения в "/var/log/dmesg" совсем неплохие, но и они могут хромать при большом количестве USB-устройст и операций по их вставлению-удалению.
Неужели у Linux нет таблицы соответствия номера USB-устройства и его файла в "/dev/"??? Подскажите хотя бы где можно начать копать эту информацию.
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: USB storages

Сообщение flook »

Можно попытацца заюзать sg_map или одного из егоных собратьев из sg-utils...
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали: